From b46f50769be34f998f9af2ac733900ee7ac1b33f Mon Sep 17 00:00:00 2001 From: Adrian Riobo Lorenzo Date: Fri, 24 Nov 2023 16:42:41 +0100 Subject: [PATCH] partial fargate --- go.mod | 2 + go.sum | 6 +- pkg/provider/aws/action/mac/mac-dh.go | 45 + .../v6/go/aws/cloudwatch/compositeAlarm.go | 425 + .../sdk/v6/go/aws/cloudwatch/dashboard.go | 326 + .../go/aws/cloudwatch/eventApiDestination.go | 353 + .../sdk/v6/go/aws/cloudwatch/eventArchive.go | 375 + .../sdk/v6/go/aws/cloudwatch/eventBus.go | 345 + .../v6/go/aws/cloudwatch/eventBusPolicy.go | 452 + .../v6/go/aws/cloudwatch/eventConnection.go | 366 + .../sdk/v6/go/aws/cloudwatch/eventEndpoint.go | 378 + .../v6/go/aws/cloudwatch/eventPermission.go | 361 + .../sdk/v6/go/aws/cloudwatch/eventRule.go | 468 + .../sdk/v6/go/aws/cloudwatch/eventTarget.go | 1109 + .../sdk/v6/go/aws/cloudwatch/getEventBus.go | 122 + .../go/aws/cloudwatch/getEventConnection.go | 138 + .../v6/go/aws/cloudwatch/getEventSource.go | 143 + .../getLogDataProtectionPolicyDocument.go | 198 + .../sdk/v6/go/aws/cloudwatch/getLogGroup.go | 152 + .../sdk/v6/go/aws/cloudwatch/getLogGroups.go | 127 + .../sdk/v6/go/aws/cloudwatch/init.go | 198 + .../v6/go/aws/cloudwatch/internetMonitor.go | 408 + .../aws/cloudwatch/logDataProtectionPolicy.go | 326 + .../v6/go/aws/cloudwatch/logDestination.go | 338 + .../go/aws/cloudwatch/logDestinationPolicy.go | 320 + .../sdk/v6/go/aws/cloudwatch/logGroup.go | 387 + .../v6/go/aws/cloudwatch/logMetricFilter.go | 322 + .../v6/go/aws/cloudwatch/logResourcePolicy.go | 352 + .../sdk/v6/go/aws/cloudwatch/logStream.go | 285 + .../aws/cloudwatch/logSubscriptionFilter.go | 340 + .../sdk/v6/go/aws/cloudwatch/metricAlarm.go | 883 + .../sdk/v6/go/aws/cloudwatch/metricStream.go | 678 + .../sdk/v6/go/aws/cloudwatch/pulumiTypes.go | 8583 ++++++++ .../v6/go/aws/cloudwatch/queryDefinition.go | 300 + .../v6/go/aws/ecs/accountSettingDefault.go | 281 + .../sdk/v6/go/aws/ecs/capacityProvider.go | 345 + .../pulumi-aws/sdk/v6/go/aws/ecs/cluster.go | 397 + .../v6/go/aws/ecs/clusterCapacityProviders.go | 303 + .../sdk/v6/go/aws/ecs/getCluster.go | 174 + .../v6/go/aws/ecs/getContainerDefinition.go | 180 + .../sdk/v6/go/aws/ecs/getService.go | 170 + .../sdk/v6/go/aws/ecs/getTaskDefinition.go | 205 + .../sdk/v6/go/aws/ecs/getTaskExecution.go | 248 + .../pulumi-aws/sdk/v6/go/aws/ecs/init.go | 93 + .../sdk/v6/go/aws/ecs/pulumiTypes.go | 7466 +++++++ .../pulumi-aws/sdk/v6/go/aws/ecs/service.go | 833 + .../pulumi-aws/sdk/v6/go/aws/ecs/tag.go | 306 + .../sdk/v6/go/aws/ecs/taskDefinition.go | 954 + .../pulumi-aws/sdk/v6/go/aws/ecs/taskSet.go | 561 + .../pulumi-aws/sdk/v6/go/aws/iam/accessKey.go | 420 + .../sdk/v6/go/aws/iam/accountAlias.go | 257 + .../v6/go/aws/iam/accountPasswordPolicy.go | 391 + .../sdk/v6/go/aws/iam/getAccessKeys.go | 121 + .../sdk/v6/go/aws/iam/getAccountAlias.go | 97 + .../pulumi-aws/sdk/v6/go/aws/iam/getGroup.go | 143 + .../sdk/v6/go/aws/iam/getInstanceProfile.go | 157 + .../sdk/v6/go/aws/iam/getInstanceProfiles.go | 136 + .../v6/go/aws/iam/getOpenIdConnectProvider.go | 173 + .../pulumi-aws/sdk/v6/go/aws/iam/getPolicy.go | 207 + .../sdk/v6/go/aws/iam/getPolicyDocument.go | 795 + .../aws/iam/getPrincipalPolicySimulation.go | 215 + .../pulumi-aws/sdk/v6/go/aws/iam/getRole.go | 189 + .../pulumi-aws/sdk/v6/go/aws/iam/getRoles.go | 241 + .../sdk/v6/go/aws/iam/getSamlProvider.go | 154 + .../sdk/v6/go/aws/iam/getServerCertificate.go | 198 + .../sdk/v6/go/aws/iam/getSessionContext.go | 180 + .../pulumi-aws/sdk/v6/go/aws/iam/getUser.go | 156 + .../sdk/v6/go/aws/iam/getUserSshKey.go | 154 + .../pulumi-aws/sdk/v6/go/aws/iam/getUsers.go | 187 + .../pulumi-aws/sdk/v6/go/aws/iam/group.go | 290 + .../sdk/v6/go/aws/iam/groupMembership.go | 301 + .../sdk/v6/go/aws/iam/groupPolicy.go | 340 + .../v6/go/aws/iam/groupPolicyAttachment.go | 287 + .../pulumi-aws/sdk/v6/go/aws/iam/init.go | 226 + .../sdk/v6/go/aws/iam/instanceProfile.go | 395 + .../v6/go/aws/iam/openIdConnectProvider.go | 346 + .../pulumi-aws/sdk/v6/go/aws/iam/policy.go | 401 + .../sdk/v6/go/aws/iam/policyAttachment.go | 378 + .../sdk/v6/go/aws/iam/pulumiEnums.go | 1292 ++ .../sdk/v6/go/aws/iam/pulumiTypes.go | 1388 ++ .../pulumi-aws/sdk/v6/go/aws/iam/role.go | 759 + .../sdk/v6/go/aws/iam/rolePolicy.go | 359 + .../sdk/v6/go/aws/iam/rolePolicyAttachment.go | 328 + .../sdk/v6/go/aws/iam/samlProvider.go | 340 + .../iam/securityTokenServicePreferences.go | 245 + .../sdk/v6/go/aws/iam/serverCertificate.go | 581 + .../sdk/v6/go/aws/iam/serviceLinkedRole.go | 378 + .../go/aws/iam/serviceSpecificCredential.go | 330 + .../sdk/v6/go/aws/iam/signingCertificate.go | 340 + .../pulumi-aws/sdk/v6/go/aws/iam/sshKey.go | 336 + .../pulumi-aws/sdk/v6/go/aws/iam/user.go | 402 + .../sdk/v6/go/aws/iam/userGroupMembership.go | 307 + .../sdk/v6/go/aws/iam/userLoginProfile.go | 346 + .../sdk/v6/go/aws/iam/userPolicy.go | 334 + .../sdk/v6/go/aws/iam/userPolicyAttachment.go | 287 + .../sdk/v6/go/aws/iam/virtualMfaDevice.go | 371 + .../sdk/v6/go/aws/s3/accessPoint.go | 492 + .../v6/go/aws/s3/accountPublicAccessBlock.go | 346 + .../v6/go/aws/s3/analyticsConfiguration.go | 356 + .../pulumi-aws/sdk/v6/go/aws/s3/bucket.go | 1126 + .../aws/s3/bucketAccelerateConfigurationV2.go | 305 + .../sdk/v6/go/aws/s3/bucketAclV2.go | 471 + .../v6/go/aws/s3/bucketCorsConfigurationV2.go | 332 + .../bucketIntelligentTieringConfiguration.go | 380 + .../aws/s3/bucketLifecycleConfigurationV2.go | 760 + .../sdk/v6/go/aws/s3/bucketLoggingV2.go | 361 + .../sdk/v6/go/aws/s3/bucketMetric.go | 326 + .../sdk/v6/go/aws/s3/bucketNotification.go | 685 + .../sdk/v6/go/aws/s3/bucketObject.go | 826 + .../aws/s3/bucketObjectLockConfigurationV2.go | 438 + .../sdk/v6/go/aws/s3/bucketObjectv2.go | 960 + .../v6/go/aws/s3/bucketOwnershipControls.go | 280 + .../sdk/v6/go/aws/s3/bucketPolicy.go | 308 + .../v6/go/aws/s3/bucketPublicAccessBlock.go | 353 + .../v6/go/aws/s3/bucketReplicationConfig.go | 552 + .../s3/bucketRequestPaymentConfigurationV2.go | 303 + ...cketServerSideEncryptionConfigurationV2.go | 326 + .../pulumi-aws/sdk/v6/go/aws/s3/bucketV2.go | 940 + .../sdk/v6/go/aws/s3/bucketVersioningV2.go | 423 + .../go/aws/s3/bucketWebsiteConfigurationV2.go | 452 + .../go/aws/s3/getAccountPublicAccessBlock.go | 139 + .../pulumi-aws/sdk/v6/go/aws/s3/getBucket.go | 224 + .../sdk/v6/go/aws/s3/getBucketObject.go | 358 + .../sdk/v6/go/aws/s3/getBucketObjects.go | 172 + .../sdk/v6/go/aws/s3/getBucketPolicy.go | 123 + .../sdk/v6/go/aws/s3/getCanonicalUserId.go | 99 + .../pulumi-aws/sdk/v6/go/aws/s3/getObject.go | 387 + .../pulumi-aws/sdk/v6/go/aws/s3/getObjects.go | 180 + .../pulumi-aws/sdk/v6/go/aws/s3/init.go | 219 + .../pulumi-aws/sdk/v6/go/aws/s3/inventory.go | 435 + .../pulumi-aws/sdk/v6/go/aws/s3/objectCopy.go | 987 + .../sdk/v6/go/aws/s3/pulumiEnums.go | 196 + .../sdk/v6/go/aws/s3/pulumiTypes.go | 17023 ++++++++++++++++ .../pulumi/pulumi-awsx/sdk/v2/LICENSE | 202 + .../sdk/v2/go/awsx/awsx/pulumiTypes.go | 2990 +++ .../sdk/v2/go/awsx/ecs/ec2service.go | 342 + .../sdk/v2/go/awsx/ecs/ec2taskDefinition.go | 349 + .../sdk/v2/go/awsx/ecs/fargateService.go | 342 + .../v2/go/awsx/ecs/fargateTaskDefinition.go | 345 + .../pulumi-awsx/sdk/v2/go/awsx/ecs/init.go | 51 + .../sdk/v2/go/awsx/ecs/pulumiEnums.go | 202 + .../sdk/v2/go/awsx/ecs/pulumiTypes.go | 4856 +++++ .../v2/go/awsx/internal/pulumiUtilities.go | 113 + .../sdk/v2/go/awsx/internal/pulumiVersion.go | 11 + .../pulumi/pulumi-docker/sdk/v4/LICENSE | 202 + .../sdk/v4/go/docker/container.go | 1282 ++ .../pulumi-docker/sdk/v4/go/docker/doc.go | 2 + .../pulumi-docker/sdk/v4/go/docker/getLogs.go | 181 + .../sdk/v4/go/docker/getNetwork.go | 157 + .../sdk/v4/go/docker/getPlugin.go | 143 + .../sdk/v4/go/docker/getRegistryImage.go | 149 + .../sdk/v4/go/docker/getRemoteImage.go | 147 + .../pulumi-docker/sdk/v4/go/docker/image.go | 474 + .../pulumi-docker/sdk/v4/go/docker/init.go | 136 + .../v4/go/docker/internal/pulumiUtilities.go | 113 + .../v4/go/docker/internal/pulumiVersion.go | 11 + .../pulumi-docker/sdk/v4/go/docker/network.go | 465 + .../pulumi-docker/sdk/v4/go/docker/plugin.go | 428 + .../sdk/v4/go/docker/provider.go | 165 + .../sdk/v4/go/docker/pulumi-plugin.json | 4 + .../sdk/v4/go/docker/pulumiEnums.go | 204 + .../sdk/v4/go/docker/pulumiTypes.go | 11891 +++++++++++ .../sdk/v4/go/docker/registryImage.go | 348 + .../sdk/v4/go/docker/remoteImage.go | 438 + .../pulumi-docker/sdk/v4/go/docker/secret.go | 295 + .../pulumi-docker/sdk/v4/go/docker/service.go | 410 + .../sdk/v4/go/docker/serviceConfig.go | 285 + .../pulumi-docker/sdk/v4/go/docker/tag.go | 285 + .../pulumi-docker/sdk/v4/go/docker/volume.go | 345 + vendor/modules.txt | 13 + 170 files changed, 109403 insertions(+), 1 deletion(-) create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/compositeAlarm.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/dashboard.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventApiDestination.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventArchive.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBus.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBusPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventConnection.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventEndpoint.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventPermission.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventRule.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventTarget.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventBus.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventConnection.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventSource.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogDataProtectionPolicyDocument.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroups.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/init.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/internetMonitor.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDataProtectionPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestination.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestinationPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logMetricFilter.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logResourcePolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logStream.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logSubscriptionFilter.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricAlarm.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricStream.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/queryDefinition.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/accountSettingDefault.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/capacityProvider.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/cluster.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/clusterCapacityProviders.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getCluster.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getContainerDefinition.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getService.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskDefinition.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskExecution.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/init.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/service.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/tag.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskDefinition.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskSet.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accessKey.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountAlias.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountPasswordPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccessKeys.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccountAlias.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getGroup.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfile.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfiles.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getOpenIdConnectProvider.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicyDocument.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPrincipalPolicySimulation.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRole.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRoles.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSamlProvider.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getServerCertificate.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSessionContext.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUser.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUserSshKey.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUsers.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/group.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupMembership.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicyAttachment.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/init.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/instanceProfile.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/openIdConnectProvider.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policyAttachment.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiEnums.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/role.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicyAttachment.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/samlProvider.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/securityTokenServicePreferences.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serverCertificate.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceLinkedRole.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceSpecificCredential.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/signingCertificate.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/sshKey.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/user.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userGroupMembership.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userLoginProfile.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicyAttachment.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/virtualMfaDevice.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accessPoint.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accountPublicAccessBlock.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/analyticsConfiguration.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucket.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAccelerateConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAclV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketCorsConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketIntelligentTieringConfiguration.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLifecycleConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLoggingV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketMetric.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketNotification.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObject.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectLockConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectv2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketOwnershipControls.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPublicAccessBlock.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketReplicationConfig.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketRequestPaymentConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketVersioningV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketWebsiteConfigurationV2.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getAccountPublicAccessBlock.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucket.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObject.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObjects.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketPolicy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getCanonicalUserId.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObject.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObjects.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/init.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/inventory.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/objectCopy.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiEnums.go create mode 100644 vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/LICENSE create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2service.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2taskDefinition.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateService.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateTaskDefinition.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/init.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiEnums.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiUtilities.go create mode 100644 vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiVersion.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/LICENSE create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/container.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/doc.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getLogs.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getNetwork.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getPlugin.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRegistryImage.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRemoteImage.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/image.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/init.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiUtilities.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiVersion.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/network.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/plugin.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/provider.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumi-plugin.json create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiEnums.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiTypes.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/registryImage.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/remoteImage.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/secret.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/service.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/serviceConfig.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/tag.go create mode 100644 vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/volume.go diff --git a/go.mod b/go.mod index f0b9825c3..e683d5d24 100644 --- a/go.mod +++ b/go.mod @@ -19,6 +19,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.8.2 github.com/pulumi/pulumi-aws/sdk/v6 v6.9.0 + github.com/pulumi/pulumi-awsx/sdk/v2 v2.3.0 github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.18.0 github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.18.0 github.com/pulumi/pulumi-azure-native-sdk/resources/v2 v2.18.0 @@ -62,6 +63,7 @@ require ( github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pulumi/esc v0.5.6 // indirect github.com/pulumi/pulumi-azure-native-sdk/v2 v2.18.0 // indirect + github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3 // indirect github.com/sagikazarmark/locafero v0.3.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect diff --git a/go.sum b/go.sum index a6986ce15..27fcb2b7e 100644 --- a/go.sum +++ b/go.sum @@ -301,6 +301,8 @@ github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= github.com/pulumi/pulumi-aws/sdk/v6 v6.9.0 h1:lXAuHTQpahA/AOE7MstBsoQi4E6by1nKII1WRO3oq+w= github.com/pulumi/pulumi-aws/sdk/v6 v6.9.0/go.mod h1:j9uDjldfM/PmtXTpmRtHdsmsay3bW4pVYb4cI6OdAvw= +github.com/pulumi/pulumi-awsx/sdk/v2 v2.3.0 h1:UEdUQKep1Y4vr6YasSO2tXRGJWaoVVQfpD87sEFYhTI= +github.com/pulumi/pulumi-awsx/sdk/v2 v2.3.0/go.mod h1:0LFX4V3PY88rBBfRIIA4DxOTAI/GEffwvjnFGccfTyw= github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.18.0 h1:Xk3x640pst+9o5+6D2gB1e33xa6fZ9Tn1cCAI6DiKMg= github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.18.0/go.mod h1:fZZHYvj8kozGI5e6jY81LTCY8Wvr4ir82qZmmyVD6LI= github.com/pulumi/pulumi-azure-native-sdk/network/v2 v2.18.0 h1:S0mM5tJw6QxQytXLWZQAt9XAmCIojGJ5k3edRXeR0mo= @@ -313,6 +315,8 @@ github.com/pulumi/pulumi-azure-native-sdk/v2 v2.18.0 h1:NTGY8qa8gqonMkuBASVHtpf2 github.com/pulumi/pulumi-azure-native-sdk/v2 v2.18.0/go.mod h1:QQ0bJDSjYrzgTyw73XakHwB9+5S9/GkNvjaUDBHQz2A= github.com/pulumi/pulumi-command/sdk v0.9.2 h1:2siCFR8pS2sSwXkeWiLrprGEtBL54FsHTzdyl125UuI= github.com/pulumi/pulumi-command/sdk v0.9.2/go.mod h1:VeUXTI/iTgKVjRChRJbLRlBVGxAH+uymscfwzBC2VqY= +github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3 h1:gQC2As+wE8QflbLCG90jLaKwIpqW3yl1y327Jj6ovbI= +github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3/go.mod h1:i19ZhFjFQrngtXYLHp3kjZNRmnEnq/DUdXK6/CBk77o= github.com/pulumi/pulumi-random/sdk/v4 v4.14.0 h1:ljy/gUeur2kZZWL3JPy0J9zLDYKKA0zMd1mT7xrpI7s= github.com/pulumi/pulumi-random/sdk/v4 v4.14.0/go.mod h1:XqGATLB6KKuWRDhWvHO6YVwv0DRW/cK/pWzNkuhMB24= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= @@ -768,7 +772,7 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw= lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s= -pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +pgregory.net/rapid v0.6.1 h1:4eyrDxyht86tT4Ztm+kvlyNBLIk071gR+ZQdhphc9dQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/pkg/provider/aws/action/mac/mac-dh.go b/pkg/provider/aws/action/mac/mac-dh.go index a03971e30..033a8ca5a 100644 --- a/pkg/provider/aws/action/mac/mac-dh.go +++ b/pkg/provider/aws/action/mac/mac-dh.go @@ -10,7 +10,10 @@ import ( "github.com/adrianriobo/qenvs/pkg/provider/util/output" "github.com/adrianriobo/qenvs/pkg/util/logging" resourcesUtil "github.com/adrianriobo/qenvs/pkg/util/resources" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + awsECS "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs" "github.com/pulumi/pulumi/sdk/v3/go/auto" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -81,3 +84,45 @@ func (r *MacRequest) manageResultsDedicatedHost(stackResult auto.UpResult) (*str } return &dhID, &dhAZ, nil } + +func (r *MacRequest) ScheduleDestroy(ctx *pulumi.Context) error { + // https://medium.com/@nilangav/set-up-scheduled-tasks-with-aws-fargate-using-cloudformation-templates-b7bd2f7db46b + + cluster, err := awsECS.NewCluster(ctx, "cluster", + &awsECS.ClusterArgs{}) + if err != nil { + return err + } + + fs, err := ecs.NewFargateService(ctx, + resourcesUtil.GetResourceName(r.Prefix, awsMacMachineID, "fg"), + &ecs.FargateServiceArgs{ + Cluster: cluster.Arn, + TaskDefinitionArgs: &ecs.FargateServiceTaskDefinitionArgs{}, + }) + if err != nil { + return err + } + + cloudwatch.NewEventRule(ctx, + resourcesUtil.GetResourceName(r.Prefix, awsMacMachineID, "mac-dh-event-destroy"), + &cloudwatch.EventRuleArgs{ + Description: pulumi.String("Destroy event for mac dedicated host"), + Name: pulumi.String(resourcesUtil.GetResourceName(r.Prefix, + awsMacMachineID, "mac-dh-event-desotry")), + + // ScheduleExpression: , + }, + ) + + cloudwatch.NewEventTarget(ctx, + resourcesUtil.GetResourceName(r.Prefix, awsMacMachineID, "mac-dh-event-destroy"), + &cloudwatch.EventTargetArgs{ + EcsTarget: cloudwatch.EventTargetEcsTargetArgs{ + TaskCount: pulumi.IntPtr(1), + TaskDefinitionArn: fs.TaskDefinition.Arn(), + }, + }) + + return fmt.Errorf("not implemented yet") +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/compositeAlarm.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/compositeAlarm.go new file mode 100644 index 000000000..77b1d7f07 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/compositeAlarm.go @@ -0,0 +1,425 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Composite Alarm resource. +// +// > **NOTE:** An alarm (composite or metric) cannot be destroyed when there are other composite alarms depending on it. This can lead to a cyclical dependency on update, as the provider will unsuccessfully attempt to destroy alarms before updating the rule. Consider using `dependsOn`, references to alarm names, and two-stage updates. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewCompositeAlarm(ctx, "example", &cloudwatch.CompositeAlarmArgs{ +// AlarmDescription: pulumi.String("This is a composite alarm!"), +// AlarmName: pulumi.String("example-composite-alarm"), +// AlarmActions: pulumi.Any(aws_sns_topic.Example.Arn), +// OkActions: pulumi.Any(aws_sns_topic.Example.Arn), +// AlarmRule: pulumi.String(fmt.Sprintf("ALARM(%v) OR\nALARM(%v)\n", aws_cloudwatch_metric_alarm.Alpha.Alarm_name, aws_cloudwatch_metric_alarm.Bravo.Alarm_name)), +// ActionsSuppressor: &cloudwatch.CompositeAlarmActionsSuppressorArgs{ +// Alarm: pulumi.String("suppressor-alarm"), +// ExtensionPeriod: pulumi.Int(10), +// WaitPeriod: pulumi.Int(20), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import a CloudWatch Composite Alarm using the `alarm_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm +// +// ``` +type CompositeAlarm struct { + pulumi.CustomResourceState + + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrOutput `pulumi:"actionsEnabled"` + // Actions will be suppressed if the suppressor alarm is in the ALARM state. + ActionsSuppressor CompositeAlarmActionsSuppressorPtrOutput `pulumi:"actionsSuppressor"` + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions pulumi.StringArrayOutput `pulumi:"alarmActions"` + // The description for the composite alarm. + AlarmDescription pulumi.StringPtrOutput `pulumi:"alarmDescription"` + // The name for the composite alarm. This name must be unique within the region. + AlarmName pulumi.StringOutput `pulumi:"alarmName"` + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule pulumi.StringOutput `pulumi:"alarmRule"` + // The ARN of the composite alarm. + Arn pulumi.StringOutput `pulumi:"arn"` + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions pulumi.StringArrayOutput `pulumi:"insufficientDataActions"` + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions pulumi.StringArrayOutput `pulumi:"okActions"` + // A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewCompositeAlarm registers a new resource with the given unique name, arguments, and options. +func NewCompositeAlarm(ctx *pulumi.Context, + name string, args *CompositeAlarmArgs, opts ...pulumi.ResourceOption) (*CompositeAlarm, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AlarmName == nil { + return nil, errors.New("invalid value for required argument 'AlarmName'") + } + if args.AlarmRule == nil { + return nil, errors.New("invalid value for required argument 'AlarmRule'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource CompositeAlarm + err := ctx.RegisterResource("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCompositeAlarm gets an existing CompositeAlarm resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCompositeAlarm(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CompositeAlarmState, opts ...pulumi.ResourceOption) (*CompositeAlarm, error) { + var resource CompositeAlarm + err := ctx.ReadResource("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CompositeAlarm resources. +type compositeAlarmState struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled *bool `pulumi:"actionsEnabled"` + // Actions will be suppressed if the suppressor alarm is in the ALARM state. + ActionsSuppressor *CompositeAlarmActionsSuppressor `pulumi:"actionsSuppressor"` + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions []string `pulumi:"alarmActions"` + // The description for the composite alarm. + AlarmDescription *string `pulumi:"alarmDescription"` + // The name for the composite alarm. This name must be unique within the region. + AlarmName *string `pulumi:"alarmName"` + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule *string `pulumi:"alarmRule"` + // The ARN of the composite alarm. + Arn *string `pulumi:"arn"` + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions []string `pulumi:"insufficientDataActions"` + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions []string `pulumi:"okActions"` + // A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type CompositeAlarmState struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrInput + // Actions will be suppressed if the suppressor alarm is in the ALARM state. + ActionsSuppressor CompositeAlarmActionsSuppressorPtrInput + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions pulumi.StringArrayInput + // The description for the composite alarm. + AlarmDescription pulumi.StringPtrInput + // The name for the composite alarm. This name must be unique within the region. + AlarmName pulumi.StringPtrInput + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule pulumi.StringPtrInput + // The ARN of the composite alarm. + Arn pulumi.StringPtrInput + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions pulumi.StringArrayInput + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions pulumi.StringArrayInput + // A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (CompositeAlarmState) ElementType() reflect.Type { + return reflect.TypeOf((*compositeAlarmState)(nil)).Elem() +} + +type compositeAlarmArgs struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled *bool `pulumi:"actionsEnabled"` + // Actions will be suppressed if the suppressor alarm is in the ALARM state. + ActionsSuppressor *CompositeAlarmActionsSuppressor `pulumi:"actionsSuppressor"` + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions []string `pulumi:"alarmActions"` + // The description for the composite alarm. + AlarmDescription *string `pulumi:"alarmDescription"` + // The name for the composite alarm. This name must be unique within the region. + AlarmName string `pulumi:"alarmName"` + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule string `pulumi:"alarmRule"` + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions []string `pulumi:"insufficientDataActions"` + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions []string `pulumi:"okActions"` + // A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a CompositeAlarm resource. +type CompositeAlarmArgs struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrInput + // Actions will be suppressed if the suppressor alarm is in the ALARM state. + ActionsSuppressor CompositeAlarmActionsSuppressorPtrInput + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions pulumi.StringArrayInput + // The description for the composite alarm. + AlarmDescription pulumi.StringPtrInput + // The name for the composite alarm. This name must be unique within the region. + AlarmName pulumi.StringInput + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule pulumi.StringInput + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions pulumi.StringArrayInput + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions pulumi.StringArrayInput + // A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (CompositeAlarmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*compositeAlarmArgs)(nil)).Elem() +} + +type CompositeAlarmInput interface { + pulumi.Input + + ToCompositeAlarmOutput() CompositeAlarmOutput + ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput +} + +func (*CompositeAlarm) ElementType() reflect.Type { + return reflect.TypeOf((**CompositeAlarm)(nil)).Elem() +} + +func (i *CompositeAlarm) ToCompositeAlarmOutput() CompositeAlarmOutput { + return i.ToCompositeAlarmOutputWithContext(context.Background()) +} + +func (i *CompositeAlarm) ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmOutput) +} + +// CompositeAlarmArrayInput is an input type that accepts CompositeAlarmArray and CompositeAlarmArrayOutput values. +// You can construct a concrete instance of `CompositeAlarmArrayInput` via: +// +// CompositeAlarmArray{ CompositeAlarmArgs{...} } +type CompositeAlarmArrayInput interface { + pulumi.Input + + ToCompositeAlarmArrayOutput() CompositeAlarmArrayOutput + ToCompositeAlarmArrayOutputWithContext(context.Context) CompositeAlarmArrayOutput +} + +type CompositeAlarmArray []CompositeAlarmInput + +func (CompositeAlarmArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CompositeAlarm)(nil)).Elem() +} + +func (i CompositeAlarmArray) ToCompositeAlarmArrayOutput() CompositeAlarmArrayOutput { + return i.ToCompositeAlarmArrayOutputWithContext(context.Background()) +} + +func (i CompositeAlarmArray) ToCompositeAlarmArrayOutputWithContext(ctx context.Context) CompositeAlarmArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmArrayOutput) +} + +// CompositeAlarmMapInput is an input type that accepts CompositeAlarmMap and CompositeAlarmMapOutput values. +// You can construct a concrete instance of `CompositeAlarmMapInput` via: +// +// CompositeAlarmMap{ "key": CompositeAlarmArgs{...} } +type CompositeAlarmMapInput interface { + pulumi.Input + + ToCompositeAlarmMapOutput() CompositeAlarmMapOutput + ToCompositeAlarmMapOutputWithContext(context.Context) CompositeAlarmMapOutput +} + +type CompositeAlarmMap map[string]CompositeAlarmInput + +func (CompositeAlarmMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CompositeAlarm)(nil)).Elem() +} + +func (i CompositeAlarmMap) ToCompositeAlarmMapOutput() CompositeAlarmMapOutput { + return i.ToCompositeAlarmMapOutputWithContext(context.Background()) +} + +func (i CompositeAlarmMap) ToCompositeAlarmMapOutputWithContext(ctx context.Context) CompositeAlarmMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmMapOutput) +} + +type CompositeAlarmOutput struct{ *pulumi.OutputState } + +func (CompositeAlarmOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CompositeAlarm)(nil)).Elem() +} + +func (o CompositeAlarmOutput) ToCompositeAlarmOutput() CompositeAlarmOutput { + return o +} + +func (o CompositeAlarmOutput) ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput { + return o +} + +// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. +func (o CompositeAlarmOutput) ActionsEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.BoolPtrOutput { return v.ActionsEnabled }).(pulumi.BoolPtrOutput) +} + +// Actions will be suppressed if the suppressor alarm is in the ALARM state. +func (o CompositeAlarmOutput) ActionsSuppressor() CompositeAlarmActionsSuppressorPtrOutput { + return o.ApplyT(func(v *CompositeAlarm) CompositeAlarmActionsSuppressorPtrOutput { return v.ActionsSuppressor }).(CompositeAlarmActionsSuppressorPtrOutput) +} + +// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. +func (o CompositeAlarmOutput) AlarmActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.AlarmActions }).(pulumi.StringArrayOutput) +} + +// The description for the composite alarm. +func (o CompositeAlarmOutput) AlarmDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringPtrOutput { return v.AlarmDescription }).(pulumi.StringPtrOutput) +} + +// The name for the composite alarm. This name must be unique within the region. +func (o CompositeAlarmOutput) AlarmName() pulumi.StringOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringOutput { return v.AlarmName }).(pulumi.StringOutput) +} + +// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. +func (o CompositeAlarmOutput) AlarmRule() pulumi.StringOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringOutput { return v.AlarmRule }).(pulumi.StringOutput) +} + +// The ARN of the composite alarm. +func (o CompositeAlarmOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. +func (o CompositeAlarmOutput) InsufficientDataActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.InsufficientDataActions }).(pulumi.StringArrayOutput) +} + +// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. +func (o CompositeAlarmOutput) OkActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringArrayOutput { return v.OkActions }).(pulumi.StringArrayOutput) +} + +// A map of tags to associate with the alarm. Up to 50 tags are allowed. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o CompositeAlarmOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o CompositeAlarmOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *CompositeAlarm) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type CompositeAlarmArrayOutput struct{ *pulumi.OutputState } + +func (CompositeAlarmArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CompositeAlarm)(nil)).Elem() +} + +func (o CompositeAlarmArrayOutput) ToCompositeAlarmArrayOutput() CompositeAlarmArrayOutput { + return o +} + +func (o CompositeAlarmArrayOutput) ToCompositeAlarmArrayOutputWithContext(ctx context.Context) CompositeAlarmArrayOutput { + return o +} + +func (o CompositeAlarmArrayOutput) Index(i pulumi.IntInput) CompositeAlarmOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CompositeAlarm { + return vs[0].([]*CompositeAlarm)[vs[1].(int)] + }).(CompositeAlarmOutput) +} + +type CompositeAlarmMapOutput struct{ *pulumi.OutputState } + +func (CompositeAlarmMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CompositeAlarm)(nil)).Elem() +} + +func (o CompositeAlarmMapOutput) ToCompositeAlarmMapOutput() CompositeAlarmMapOutput { + return o +} + +func (o CompositeAlarmMapOutput) ToCompositeAlarmMapOutputWithContext(ctx context.Context) CompositeAlarmMapOutput { + return o +} + +func (o CompositeAlarmMapOutput) MapIndex(k pulumi.StringInput) CompositeAlarmOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CompositeAlarm { + return vs[0].(map[string]*CompositeAlarm)[vs[1].(string)] + }).(CompositeAlarmOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmInput)(nil)).Elem(), &CompositeAlarm{}) + pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmArrayInput)(nil)).Elem(), CompositeAlarmArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmMapInput)(nil)).Elem(), CompositeAlarmMap{}) + pulumi.RegisterOutputType(CompositeAlarmOutput{}) + pulumi.RegisterOutputType(CompositeAlarmArrayOutput{}) + pulumi.RegisterOutputType(CompositeAlarmMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/dashboard.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/dashboard.go new file mode 100644 index 000000000..64352739d --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/dashboard.go @@ -0,0 +1,326 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Dashboard resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "widgets": []interface{}{ +// map[string]interface{}{ +// "type": "metric", +// "x": 0, +// "y": 0, +// "width": 12, +// "height": 6, +// "properties": map[string]interface{}{ +// "metrics": [][]string{ +// []string{ +// "AWS/EC2", +// "CPUUtilization", +// "InstanceId", +// "i-012345", +// }, +// }, +// "period": 300, +// "stat": "Average", +// "region": "us-east-1", +// "title": "EC2 Instance CPU", +// }, +// }, +// map[string]interface{}{ +// "type": "text", +// "x": 0, +// "y": 7, +// "width": 3, +// "height": 3, +// "properties": map[string]interface{}{ +// "markdown": "Hello world", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = cloudwatch.NewDashboard(ctx, "main", &cloudwatch.DashboardArgs{ +// DashboardName: pulumi.String("my-dashboard"), +// DashboardBody: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch dashboards using the `dashboard_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/dashboard:Dashboard sample dashboard_name +// +// ``` +type Dashboard struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the dashboard. + DashboardArn pulumi.StringOutput `pulumi:"dashboardArn"` + // The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). + DashboardBody pulumi.StringOutput `pulumi:"dashboardBody"` + // The name of the dashboard. + DashboardName pulumi.StringOutput `pulumi:"dashboardName"` +} + +// NewDashboard registers a new resource with the given unique name, arguments, and options. +func NewDashboard(ctx *pulumi.Context, + name string, args *DashboardArgs, opts ...pulumi.ResourceOption) (*Dashboard, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DashboardBody == nil { + return nil, errors.New("invalid value for required argument 'DashboardBody'") + } + if args.DashboardName == nil { + return nil, errors.New("invalid value for required argument 'DashboardName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Dashboard + err := ctx.RegisterResource("aws:cloudwatch/dashboard:Dashboard", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDashboard gets an existing Dashboard resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDashboard(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DashboardState, opts ...pulumi.ResourceOption) (*Dashboard, error) { + var resource Dashboard + err := ctx.ReadResource("aws:cloudwatch/dashboard:Dashboard", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Dashboard resources. +type dashboardState struct { + // The Amazon Resource Name (ARN) of the dashboard. + DashboardArn *string `pulumi:"dashboardArn"` + // The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). + DashboardBody *string `pulumi:"dashboardBody"` + // The name of the dashboard. + DashboardName *string `pulumi:"dashboardName"` +} + +type DashboardState struct { + // The Amazon Resource Name (ARN) of the dashboard. + DashboardArn pulumi.StringPtrInput + // The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). + DashboardBody pulumi.StringPtrInput + // The name of the dashboard. + DashboardName pulumi.StringPtrInput +} + +func (DashboardState) ElementType() reflect.Type { + return reflect.TypeOf((*dashboardState)(nil)).Elem() +} + +type dashboardArgs struct { + // The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). + DashboardBody string `pulumi:"dashboardBody"` + // The name of the dashboard. + DashboardName string `pulumi:"dashboardName"` +} + +// The set of arguments for constructing a Dashboard resource. +type DashboardArgs struct { + // The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). + DashboardBody pulumi.StringInput + // The name of the dashboard. + DashboardName pulumi.StringInput +} + +func (DashboardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*dashboardArgs)(nil)).Elem() +} + +type DashboardInput interface { + pulumi.Input + + ToDashboardOutput() DashboardOutput + ToDashboardOutputWithContext(ctx context.Context) DashboardOutput +} + +func (*Dashboard) ElementType() reflect.Type { + return reflect.TypeOf((**Dashboard)(nil)).Elem() +} + +func (i *Dashboard) ToDashboardOutput() DashboardOutput { + return i.ToDashboardOutputWithContext(context.Background()) +} + +func (i *Dashboard) ToDashboardOutputWithContext(ctx context.Context) DashboardOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardOutput) +} + +// DashboardArrayInput is an input type that accepts DashboardArray and DashboardArrayOutput values. +// You can construct a concrete instance of `DashboardArrayInput` via: +// +// DashboardArray{ DashboardArgs{...} } +type DashboardArrayInput interface { + pulumi.Input + + ToDashboardArrayOutput() DashboardArrayOutput + ToDashboardArrayOutputWithContext(context.Context) DashboardArrayOutput +} + +type DashboardArray []DashboardInput + +func (DashboardArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Dashboard)(nil)).Elem() +} + +func (i DashboardArray) ToDashboardArrayOutput() DashboardArrayOutput { + return i.ToDashboardArrayOutputWithContext(context.Background()) +} + +func (i DashboardArray) ToDashboardArrayOutputWithContext(ctx context.Context) DashboardArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardArrayOutput) +} + +// DashboardMapInput is an input type that accepts DashboardMap and DashboardMapOutput values. +// You can construct a concrete instance of `DashboardMapInput` via: +// +// DashboardMap{ "key": DashboardArgs{...} } +type DashboardMapInput interface { + pulumi.Input + + ToDashboardMapOutput() DashboardMapOutput + ToDashboardMapOutputWithContext(context.Context) DashboardMapOutput +} + +type DashboardMap map[string]DashboardInput + +func (DashboardMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Dashboard)(nil)).Elem() +} + +func (i DashboardMap) ToDashboardMapOutput() DashboardMapOutput { + return i.ToDashboardMapOutputWithContext(context.Background()) +} + +func (i DashboardMap) ToDashboardMapOutputWithContext(ctx context.Context) DashboardMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardMapOutput) +} + +type DashboardOutput struct{ *pulumi.OutputState } + +func (DashboardOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Dashboard)(nil)).Elem() +} + +func (o DashboardOutput) ToDashboardOutput() DashboardOutput { + return o +} + +func (o DashboardOutput) ToDashboardOutputWithContext(ctx context.Context) DashboardOutput { + return o +} + +// The Amazon Resource Name (ARN) of the dashboard. +func (o DashboardOutput) DashboardArn() pulumi.StringOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringOutput { return v.DashboardArn }).(pulumi.StringOutput) +} + +// The detailed information about the dashboard, including what widgets are included and their location on the dashboard. You can read more about the body structure in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html). +func (o DashboardOutput) DashboardBody() pulumi.StringOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringOutput { return v.DashboardBody }).(pulumi.StringOutput) +} + +// The name of the dashboard. +func (o DashboardOutput) DashboardName() pulumi.StringOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringOutput { return v.DashboardName }).(pulumi.StringOutput) +} + +type DashboardArrayOutput struct{ *pulumi.OutputState } + +func (DashboardArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Dashboard)(nil)).Elem() +} + +func (o DashboardArrayOutput) ToDashboardArrayOutput() DashboardArrayOutput { + return o +} + +func (o DashboardArrayOutput) ToDashboardArrayOutputWithContext(ctx context.Context) DashboardArrayOutput { + return o +} + +func (o DashboardArrayOutput) Index(i pulumi.IntInput) DashboardOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Dashboard { + return vs[0].([]*Dashboard)[vs[1].(int)] + }).(DashboardOutput) +} + +type DashboardMapOutput struct{ *pulumi.OutputState } + +func (DashboardMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Dashboard)(nil)).Elem() +} + +func (o DashboardMapOutput) ToDashboardMapOutput() DashboardMapOutput { + return o +} + +func (o DashboardMapOutput) ToDashboardMapOutputWithContext(ctx context.Context) DashboardMapOutput { + return o +} + +func (o DashboardMapOutput) MapIndex(k pulumi.StringInput) DashboardOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Dashboard { + return vs[0].(map[string]*Dashboard)[vs[1].(string)] + }).(DashboardOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DashboardInput)(nil)).Elem(), &Dashboard{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardArrayInput)(nil)).Elem(), DashboardArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardMapInput)(nil)).Elem(), DashboardMap{}) + pulumi.RegisterOutputType(DashboardOutput{}) + pulumi.RegisterOutputType(DashboardArrayOutput{}) + pulumi.RegisterOutputType(DashboardMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventApiDestination.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventApiDestination.go new file mode 100644 index 000000000..9d17ac240 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventApiDestination.go @@ -0,0 +1,353 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EventBridge event API Destination resource. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventApiDestination(ctx, "test", &cloudwatch.EventApiDestinationArgs{ +// Description: pulumi.String("An API Destination"), +// InvocationEndpoint: pulumi.String("https://api.destination.com/endpoint"), +// HttpMethod: pulumi.String("POST"), +// InvocationRateLimitPerSecond: pulumi.Int(20), +// ConnectionArn: pulumi.Any(aws_cloudwatch_event_connection.Test.Arn), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge API Destinations using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventApiDestination:EventApiDestination test api-destination +// +// ``` +type EventApiDestination struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the event API Destination. + Arn pulumi.StringOutput `pulumi:"arn"` + // ARN of the EventBridge Connection to use for the API Destination. + ConnectionArn pulumi.StringOutput `pulumi:"connectionArn"` + // The description of the new API Destination. Maximum of 512 characters. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Select the HTTP method used for the invocation endpoint, such as GET, POST, PUT, etc. + HttpMethod pulumi.StringOutput `pulumi:"httpMethod"` + // URL endpoint to invoke as a target. This could be a valid endpoint generated by a partner service. You can include "*" as path parameters wildcards to be set from the Target HttpParameters. + InvocationEndpoint pulumi.StringOutput `pulumi:"invocationEndpoint"` + // Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). + InvocationRateLimitPerSecond pulumi.IntPtrOutput `pulumi:"invocationRateLimitPerSecond"` + // The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewEventApiDestination registers a new resource with the given unique name, arguments, and options. +func NewEventApiDestination(ctx *pulumi.Context, + name string, args *EventApiDestinationArgs, opts ...pulumi.ResourceOption) (*EventApiDestination, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ConnectionArn == nil { + return nil, errors.New("invalid value for required argument 'ConnectionArn'") + } + if args.HttpMethod == nil { + return nil, errors.New("invalid value for required argument 'HttpMethod'") + } + if args.InvocationEndpoint == nil { + return nil, errors.New("invalid value for required argument 'InvocationEndpoint'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventApiDestination + err := ctx.RegisterResource("aws:cloudwatch/eventApiDestination:EventApiDestination", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventApiDestination gets an existing EventApiDestination resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventApiDestination(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventApiDestinationState, opts ...pulumi.ResourceOption) (*EventApiDestination, error) { + var resource EventApiDestination + err := ctx.ReadResource("aws:cloudwatch/eventApiDestination:EventApiDestination", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventApiDestination resources. +type eventApiDestinationState struct { + // The Amazon Resource Name (ARN) of the event API Destination. + Arn *string `pulumi:"arn"` + // ARN of the EventBridge Connection to use for the API Destination. + ConnectionArn *string `pulumi:"connectionArn"` + // The description of the new API Destination. Maximum of 512 characters. + Description *string `pulumi:"description"` + // Select the HTTP method used for the invocation endpoint, such as GET, POST, PUT, etc. + HttpMethod *string `pulumi:"httpMethod"` + // URL endpoint to invoke as a target. This could be a valid endpoint generated by a partner service. You can include "*" as path parameters wildcards to be set from the Target HttpParameters. + InvocationEndpoint *string `pulumi:"invocationEndpoint"` + // Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). + InvocationRateLimitPerSecond *int `pulumi:"invocationRateLimitPerSecond"` + // The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name *string `pulumi:"name"` +} + +type EventApiDestinationState struct { + // The Amazon Resource Name (ARN) of the event API Destination. + Arn pulumi.StringPtrInput + // ARN of the EventBridge Connection to use for the API Destination. + ConnectionArn pulumi.StringPtrInput + // The description of the new API Destination. Maximum of 512 characters. + Description pulumi.StringPtrInput + // Select the HTTP method used for the invocation endpoint, such as GET, POST, PUT, etc. + HttpMethod pulumi.StringPtrInput + // URL endpoint to invoke as a target. This could be a valid endpoint generated by a partner service. You can include "*" as path parameters wildcards to be set from the Target HttpParameters. + InvocationEndpoint pulumi.StringPtrInput + // Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). + InvocationRateLimitPerSecond pulumi.IntPtrInput + // The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name pulumi.StringPtrInput +} + +func (EventApiDestinationState) ElementType() reflect.Type { + return reflect.TypeOf((*eventApiDestinationState)(nil)).Elem() +} + +type eventApiDestinationArgs struct { + // ARN of the EventBridge Connection to use for the API Destination. + ConnectionArn string `pulumi:"connectionArn"` + // The description of the new API Destination. Maximum of 512 characters. + Description *string `pulumi:"description"` + // Select the HTTP method used for the invocation endpoint, such as GET, POST, PUT, etc. + HttpMethod string `pulumi:"httpMethod"` + // URL endpoint to invoke as a target. This could be a valid endpoint generated by a partner service. You can include "*" as path parameters wildcards to be set from the Target HttpParameters. + InvocationEndpoint string `pulumi:"invocationEndpoint"` + // Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). + InvocationRateLimitPerSecond *int `pulumi:"invocationRateLimitPerSecond"` + // The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a EventApiDestination resource. +type EventApiDestinationArgs struct { + // ARN of the EventBridge Connection to use for the API Destination. + ConnectionArn pulumi.StringInput + // The description of the new API Destination. Maximum of 512 characters. + Description pulumi.StringPtrInput + // Select the HTTP method used for the invocation endpoint, such as GET, POST, PUT, etc. + HttpMethod pulumi.StringInput + // URL endpoint to invoke as a target. This could be a valid endpoint generated by a partner service. You can include "*" as path parameters wildcards to be set from the Target HttpParameters. + InvocationEndpoint pulumi.StringInput + // Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). + InvocationRateLimitPerSecond pulumi.IntPtrInput + // The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name pulumi.StringPtrInput +} + +func (EventApiDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventApiDestinationArgs)(nil)).Elem() +} + +type EventApiDestinationInput interface { + pulumi.Input + + ToEventApiDestinationOutput() EventApiDestinationOutput + ToEventApiDestinationOutputWithContext(ctx context.Context) EventApiDestinationOutput +} + +func (*EventApiDestination) ElementType() reflect.Type { + return reflect.TypeOf((**EventApiDestination)(nil)).Elem() +} + +func (i *EventApiDestination) ToEventApiDestinationOutput() EventApiDestinationOutput { + return i.ToEventApiDestinationOutputWithContext(context.Background()) +} + +func (i *EventApiDestination) ToEventApiDestinationOutputWithContext(ctx context.Context) EventApiDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventApiDestinationOutput) +} + +// EventApiDestinationArrayInput is an input type that accepts EventApiDestinationArray and EventApiDestinationArrayOutput values. +// You can construct a concrete instance of `EventApiDestinationArrayInput` via: +// +// EventApiDestinationArray{ EventApiDestinationArgs{...} } +type EventApiDestinationArrayInput interface { + pulumi.Input + + ToEventApiDestinationArrayOutput() EventApiDestinationArrayOutput + ToEventApiDestinationArrayOutputWithContext(context.Context) EventApiDestinationArrayOutput +} + +type EventApiDestinationArray []EventApiDestinationInput + +func (EventApiDestinationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventApiDestination)(nil)).Elem() +} + +func (i EventApiDestinationArray) ToEventApiDestinationArrayOutput() EventApiDestinationArrayOutput { + return i.ToEventApiDestinationArrayOutputWithContext(context.Background()) +} + +func (i EventApiDestinationArray) ToEventApiDestinationArrayOutputWithContext(ctx context.Context) EventApiDestinationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventApiDestinationArrayOutput) +} + +// EventApiDestinationMapInput is an input type that accepts EventApiDestinationMap and EventApiDestinationMapOutput values. +// You can construct a concrete instance of `EventApiDestinationMapInput` via: +// +// EventApiDestinationMap{ "key": EventApiDestinationArgs{...} } +type EventApiDestinationMapInput interface { + pulumi.Input + + ToEventApiDestinationMapOutput() EventApiDestinationMapOutput + ToEventApiDestinationMapOutputWithContext(context.Context) EventApiDestinationMapOutput +} + +type EventApiDestinationMap map[string]EventApiDestinationInput + +func (EventApiDestinationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventApiDestination)(nil)).Elem() +} + +func (i EventApiDestinationMap) ToEventApiDestinationMapOutput() EventApiDestinationMapOutput { + return i.ToEventApiDestinationMapOutputWithContext(context.Background()) +} + +func (i EventApiDestinationMap) ToEventApiDestinationMapOutputWithContext(ctx context.Context) EventApiDestinationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventApiDestinationMapOutput) +} + +type EventApiDestinationOutput struct{ *pulumi.OutputState } + +func (EventApiDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventApiDestination)(nil)).Elem() +} + +func (o EventApiDestinationOutput) ToEventApiDestinationOutput() EventApiDestinationOutput { + return o +} + +func (o EventApiDestinationOutput) ToEventApiDestinationOutputWithContext(ctx context.Context) EventApiDestinationOutput { + return o +} + +// The Amazon Resource Name (ARN) of the event API Destination. +func (o EventApiDestinationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// ARN of the EventBridge Connection to use for the API Destination. +func (o EventApiDestinationOutput) ConnectionArn() pulumi.StringOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.StringOutput { return v.ConnectionArn }).(pulumi.StringOutput) +} + +// The description of the new API Destination. Maximum of 512 characters. +func (o EventApiDestinationOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Select the HTTP method used for the invocation endpoint, such as GET, POST, PUT, etc. +func (o EventApiDestinationOutput) HttpMethod() pulumi.StringOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.StringOutput { return v.HttpMethod }).(pulumi.StringOutput) +} + +// URL endpoint to invoke as a target. This could be a valid endpoint generated by a partner service. You can include "*" as path parameters wildcards to be set from the Target HttpParameters. +func (o EventApiDestinationOutput) InvocationEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.StringOutput { return v.InvocationEndpoint }).(pulumi.StringOutput) +} + +// Enter the maximum number of invocations per second to allow for this destination. Enter a value greater than 0 (default 300). +func (o EventApiDestinationOutput) InvocationRateLimitPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.IntPtrOutput { return v.InvocationRateLimitPerSecond }).(pulumi.IntPtrOutput) +} + +// The name of the new API Destination. The name must be unique for your account. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. +func (o EventApiDestinationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EventApiDestination) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type EventApiDestinationArrayOutput struct{ *pulumi.OutputState } + +func (EventApiDestinationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventApiDestination)(nil)).Elem() +} + +func (o EventApiDestinationArrayOutput) ToEventApiDestinationArrayOutput() EventApiDestinationArrayOutput { + return o +} + +func (o EventApiDestinationArrayOutput) ToEventApiDestinationArrayOutputWithContext(ctx context.Context) EventApiDestinationArrayOutput { + return o +} + +func (o EventApiDestinationArrayOutput) Index(i pulumi.IntInput) EventApiDestinationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventApiDestination { + return vs[0].([]*EventApiDestination)[vs[1].(int)] + }).(EventApiDestinationOutput) +} + +type EventApiDestinationMapOutput struct{ *pulumi.OutputState } + +func (EventApiDestinationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventApiDestination)(nil)).Elem() +} + +func (o EventApiDestinationMapOutput) ToEventApiDestinationMapOutput() EventApiDestinationMapOutput { + return o +} + +func (o EventApiDestinationMapOutput) ToEventApiDestinationMapOutputWithContext(ctx context.Context) EventApiDestinationMapOutput { + return o +} + +func (o EventApiDestinationMapOutput) MapIndex(k pulumi.StringInput) EventApiDestinationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventApiDestination { + return vs[0].(map[string]*EventApiDestination)[vs[1].(string)] + }).(EventApiDestinationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventApiDestinationInput)(nil)).Elem(), &EventApiDestination{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventApiDestinationArrayInput)(nil)).Elem(), EventApiDestinationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventApiDestinationMapInput)(nil)).Elem(), EventApiDestinationMap{}) + pulumi.RegisterOutputType(EventApiDestinationOutput{}) + pulumi.RegisterOutputType(EventApiDestinationArrayOutput{}) + pulumi.RegisterOutputType(EventApiDestinationMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventArchive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventArchive.go new file mode 100644 index 000000000..364e777af --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventArchive.go @@ -0,0 +1,375 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EventBridge event archive resource. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// orderEventBus, err := cloudwatch.NewEventBus(ctx, "orderEventBus", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventArchive(ctx, "orderEventArchive", &cloudwatch.EventArchiveArgs{ +// EventSourceArn: orderEventBus.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ## Example all optional arguments +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// orderEventBus, err := cloudwatch.NewEventBus(ctx, "orderEventBus", nil) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "source": []string{ +// "company.team.order", +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = cloudwatch.NewEventArchive(ctx, "orderEventArchive", &cloudwatch.EventArchiveArgs{ +// Description: pulumi.String("Archived events from order service"), +// EventSourceArn: orderEventBus.Arn, +// RetentionDays: pulumi.Int(7), +// EventPattern: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import an EventBridge archive using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventArchive:EventArchive imported_event_archive order-archive +// +// ``` +type EventArchive struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the event archive. + Arn pulumi.StringOutput `pulumi:"arn"` + // The description of the new event archive. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Instructs the new event archive to only capture events matched by this pattern. By default, it attempts to archive every event received in the `eventSourceArn`. + EventPattern pulumi.StringPtrOutput `pulumi:"eventPattern"` + // Event bus source ARN from where these events should be archived. + EventSourceArn pulumi.StringOutput `pulumi:"eventSourceArn"` + // The name of the new event archive. The archive name cannot exceed 48 characters. + Name pulumi.StringOutput `pulumi:"name"` + // The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. + RetentionDays pulumi.IntPtrOutput `pulumi:"retentionDays"` +} + +// NewEventArchive registers a new resource with the given unique name, arguments, and options. +func NewEventArchive(ctx *pulumi.Context, + name string, args *EventArchiveArgs, opts ...pulumi.ResourceOption) (*EventArchive, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.EventSourceArn == nil { + return nil, errors.New("invalid value for required argument 'EventSourceArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventArchive + err := ctx.RegisterResource("aws:cloudwatch/eventArchive:EventArchive", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventArchive gets an existing EventArchive resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventArchive(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventArchiveState, opts ...pulumi.ResourceOption) (*EventArchive, error) { + var resource EventArchive + err := ctx.ReadResource("aws:cloudwatch/eventArchive:EventArchive", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventArchive resources. +type eventArchiveState struct { + // The Amazon Resource Name (ARN) of the event archive. + Arn *string `pulumi:"arn"` + // The description of the new event archive. + Description *string `pulumi:"description"` + // Instructs the new event archive to only capture events matched by this pattern. By default, it attempts to archive every event received in the `eventSourceArn`. + EventPattern *string `pulumi:"eventPattern"` + // Event bus source ARN from where these events should be archived. + EventSourceArn *string `pulumi:"eventSourceArn"` + // The name of the new event archive. The archive name cannot exceed 48 characters. + Name *string `pulumi:"name"` + // The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. + RetentionDays *int `pulumi:"retentionDays"` +} + +type EventArchiveState struct { + // The Amazon Resource Name (ARN) of the event archive. + Arn pulumi.StringPtrInput + // The description of the new event archive. + Description pulumi.StringPtrInput + // Instructs the new event archive to only capture events matched by this pattern. By default, it attempts to archive every event received in the `eventSourceArn`. + EventPattern pulumi.StringPtrInput + // Event bus source ARN from where these events should be archived. + EventSourceArn pulumi.StringPtrInput + // The name of the new event archive. The archive name cannot exceed 48 characters. + Name pulumi.StringPtrInput + // The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. + RetentionDays pulumi.IntPtrInput +} + +func (EventArchiveState) ElementType() reflect.Type { + return reflect.TypeOf((*eventArchiveState)(nil)).Elem() +} + +type eventArchiveArgs struct { + // The description of the new event archive. + Description *string `pulumi:"description"` + // Instructs the new event archive to only capture events matched by this pattern. By default, it attempts to archive every event received in the `eventSourceArn`. + EventPattern *string `pulumi:"eventPattern"` + // Event bus source ARN from where these events should be archived. + EventSourceArn string `pulumi:"eventSourceArn"` + // The name of the new event archive. The archive name cannot exceed 48 characters. + Name *string `pulumi:"name"` + // The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. + RetentionDays *int `pulumi:"retentionDays"` +} + +// The set of arguments for constructing a EventArchive resource. +type EventArchiveArgs struct { + // The description of the new event archive. + Description pulumi.StringPtrInput + // Instructs the new event archive to only capture events matched by this pattern. By default, it attempts to archive every event received in the `eventSourceArn`. + EventPattern pulumi.StringPtrInput + // Event bus source ARN from where these events should be archived. + EventSourceArn pulumi.StringInput + // The name of the new event archive. The archive name cannot exceed 48 characters. + Name pulumi.StringPtrInput + // The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. + RetentionDays pulumi.IntPtrInput +} + +func (EventArchiveArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventArchiveArgs)(nil)).Elem() +} + +type EventArchiveInput interface { + pulumi.Input + + ToEventArchiveOutput() EventArchiveOutput + ToEventArchiveOutputWithContext(ctx context.Context) EventArchiveOutput +} + +func (*EventArchive) ElementType() reflect.Type { + return reflect.TypeOf((**EventArchive)(nil)).Elem() +} + +func (i *EventArchive) ToEventArchiveOutput() EventArchiveOutput { + return i.ToEventArchiveOutputWithContext(context.Background()) +} + +func (i *EventArchive) ToEventArchiveOutputWithContext(ctx context.Context) EventArchiveOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventArchiveOutput) +} + +// EventArchiveArrayInput is an input type that accepts EventArchiveArray and EventArchiveArrayOutput values. +// You can construct a concrete instance of `EventArchiveArrayInput` via: +// +// EventArchiveArray{ EventArchiveArgs{...} } +type EventArchiveArrayInput interface { + pulumi.Input + + ToEventArchiveArrayOutput() EventArchiveArrayOutput + ToEventArchiveArrayOutputWithContext(context.Context) EventArchiveArrayOutput +} + +type EventArchiveArray []EventArchiveInput + +func (EventArchiveArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventArchive)(nil)).Elem() +} + +func (i EventArchiveArray) ToEventArchiveArrayOutput() EventArchiveArrayOutput { + return i.ToEventArchiveArrayOutputWithContext(context.Background()) +} + +func (i EventArchiveArray) ToEventArchiveArrayOutputWithContext(ctx context.Context) EventArchiveArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventArchiveArrayOutput) +} + +// EventArchiveMapInput is an input type that accepts EventArchiveMap and EventArchiveMapOutput values. +// You can construct a concrete instance of `EventArchiveMapInput` via: +// +// EventArchiveMap{ "key": EventArchiveArgs{...} } +type EventArchiveMapInput interface { + pulumi.Input + + ToEventArchiveMapOutput() EventArchiveMapOutput + ToEventArchiveMapOutputWithContext(context.Context) EventArchiveMapOutput +} + +type EventArchiveMap map[string]EventArchiveInput + +func (EventArchiveMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventArchive)(nil)).Elem() +} + +func (i EventArchiveMap) ToEventArchiveMapOutput() EventArchiveMapOutput { + return i.ToEventArchiveMapOutputWithContext(context.Background()) +} + +func (i EventArchiveMap) ToEventArchiveMapOutputWithContext(ctx context.Context) EventArchiveMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventArchiveMapOutput) +} + +type EventArchiveOutput struct{ *pulumi.OutputState } + +func (EventArchiveOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventArchive)(nil)).Elem() +} + +func (o EventArchiveOutput) ToEventArchiveOutput() EventArchiveOutput { + return o +} + +func (o EventArchiveOutput) ToEventArchiveOutputWithContext(ctx context.Context) EventArchiveOutput { + return o +} + +// The Amazon Resource Name (ARN) of the event archive. +func (o EventArchiveOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventArchive) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The description of the new event archive. +func (o EventArchiveOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventArchive) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Instructs the new event archive to only capture events matched by this pattern. By default, it attempts to archive every event received in the `eventSourceArn`. +func (o EventArchiveOutput) EventPattern() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventArchive) pulumi.StringPtrOutput { return v.EventPattern }).(pulumi.StringPtrOutput) +} + +// Event bus source ARN from where these events should be archived. +func (o EventArchiveOutput) EventSourceArn() pulumi.StringOutput { + return o.ApplyT(func(v *EventArchive) pulumi.StringOutput { return v.EventSourceArn }).(pulumi.StringOutput) +} + +// The name of the new event archive. The archive name cannot exceed 48 characters. +func (o EventArchiveOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EventArchive) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The maximum number of days to retain events in the new event archive. By default, it archives indefinitely. +func (o EventArchiveOutput) RetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventArchive) pulumi.IntPtrOutput { return v.RetentionDays }).(pulumi.IntPtrOutput) +} + +type EventArchiveArrayOutput struct{ *pulumi.OutputState } + +func (EventArchiveArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventArchive)(nil)).Elem() +} + +func (o EventArchiveArrayOutput) ToEventArchiveArrayOutput() EventArchiveArrayOutput { + return o +} + +func (o EventArchiveArrayOutput) ToEventArchiveArrayOutputWithContext(ctx context.Context) EventArchiveArrayOutput { + return o +} + +func (o EventArchiveArrayOutput) Index(i pulumi.IntInput) EventArchiveOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventArchive { + return vs[0].([]*EventArchive)[vs[1].(int)] + }).(EventArchiveOutput) +} + +type EventArchiveMapOutput struct{ *pulumi.OutputState } + +func (EventArchiveMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventArchive)(nil)).Elem() +} + +func (o EventArchiveMapOutput) ToEventArchiveMapOutput() EventArchiveMapOutput { + return o +} + +func (o EventArchiveMapOutput) ToEventArchiveMapOutputWithContext(ctx context.Context) EventArchiveMapOutput { + return o +} + +func (o EventArchiveMapOutput) MapIndex(k pulumi.StringInput) EventArchiveOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventArchive { + return vs[0].(map[string]*EventArchive)[vs[1].(string)] + }).(EventArchiveOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventArchiveInput)(nil)).Elem(), &EventArchive{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventArchiveArrayInput)(nil)).Elem(), EventArchiveArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventArchiveMapInput)(nil)).Elem(), EventArchiveMap{}) + pulumi.RegisterOutputType(EventArchiveOutput{}) + pulumi.RegisterOutputType(EventArchiveArrayOutput{}) + pulumi.RegisterOutputType(EventArchiveMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBus.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBus.go new file mode 100644 index 000000000..8819cdf4f --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBus.go @@ -0,0 +1,345 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EventBridge event bus resource. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventBus(ctx, "messenger", nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplepartnerEventSource, err := cloudwatch.GetEventSource(ctx, &cloudwatch.GetEventSourceArgs{ +// NamePrefix: pulumi.StringRef("aws.partner/examplepartner.com"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventBus(ctx, "examplepartnerEventBus", &cloudwatch.EventBusArgs{ +// EventSourceName: *pulumi.String(examplepartnerEventSource.Name), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge event buses using the `name` (which can also be a partner event source name). For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventBus:EventBus messenger chat-messages +// +// ``` +type EventBus struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the event bus. + Arn pulumi.StringOutput `pulumi:"arn"` + // The partner event source that the new event bus will be matched with. Must match `name`. + EventSourceName pulumi.StringPtrOutput `pulumi:"eventSourceName"` + // The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `eventSourceName`. + Name pulumi.StringOutput `pulumi:"name"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewEventBus registers a new resource with the given unique name, arguments, and options. +func NewEventBus(ctx *pulumi.Context, + name string, args *EventBusArgs, opts ...pulumi.ResourceOption) (*EventBus, error) { + if args == nil { + args = &EventBusArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventBus + err := ctx.RegisterResource("aws:cloudwatch/eventBus:EventBus", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventBus gets an existing EventBus resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventBus(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventBusState, opts ...pulumi.ResourceOption) (*EventBus, error) { + var resource EventBus + err := ctx.ReadResource("aws:cloudwatch/eventBus:EventBus", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventBus resources. +type eventBusState struct { + // The Amazon Resource Name (ARN) of the event bus. + Arn *string `pulumi:"arn"` + // The partner event source that the new event bus will be matched with. Must match `name`. + EventSourceName *string `pulumi:"eventSourceName"` + // The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `eventSourceName`. + Name *string `pulumi:"name"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type EventBusState struct { + // The Amazon Resource Name (ARN) of the event bus. + Arn pulumi.StringPtrInput + // The partner event source that the new event bus will be matched with. Must match `name`. + EventSourceName pulumi.StringPtrInput + // The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `eventSourceName`. + Name pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (EventBusState) ElementType() reflect.Type { + return reflect.TypeOf((*eventBusState)(nil)).Elem() +} + +type eventBusArgs struct { + // The partner event source that the new event bus will be matched with. Must match `name`. + EventSourceName *string `pulumi:"eventSourceName"` + // The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `eventSourceName`. + Name *string `pulumi:"name"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a EventBus resource. +type EventBusArgs struct { + // The partner event source that the new event bus will be matched with. Must match `name`. + EventSourceName pulumi.StringPtrInput + // The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `eventSourceName`. + Name pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (EventBusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventBusArgs)(nil)).Elem() +} + +type EventBusInput interface { + pulumi.Input + + ToEventBusOutput() EventBusOutput + ToEventBusOutputWithContext(ctx context.Context) EventBusOutput +} + +func (*EventBus) ElementType() reflect.Type { + return reflect.TypeOf((**EventBus)(nil)).Elem() +} + +func (i *EventBus) ToEventBusOutput() EventBusOutput { + return i.ToEventBusOutputWithContext(context.Background()) +} + +func (i *EventBus) ToEventBusOutputWithContext(ctx context.Context) EventBusOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventBusOutput) +} + +// EventBusArrayInput is an input type that accepts EventBusArray and EventBusArrayOutput values. +// You can construct a concrete instance of `EventBusArrayInput` via: +// +// EventBusArray{ EventBusArgs{...} } +type EventBusArrayInput interface { + pulumi.Input + + ToEventBusArrayOutput() EventBusArrayOutput + ToEventBusArrayOutputWithContext(context.Context) EventBusArrayOutput +} + +type EventBusArray []EventBusInput + +func (EventBusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventBus)(nil)).Elem() +} + +func (i EventBusArray) ToEventBusArrayOutput() EventBusArrayOutput { + return i.ToEventBusArrayOutputWithContext(context.Background()) +} + +func (i EventBusArray) ToEventBusArrayOutputWithContext(ctx context.Context) EventBusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventBusArrayOutput) +} + +// EventBusMapInput is an input type that accepts EventBusMap and EventBusMapOutput values. +// You can construct a concrete instance of `EventBusMapInput` via: +// +// EventBusMap{ "key": EventBusArgs{...} } +type EventBusMapInput interface { + pulumi.Input + + ToEventBusMapOutput() EventBusMapOutput + ToEventBusMapOutputWithContext(context.Context) EventBusMapOutput +} + +type EventBusMap map[string]EventBusInput + +func (EventBusMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventBus)(nil)).Elem() +} + +func (i EventBusMap) ToEventBusMapOutput() EventBusMapOutput { + return i.ToEventBusMapOutputWithContext(context.Background()) +} + +func (i EventBusMap) ToEventBusMapOutputWithContext(ctx context.Context) EventBusMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventBusMapOutput) +} + +type EventBusOutput struct{ *pulumi.OutputState } + +func (EventBusOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventBus)(nil)).Elem() +} + +func (o EventBusOutput) ToEventBusOutput() EventBusOutput { + return o +} + +func (o EventBusOutput) ToEventBusOutputWithContext(ctx context.Context) EventBusOutput { + return o +} + +// The Amazon Resource Name (ARN) of the event bus. +func (o EventBusOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventBus) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The partner event source that the new event bus will be matched with. Must match `name`. +func (o EventBusOutput) EventSourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventBus) pulumi.StringPtrOutput { return v.EventSourceName }).(pulumi.StringPtrOutput) +} + +// The name of the new event bus. The names of custom event buses can't contain the / character. To create a partner event bus, ensure the `name` matches the `eventSourceName`. +func (o EventBusOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EventBus) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o EventBusOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventBus) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o EventBusOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventBus) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type EventBusArrayOutput struct{ *pulumi.OutputState } + +func (EventBusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventBus)(nil)).Elem() +} + +func (o EventBusArrayOutput) ToEventBusArrayOutput() EventBusArrayOutput { + return o +} + +func (o EventBusArrayOutput) ToEventBusArrayOutputWithContext(ctx context.Context) EventBusArrayOutput { + return o +} + +func (o EventBusArrayOutput) Index(i pulumi.IntInput) EventBusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventBus { + return vs[0].([]*EventBus)[vs[1].(int)] + }).(EventBusOutput) +} + +type EventBusMapOutput struct{ *pulumi.OutputState } + +func (EventBusMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventBus)(nil)).Elem() +} + +func (o EventBusMapOutput) ToEventBusMapOutput() EventBusMapOutput { + return o +} + +func (o EventBusMapOutput) ToEventBusMapOutputWithContext(ctx context.Context) EventBusMapOutput { + return o +} + +func (o EventBusMapOutput) MapIndex(k pulumi.StringInput) EventBusOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventBus { + return vs[0].(map[string]*EventBus)[vs[1].(string)] + }).(EventBusOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventBusInput)(nil)).Elem(), &EventBus{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventBusArrayInput)(nil)).Elem(), EventBusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventBusMapInput)(nil)).Elem(), EventBusMap{}) + pulumi.RegisterOutputType(EventBusOutput{}) + pulumi.RegisterOutputType(EventBusArrayOutput{}) + pulumi.RegisterOutputType(EventBusMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBusPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBusPolicy.go new file mode 100644 index 000000000..5f640bcff --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventBusPolicy.go @@ -0,0 +1,452 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to create an EventBridge resource policy to support cross-account events. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// > **Note:** The EventBridge bus policy resource (`cloudwatch.EventBusPolicy`) is incompatible with the EventBridge permission resource (`cloudwatch.EventPermission`) and will overwrite permissions. +// +// ## Example Usage +// ### Account Access +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("DevAccountAccess"), +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "events:PutEvents", +// }, +// Resources: []string{ +// "arn:aws:events:eu-west-1:123456789012:event-bus/default", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "AWS", +// Identifiers: []string{ +// "123456789012", +// }, +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventBusPolicy(ctx, "testEventBusPolicy", &cloudwatch.EventBusPolicyArgs{ +// Policy: *pulumi.String(testPolicyDocument.Json), +// EventBusName: pulumi.Any(aws_cloudwatch_event_bus.Test.Name), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Organization Access +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("OrganizationAccess"), +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "events:DescribeRule", +// "events:ListRules", +// "events:ListTargetsByRule", +// "events:ListTagsForResource", +// }, +// Resources: []string{ +// "arn:aws:events:eu-west-1:123456789012:rule/*", +// "arn:aws:events:eu-west-1:123456789012:event-bus/default", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "AWS", +// Identifiers: []string{ +// "*", +// }, +// }, +// }, +// Conditions: []iam.GetPolicyDocumentStatementCondition{ +// { +// Test: "StringEquals", +// Variable: "aws:PrincipalOrgID", +// Values: interface{}{ +// aws_organizations_organization.Example.Id, +// }, +// }, +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventBusPolicy(ctx, "testEventBusPolicy", &cloudwatch.EventBusPolicyArgs{ +// Policy: *pulumi.String(testPolicyDocument.Json), +// EventBusName: pulumi.Any(aws_cloudwatch_event_bus.Test.Name), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// ### Multiple Statements +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("DevAccountAccess"), +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "events:PutEvents", +// }, +// Resources: []string{ +// "arn:aws:events:eu-west-1:123456789012:event-bus/default", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "AWS", +// Identifiers: []string{ +// "123456789012", +// }, +// }, +// }, +// }, +// { +// Sid: pulumi.StringRef("OrganizationAccess"), +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "events:DescribeRule", +// "events:ListRules", +// "events:ListTargetsByRule", +// "events:ListTagsForResource", +// }, +// Resources: []string{ +// "arn:aws:events:eu-west-1:123456789012:rule/*", +// "arn:aws:events:eu-west-1:123456789012:event-bus/default", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "AWS", +// Identifiers: []string{ +// "*", +// }, +// }, +// }, +// Conditions: []iam.GetPolicyDocumentStatementCondition{ +// { +// Test: "StringEquals", +// Variable: "aws:PrincipalOrgID", +// Values: interface{}{ +// aws_organizations_organization.Example.Id, +// }, +// }, +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventBusPolicy(ctx, "testEventBusPolicy", &cloudwatch.EventBusPolicyArgs{ +// Policy: *pulumi.String(testPolicyDocument.Json), +// EventBusName: pulumi.Any(aws_cloudwatch_event_bus.Test.Name), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Using `pulumi import`, import an EventBridge policy using the `event_bus_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventBusPolicy:EventBusPolicy DevAccountAccess example-event-bus +// +// ``` +type EventBusPolicy struct { + pulumi.CustomResourceState + + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName pulumi.StringPtrOutput `pulumi:"eventBusName"` + // The text of the policy. + Policy pulumi.StringOutput `pulumi:"policy"` +} + +// NewEventBusPolicy registers a new resource with the given unique name, arguments, and options. +func NewEventBusPolicy(ctx *pulumi.Context, + name string, args *EventBusPolicyArgs, opts ...pulumi.ResourceOption) (*EventBusPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventBusPolicy + err := ctx.RegisterResource("aws:cloudwatch/eventBusPolicy:EventBusPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventBusPolicy gets an existing EventBusPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventBusPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventBusPolicyState, opts ...pulumi.ResourceOption) (*EventBusPolicy, error) { + var resource EventBusPolicy + err := ctx.ReadResource("aws:cloudwatch/eventBusPolicy:EventBusPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventBusPolicy resources. +type eventBusPolicyState struct { + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName *string `pulumi:"eventBusName"` + // The text of the policy. + Policy *string `pulumi:"policy"` +} + +type EventBusPolicyState struct { + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName pulumi.StringPtrInput + // The text of the policy. + Policy pulumi.StringPtrInput +} + +func (EventBusPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*eventBusPolicyState)(nil)).Elem() +} + +type eventBusPolicyArgs struct { + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName *string `pulumi:"eventBusName"` + // The text of the policy. + Policy string `pulumi:"policy"` +} + +// The set of arguments for constructing a EventBusPolicy resource. +type EventBusPolicyArgs struct { + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName pulumi.StringPtrInput + // The text of the policy. + Policy pulumi.StringInput +} + +func (EventBusPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventBusPolicyArgs)(nil)).Elem() +} + +type EventBusPolicyInput interface { + pulumi.Input + + ToEventBusPolicyOutput() EventBusPolicyOutput + ToEventBusPolicyOutputWithContext(ctx context.Context) EventBusPolicyOutput +} + +func (*EventBusPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**EventBusPolicy)(nil)).Elem() +} + +func (i *EventBusPolicy) ToEventBusPolicyOutput() EventBusPolicyOutput { + return i.ToEventBusPolicyOutputWithContext(context.Background()) +} + +func (i *EventBusPolicy) ToEventBusPolicyOutputWithContext(ctx context.Context) EventBusPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventBusPolicyOutput) +} + +// EventBusPolicyArrayInput is an input type that accepts EventBusPolicyArray and EventBusPolicyArrayOutput values. +// You can construct a concrete instance of `EventBusPolicyArrayInput` via: +// +// EventBusPolicyArray{ EventBusPolicyArgs{...} } +type EventBusPolicyArrayInput interface { + pulumi.Input + + ToEventBusPolicyArrayOutput() EventBusPolicyArrayOutput + ToEventBusPolicyArrayOutputWithContext(context.Context) EventBusPolicyArrayOutput +} + +type EventBusPolicyArray []EventBusPolicyInput + +func (EventBusPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventBusPolicy)(nil)).Elem() +} + +func (i EventBusPolicyArray) ToEventBusPolicyArrayOutput() EventBusPolicyArrayOutput { + return i.ToEventBusPolicyArrayOutputWithContext(context.Background()) +} + +func (i EventBusPolicyArray) ToEventBusPolicyArrayOutputWithContext(ctx context.Context) EventBusPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventBusPolicyArrayOutput) +} + +// EventBusPolicyMapInput is an input type that accepts EventBusPolicyMap and EventBusPolicyMapOutput values. +// You can construct a concrete instance of `EventBusPolicyMapInput` via: +// +// EventBusPolicyMap{ "key": EventBusPolicyArgs{...} } +type EventBusPolicyMapInput interface { + pulumi.Input + + ToEventBusPolicyMapOutput() EventBusPolicyMapOutput + ToEventBusPolicyMapOutputWithContext(context.Context) EventBusPolicyMapOutput +} + +type EventBusPolicyMap map[string]EventBusPolicyInput + +func (EventBusPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventBusPolicy)(nil)).Elem() +} + +func (i EventBusPolicyMap) ToEventBusPolicyMapOutput() EventBusPolicyMapOutput { + return i.ToEventBusPolicyMapOutputWithContext(context.Background()) +} + +func (i EventBusPolicyMap) ToEventBusPolicyMapOutputWithContext(ctx context.Context) EventBusPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventBusPolicyMapOutput) +} + +type EventBusPolicyOutput struct{ *pulumi.OutputState } + +func (EventBusPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventBusPolicy)(nil)).Elem() +} + +func (o EventBusPolicyOutput) ToEventBusPolicyOutput() EventBusPolicyOutput { + return o +} + +func (o EventBusPolicyOutput) ToEventBusPolicyOutputWithContext(ctx context.Context) EventBusPolicyOutput { + return o +} + +// The name of the event bus to set the permissions on. +// If you omit this, the permissions are set on the `default` event bus. +func (o EventBusPolicyOutput) EventBusName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventBusPolicy) pulumi.StringPtrOutput { return v.EventBusName }).(pulumi.StringPtrOutput) +} + +// The text of the policy. +func (o EventBusPolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *EventBusPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +type EventBusPolicyArrayOutput struct{ *pulumi.OutputState } + +func (EventBusPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventBusPolicy)(nil)).Elem() +} + +func (o EventBusPolicyArrayOutput) ToEventBusPolicyArrayOutput() EventBusPolicyArrayOutput { + return o +} + +func (o EventBusPolicyArrayOutput) ToEventBusPolicyArrayOutputWithContext(ctx context.Context) EventBusPolicyArrayOutput { + return o +} + +func (o EventBusPolicyArrayOutput) Index(i pulumi.IntInput) EventBusPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventBusPolicy { + return vs[0].([]*EventBusPolicy)[vs[1].(int)] + }).(EventBusPolicyOutput) +} + +type EventBusPolicyMapOutput struct{ *pulumi.OutputState } + +func (EventBusPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventBusPolicy)(nil)).Elem() +} + +func (o EventBusPolicyMapOutput) ToEventBusPolicyMapOutput() EventBusPolicyMapOutput { + return o +} + +func (o EventBusPolicyMapOutput) ToEventBusPolicyMapOutputWithContext(ctx context.Context) EventBusPolicyMapOutput { + return o +} + +func (o EventBusPolicyMapOutput) MapIndex(k pulumi.StringInput) EventBusPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventBusPolicy { + return vs[0].(map[string]*EventBusPolicy)[vs[1].(string)] + }).(EventBusPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventBusPolicyInput)(nil)).Elem(), &EventBusPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventBusPolicyArrayInput)(nil)).Elem(), EventBusPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventBusPolicyMapInput)(nil)).Elem(), EventBusPolicyMap{}) + pulumi.RegisterOutputType(EventBusPolicyOutput{}) + pulumi.RegisterOutputType(EventBusPolicyArrayOutput{}) + pulumi.RegisterOutputType(EventBusPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventConnection.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventConnection.go new file mode 100644 index 000000000..eb42b058b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventConnection.go @@ -0,0 +1,366 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EventBridge connection resource. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventConnection(ctx, "test", &cloudwatch.EventConnectionArgs{ +// AuthParameters: &cloudwatch.EventConnectionAuthParametersArgs{ +// ApiKey: &cloudwatch.EventConnectionAuthParametersApiKeyArgs{ +// Key: pulumi.String("x-signature"), +// Value: pulumi.String("1234"), +// }, +// }, +// AuthorizationType: pulumi.String("API_KEY"), +// Description: pulumi.String("A connection description"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Basic Authorization +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventConnection(ctx, "test", &cloudwatch.EventConnectionArgs{ +// AuthParameters: &cloudwatch.EventConnectionAuthParametersArgs{ +// Basic: &cloudwatch.EventConnectionAuthParametersBasicArgs{ +// Password: pulumi.String("Pass1234!"), +// Username: pulumi.String("user"), +// }, +// }, +// AuthorizationType: pulumi.String("BASIC"), +// Description: pulumi.String("A connection description"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge EventBridge connection using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventConnection:EventConnection test ngrok-connection +// +// ``` +type EventConnection struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the connection. + Arn pulumi.StringOutput `pulumi:"arn"` + // Parameters used for authorization. A maximum of 1 are allowed. Documented below. + AuthParameters EventConnectionAuthParametersOutput `pulumi:"authParameters"` + // Choose the type of authorization to use for the connection. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. + AuthorizationType pulumi.StringOutput `pulumi:"authorizationType"` + // Enter a description for the connection. Maximum of 512 characters. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name pulumi.StringOutput `pulumi:"name"` + // The Amazon Resource Name (ARN) of the secret created from the authorization parameters specified for the connection. + SecretArn pulumi.StringOutput `pulumi:"secretArn"` +} + +// NewEventConnection registers a new resource with the given unique name, arguments, and options. +func NewEventConnection(ctx *pulumi.Context, + name string, args *EventConnectionArgs, opts ...pulumi.ResourceOption) (*EventConnection, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AuthParameters == nil { + return nil, errors.New("invalid value for required argument 'AuthParameters'") + } + if args.AuthorizationType == nil { + return nil, errors.New("invalid value for required argument 'AuthorizationType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventConnection + err := ctx.RegisterResource("aws:cloudwatch/eventConnection:EventConnection", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventConnection gets an existing EventConnection resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventConnection(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventConnectionState, opts ...pulumi.ResourceOption) (*EventConnection, error) { + var resource EventConnection + err := ctx.ReadResource("aws:cloudwatch/eventConnection:EventConnection", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventConnection resources. +type eventConnectionState struct { + // The Amazon Resource Name (ARN) of the connection. + Arn *string `pulumi:"arn"` + // Parameters used for authorization. A maximum of 1 are allowed. Documented below. + AuthParameters *EventConnectionAuthParameters `pulumi:"authParameters"` + // Choose the type of authorization to use for the connection. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. + AuthorizationType *string `pulumi:"authorizationType"` + // Enter a description for the connection. Maximum of 512 characters. + Description *string `pulumi:"description"` + // The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name *string `pulumi:"name"` + // The Amazon Resource Name (ARN) of the secret created from the authorization parameters specified for the connection. + SecretArn *string `pulumi:"secretArn"` +} + +type EventConnectionState struct { + // The Amazon Resource Name (ARN) of the connection. + Arn pulumi.StringPtrInput + // Parameters used for authorization. A maximum of 1 are allowed. Documented below. + AuthParameters EventConnectionAuthParametersPtrInput + // Choose the type of authorization to use for the connection. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. + AuthorizationType pulumi.StringPtrInput + // Enter a description for the connection. Maximum of 512 characters. + Description pulumi.StringPtrInput + // The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name pulumi.StringPtrInput + // The Amazon Resource Name (ARN) of the secret created from the authorization parameters specified for the connection. + SecretArn pulumi.StringPtrInput +} + +func (EventConnectionState) ElementType() reflect.Type { + return reflect.TypeOf((*eventConnectionState)(nil)).Elem() +} + +type eventConnectionArgs struct { + // Parameters used for authorization. A maximum of 1 are allowed. Documented below. + AuthParameters EventConnectionAuthParameters `pulumi:"authParameters"` + // Choose the type of authorization to use for the connection. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. + AuthorizationType string `pulumi:"authorizationType"` + // Enter a description for the connection. Maximum of 512 characters. + Description *string `pulumi:"description"` + // The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a EventConnection resource. +type EventConnectionArgs struct { + // Parameters used for authorization. A maximum of 1 are allowed. Documented below. + AuthParameters EventConnectionAuthParametersInput + // Choose the type of authorization to use for the connection. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. + AuthorizationType pulumi.StringInput + // Enter a description for the connection. Maximum of 512 characters. + Description pulumi.StringPtrInput + // The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. + Name pulumi.StringPtrInput +} + +func (EventConnectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventConnectionArgs)(nil)).Elem() +} + +type EventConnectionInput interface { + pulumi.Input + + ToEventConnectionOutput() EventConnectionOutput + ToEventConnectionOutputWithContext(ctx context.Context) EventConnectionOutput +} + +func (*EventConnection) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnection)(nil)).Elem() +} + +func (i *EventConnection) ToEventConnectionOutput() EventConnectionOutput { + return i.ToEventConnectionOutputWithContext(context.Background()) +} + +func (i *EventConnection) ToEventConnectionOutputWithContext(ctx context.Context) EventConnectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionOutput) +} + +// EventConnectionArrayInput is an input type that accepts EventConnectionArray and EventConnectionArrayOutput values. +// You can construct a concrete instance of `EventConnectionArrayInput` via: +// +// EventConnectionArray{ EventConnectionArgs{...} } +type EventConnectionArrayInput interface { + pulumi.Input + + ToEventConnectionArrayOutput() EventConnectionArrayOutput + ToEventConnectionArrayOutputWithContext(context.Context) EventConnectionArrayOutput +} + +type EventConnectionArray []EventConnectionInput + +func (EventConnectionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventConnection)(nil)).Elem() +} + +func (i EventConnectionArray) ToEventConnectionArrayOutput() EventConnectionArrayOutput { + return i.ToEventConnectionArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionArray) ToEventConnectionArrayOutputWithContext(ctx context.Context) EventConnectionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionArrayOutput) +} + +// EventConnectionMapInput is an input type that accepts EventConnectionMap and EventConnectionMapOutput values. +// You can construct a concrete instance of `EventConnectionMapInput` via: +// +// EventConnectionMap{ "key": EventConnectionArgs{...} } +type EventConnectionMapInput interface { + pulumi.Input + + ToEventConnectionMapOutput() EventConnectionMapOutput + ToEventConnectionMapOutputWithContext(context.Context) EventConnectionMapOutput +} + +type EventConnectionMap map[string]EventConnectionInput + +func (EventConnectionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventConnection)(nil)).Elem() +} + +func (i EventConnectionMap) ToEventConnectionMapOutput() EventConnectionMapOutput { + return i.ToEventConnectionMapOutputWithContext(context.Background()) +} + +func (i EventConnectionMap) ToEventConnectionMapOutputWithContext(ctx context.Context) EventConnectionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionMapOutput) +} + +type EventConnectionOutput struct{ *pulumi.OutputState } + +func (EventConnectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnection)(nil)).Elem() +} + +func (o EventConnectionOutput) ToEventConnectionOutput() EventConnectionOutput { + return o +} + +func (o EventConnectionOutput) ToEventConnectionOutputWithContext(ctx context.Context) EventConnectionOutput { + return o +} + +// The Amazon Resource Name (ARN) of the connection. +func (o EventConnectionOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventConnection) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Parameters used for authorization. A maximum of 1 are allowed. Documented below. +func (o EventConnectionOutput) AuthParameters() EventConnectionAuthParametersOutput { + return o.ApplyT(func(v *EventConnection) EventConnectionAuthParametersOutput { return v.AuthParameters }).(EventConnectionAuthParametersOutput) +} + +// Choose the type of authorization to use for the connection. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. +func (o EventConnectionOutput) AuthorizationType() pulumi.StringOutput { + return o.ApplyT(func(v *EventConnection) pulumi.StringOutput { return v.AuthorizationType }).(pulumi.StringOutput) +} + +// Enter a description for the connection. Maximum of 512 characters. +func (o EventConnectionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnection) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the new connection. Maximum of 64 characters consisting of numbers, lower/upper case letters, .,-,_. +func (o EventConnectionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EventConnection) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The Amazon Resource Name (ARN) of the secret created from the authorization parameters specified for the connection. +func (o EventConnectionOutput) SecretArn() pulumi.StringOutput { + return o.ApplyT(func(v *EventConnection) pulumi.StringOutput { return v.SecretArn }).(pulumi.StringOutput) +} + +type EventConnectionArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventConnection)(nil)).Elem() +} + +func (o EventConnectionArrayOutput) ToEventConnectionArrayOutput() EventConnectionArrayOutput { + return o +} + +func (o EventConnectionArrayOutput) ToEventConnectionArrayOutputWithContext(ctx context.Context) EventConnectionArrayOutput { + return o +} + +func (o EventConnectionArrayOutput) Index(i pulumi.IntInput) EventConnectionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventConnection { + return vs[0].([]*EventConnection)[vs[1].(int)] + }).(EventConnectionOutput) +} + +type EventConnectionMapOutput struct{ *pulumi.OutputState } + +func (EventConnectionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventConnection)(nil)).Elem() +} + +func (o EventConnectionMapOutput) ToEventConnectionMapOutput() EventConnectionMapOutput { + return o +} + +func (o EventConnectionMapOutput) ToEventConnectionMapOutputWithContext(ctx context.Context) EventConnectionMapOutput { + return o +} + +func (o EventConnectionMapOutput) MapIndex(k pulumi.StringInput) EventConnectionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventConnection { + return vs[0].(map[string]*EventConnection)[vs[1].(string)] + }).(EventConnectionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionInput)(nil)).Elem(), &EventConnection{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionArrayInput)(nil)).Elem(), EventConnectionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionMapInput)(nil)).Elem(), EventConnectionMap{}) + pulumi.RegisterOutputType(EventConnectionOutput{}) + pulumi.RegisterOutputType(EventConnectionArrayOutput{}) + pulumi.RegisterOutputType(EventConnectionMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventEndpoint.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventEndpoint.go new file mode 100644 index 000000000..4b2f87ea9 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventEndpoint.go @@ -0,0 +1,378 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to create an EventBridge Global Endpoint. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventEndpoint(ctx, "this", &cloudwatch.EventEndpointArgs{ +// RoleArn: pulumi.Any(aws_iam_role.Replication.Arn), +// EventBuses: cloudwatch.EventEndpointEventBusArray{ +// &cloudwatch.EventEndpointEventBusArgs{ +// EventBusArn: pulumi.Any(aws_cloudwatch_event_bus.Primary.Arn), +// }, +// &cloudwatch.EventEndpointEventBusArgs{ +// EventBusArn: pulumi.Any(aws_cloudwatch_event_bus.Secondary.Arn), +// }, +// }, +// ReplicationConfig: &cloudwatch.EventEndpointReplicationConfigArgs{ +// State: pulumi.String("DISABLED"), +// }, +// RoutingConfig: &cloudwatch.EventEndpointRoutingConfigArgs{ +// FailoverConfig: &cloudwatch.EventEndpointRoutingConfigFailoverConfigArgs{ +// Primary: &cloudwatch.EventEndpointRoutingConfigFailoverConfigPrimaryArgs{ +// HealthCheck: pulumi.Any(aws_route53_health_check.Primary.Arn), +// }, +// Secondary: &cloudwatch.EventEndpointRoutingConfigFailoverConfigSecondaryArgs{ +// Route: pulumi.String("us-east-2"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge Global Endpoints using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventEndpoint:EventEndpoint imported_endpoint example-endpoint +// +// ``` +type EventEndpoint struct { + pulumi.CustomResourceState + + // The ARN of the endpoint that was created. + Arn pulumi.StringOutput `pulumi:"arn"` + // A description of the global endpoint. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The URL of the endpoint that was created. + EndpointUrl pulumi.StringOutput `pulumi:"endpointUrl"` + // The event buses to use. The names of the event buses must be identical in each Region. Exactly two event buses are required. Documented below. + EventBuses EventEndpointEventBusArrayOutput `pulumi:"eventBuses"` + // The name of the global endpoint. + Name pulumi.StringOutput `pulumi:"name"` + // Parameters used for replication. Documented below. + ReplicationConfig EventEndpointReplicationConfigPtrOutput `pulumi:"replicationConfig"` + // The ARN of the IAM role used for replication between event buses. + RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` + // Parameters used for routing, including the health check and secondary Region. Documented below. + RoutingConfig EventEndpointRoutingConfigOutput `pulumi:"routingConfig"` +} + +// NewEventEndpoint registers a new resource with the given unique name, arguments, and options. +func NewEventEndpoint(ctx *pulumi.Context, + name string, args *EventEndpointArgs, opts ...pulumi.ResourceOption) (*EventEndpoint, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.EventBuses == nil { + return nil, errors.New("invalid value for required argument 'EventBuses'") + } + if args.RoutingConfig == nil { + return nil, errors.New("invalid value for required argument 'RoutingConfig'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventEndpoint + err := ctx.RegisterResource("aws:cloudwatch/eventEndpoint:EventEndpoint", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventEndpoint gets an existing EventEndpoint resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventEndpoint(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventEndpointState, opts ...pulumi.ResourceOption) (*EventEndpoint, error) { + var resource EventEndpoint + err := ctx.ReadResource("aws:cloudwatch/eventEndpoint:EventEndpoint", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventEndpoint resources. +type eventEndpointState struct { + // The ARN of the endpoint that was created. + Arn *string `pulumi:"arn"` + // A description of the global endpoint. + Description *string `pulumi:"description"` + // The URL of the endpoint that was created. + EndpointUrl *string `pulumi:"endpointUrl"` + // The event buses to use. The names of the event buses must be identical in each Region. Exactly two event buses are required. Documented below. + EventBuses []EventEndpointEventBus `pulumi:"eventBuses"` + // The name of the global endpoint. + Name *string `pulumi:"name"` + // Parameters used for replication. Documented below. + ReplicationConfig *EventEndpointReplicationConfig `pulumi:"replicationConfig"` + // The ARN of the IAM role used for replication between event buses. + RoleArn *string `pulumi:"roleArn"` + // Parameters used for routing, including the health check and secondary Region. Documented below. + RoutingConfig *EventEndpointRoutingConfig `pulumi:"routingConfig"` +} + +type EventEndpointState struct { + // The ARN of the endpoint that was created. + Arn pulumi.StringPtrInput + // A description of the global endpoint. + Description pulumi.StringPtrInput + // The URL of the endpoint that was created. + EndpointUrl pulumi.StringPtrInput + // The event buses to use. The names of the event buses must be identical in each Region. Exactly two event buses are required. Documented below. + EventBuses EventEndpointEventBusArrayInput + // The name of the global endpoint. + Name pulumi.StringPtrInput + // Parameters used for replication. Documented below. + ReplicationConfig EventEndpointReplicationConfigPtrInput + // The ARN of the IAM role used for replication between event buses. + RoleArn pulumi.StringPtrInput + // Parameters used for routing, including the health check and secondary Region. Documented below. + RoutingConfig EventEndpointRoutingConfigPtrInput +} + +func (EventEndpointState) ElementType() reflect.Type { + return reflect.TypeOf((*eventEndpointState)(nil)).Elem() +} + +type eventEndpointArgs struct { + // A description of the global endpoint. + Description *string `pulumi:"description"` + // The event buses to use. The names of the event buses must be identical in each Region. Exactly two event buses are required. Documented below. + EventBuses []EventEndpointEventBus `pulumi:"eventBuses"` + // The name of the global endpoint. + Name *string `pulumi:"name"` + // Parameters used for replication. Documented below. + ReplicationConfig *EventEndpointReplicationConfig `pulumi:"replicationConfig"` + // The ARN of the IAM role used for replication between event buses. + RoleArn *string `pulumi:"roleArn"` + // Parameters used for routing, including the health check and secondary Region. Documented below. + RoutingConfig EventEndpointRoutingConfig `pulumi:"routingConfig"` +} + +// The set of arguments for constructing a EventEndpoint resource. +type EventEndpointArgs struct { + // A description of the global endpoint. + Description pulumi.StringPtrInput + // The event buses to use. The names of the event buses must be identical in each Region. Exactly two event buses are required. Documented below. + EventBuses EventEndpointEventBusArrayInput + // The name of the global endpoint. + Name pulumi.StringPtrInput + // Parameters used for replication. Documented below. + ReplicationConfig EventEndpointReplicationConfigPtrInput + // The ARN of the IAM role used for replication between event buses. + RoleArn pulumi.StringPtrInput + // Parameters used for routing, including the health check and secondary Region. Documented below. + RoutingConfig EventEndpointRoutingConfigInput +} + +func (EventEndpointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventEndpointArgs)(nil)).Elem() +} + +type EventEndpointInput interface { + pulumi.Input + + ToEventEndpointOutput() EventEndpointOutput + ToEventEndpointOutputWithContext(ctx context.Context) EventEndpointOutput +} + +func (*EventEndpoint) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpoint)(nil)).Elem() +} + +func (i *EventEndpoint) ToEventEndpointOutput() EventEndpointOutput { + return i.ToEventEndpointOutputWithContext(context.Background()) +} + +func (i *EventEndpoint) ToEventEndpointOutputWithContext(ctx context.Context) EventEndpointOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointOutput) +} + +// EventEndpointArrayInput is an input type that accepts EventEndpointArray and EventEndpointArrayOutput values. +// You can construct a concrete instance of `EventEndpointArrayInput` via: +// +// EventEndpointArray{ EventEndpointArgs{...} } +type EventEndpointArrayInput interface { + pulumi.Input + + ToEventEndpointArrayOutput() EventEndpointArrayOutput + ToEventEndpointArrayOutputWithContext(context.Context) EventEndpointArrayOutput +} + +type EventEndpointArray []EventEndpointInput + +func (EventEndpointArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventEndpoint)(nil)).Elem() +} + +func (i EventEndpointArray) ToEventEndpointArrayOutput() EventEndpointArrayOutput { + return i.ToEventEndpointArrayOutputWithContext(context.Background()) +} + +func (i EventEndpointArray) ToEventEndpointArrayOutputWithContext(ctx context.Context) EventEndpointArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointArrayOutput) +} + +// EventEndpointMapInput is an input type that accepts EventEndpointMap and EventEndpointMapOutput values. +// You can construct a concrete instance of `EventEndpointMapInput` via: +// +// EventEndpointMap{ "key": EventEndpointArgs{...} } +type EventEndpointMapInput interface { + pulumi.Input + + ToEventEndpointMapOutput() EventEndpointMapOutput + ToEventEndpointMapOutputWithContext(context.Context) EventEndpointMapOutput +} + +type EventEndpointMap map[string]EventEndpointInput + +func (EventEndpointMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventEndpoint)(nil)).Elem() +} + +func (i EventEndpointMap) ToEventEndpointMapOutput() EventEndpointMapOutput { + return i.ToEventEndpointMapOutputWithContext(context.Background()) +} + +func (i EventEndpointMap) ToEventEndpointMapOutputWithContext(ctx context.Context) EventEndpointMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointMapOutput) +} + +type EventEndpointOutput struct{ *pulumi.OutputState } + +func (EventEndpointOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpoint)(nil)).Elem() +} + +func (o EventEndpointOutput) ToEventEndpointOutput() EventEndpointOutput { + return o +} + +func (o EventEndpointOutput) ToEventEndpointOutputWithContext(ctx context.Context) EventEndpointOutput { + return o +} + +// The ARN of the endpoint that was created. +func (o EventEndpointOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventEndpoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// A description of the global endpoint. +func (o EventEndpointOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventEndpoint) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The URL of the endpoint that was created. +func (o EventEndpointOutput) EndpointUrl() pulumi.StringOutput { + return o.ApplyT(func(v *EventEndpoint) pulumi.StringOutput { return v.EndpointUrl }).(pulumi.StringOutput) +} + +// The event buses to use. The names of the event buses must be identical in each Region. Exactly two event buses are required. Documented below. +func (o EventEndpointOutput) EventBuses() EventEndpointEventBusArrayOutput { + return o.ApplyT(func(v *EventEndpoint) EventEndpointEventBusArrayOutput { return v.EventBuses }).(EventEndpointEventBusArrayOutput) +} + +// The name of the global endpoint. +func (o EventEndpointOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EventEndpoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Parameters used for replication. Documented below. +func (o EventEndpointOutput) ReplicationConfig() EventEndpointReplicationConfigPtrOutput { + return o.ApplyT(func(v *EventEndpoint) EventEndpointReplicationConfigPtrOutput { return v.ReplicationConfig }).(EventEndpointReplicationConfigPtrOutput) +} + +// The ARN of the IAM role used for replication between event buses. +func (o EventEndpointOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventEndpoint) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// Parameters used for routing, including the health check and secondary Region. Documented below. +func (o EventEndpointOutput) RoutingConfig() EventEndpointRoutingConfigOutput { + return o.ApplyT(func(v *EventEndpoint) EventEndpointRoutingConfigOutput { return v.RoutingConfig }).(EventEndpointRoutingConfigOutput) +} + +type EventEndpointArrayOutput struct{ *pulumi.OutputState } + +func (EventEndpointArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventEndpoint)(nil)).Elem() +} + +func (o EventEndpointArrayOutput) ToEventEndpointArrayOutput() EventEndpointArrayOutput { + return o +} + +func (o EventEndpointArrayOutput) ToEventEndpointArrayOutputWithContext(ctx context.Context) EventEndpointArrayOutput { + return o +} + +func (o EventEndpointArrayOutput) Index(i pulumi.IntInput) EventEndpointOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventEndpoint { + return vs[0].([]*EventEndpoint)[vs[1].(int)] + }).(EventEndpointOutput) +} + +type EventEndpointMapOutput struct{ *pulumi.OutputState } + +func (EventEndpointMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventEndpoint)(nil)).Elem() +} + +func (o EventEndpointMapOutput) ToEventEndpointMapOutput() EventEndpointMapOutput { + return o +} + +func (o EventEndpointMapOutput) ToEventEndpointMapOutputWithContext(ctx context.Context) EventEndpointMapOutput { + return o +} + +func (o EventEndpointMapOutput) MapIndex(k pulumi.StringInput) EventEndpointOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventEndpoint { + return vs[0].(map[string]*EventEndpoint)[vs[1].(string)] + }).(EventEndpointOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointInput)(nil)).Elem(), &EventEndpoint{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointArrayInput)(nil)).Elem(), EventEndpointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointMapInput)(nil)).Elem(), EventEndpointMap{}) + pulumi.RegisterOutputType(EventEndpointOutput{}) + pulumi.RegisterOutputType(EventEndpointArrayOutput{}) + pulumi.RegisterOutputType(EventEndpointMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventPermission.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventPermission.go new file mode 100644 index 000000000..91b6e5b4c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventPermission.go @@ -0,0 +1,361 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to create an EventBridge permission to support cross-account events in the current account default event bus. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// > **Note:** The EventBridge bus policy resource (`cloudwatch.EventBusPolicy`) is incompatible with the EventBridge permission resource (`cloudwatch.EventPermission`) and will overwrite permissions. +// +// ## Example Usage +// ### Account Access +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventPermission(ctx, "devAccountAccess", &cloudwatch.EventPermissionArgs{ +// Principal: pulumi.String("123456789012"), +// StatementId: pulumi.String("DevAccountAccess"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Organization Access +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewEventPermission(ctx, "organizationAccess", &cloudwatch.EventPermissionArgs{ +// Principal: pulumi.String("*"), +// StatementId: pulumi.String("OrganizationAccess"), +// Condition: &cloudwatch.EventPermissionConditionArgs{ +// Key: pulumi.String("aws:PrincipalOrgID"), +// Type: pulumi.String("StringEquals"), +// Value: pulumi.Any(aws_organizations_organization.Example.Id), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge permissions using the `event_bus_name/statement_id` (if you omit `event_bus_name`, the `default` event bus will be used). For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventPermission:EventPermission DevAccountAccess example-event-bus/DevAccountAccess +// +// ``` +type EventPermission struct { + pulumi.CustomResourceState + + // The action that you are enabling the other account to perform. Defaults to `events:PutEvents`. + Action pulumi.StringPtrOutput `pulumi:"action"` + // Configuration block to limit the event bus permissions you are granting to only accounts that fulfill the condition. Specified below. + Condition EventPermissionConditionPtrOutput `pulumi:"condition"` + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName pulumi.StringPtrOutput `pulumi:"eventBusName"` + // The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. + Principal pulumi.StringOutput `pulumi:"principal"` + // An identifier string for the external account that you are granting permissions to. + StatementId pulumi.StringOutput `pulumi:"statementId"` +} + +// NewEventPermission registers a new resource with the given unique name, arguments, and options. +func NewEventPermission(ctx *pulumi.Context, + name string, args *EventPermissionArgs, opts ...pulumi.ResourceOption) (*EventPermission, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Principal == nil { + return nil, errors.New("invalid value for required argument 'Principal'") + } + if args.StatementId == nil { + return nil, errors.New("invalid value for required argument 'StatementId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventPermission + err := ctx.RegisterResource("aws:cloudwatch/eventPermission:EventPermission", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventPermission gets an existing EventPermission resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventPermission(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventPermissionState, opts ...pulumi.ResourceOption) (*EventPermission, error) { + var resource EventPermission + err := ctx.ReadResource("aws:cloudwatch/eventPermission:EventPermission", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventPermission resources. +type eventPermissionState struct { + // The action that you are enabling the other account to perform. Defaults to `events:PutEvents`. + Action *string `pulumi:"action"` + // Configuration block to limit the event bus permissions you are granting to only accounts that fulfill the condition. Specified below. + Condition *EventPermissionCondition `pulumi:"condition"` + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName *string `pulumi:"eventBusName"` + // The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. + Principal *string `pulumi:"principal"` + // An identifier string for the external account that you are granting permissions to. + StatementId *string `pulumi:"statementId"` +} + +type EventPermissionState struct { + // The action that you are enabling the other account to perform. Defaults to `events:PutEvents`. + Action pulumi.StringPtrInput + // Configuration block to limit the event bus permissions you are granting to only accounts that fulfill the condition. Specified below. + Condition EventPermissionConditionPtrInput + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName pulumi.StringPtrInput + // The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. + Principal pulumi.StringPtrInput + // An identifier string for the external account that you are granting permissions to. + StatementId pulumi.StringPtrInput +} + +func (EventPermissionState) ElementType() reflect.Type { + return reflect.TypeOf((*eventPermissionState)(nil)).Elem() +} + +type eventPermissionArgs struct { + // The action that you are enabling the other account to perform. Defaults to `events:PutEvents`. + Action *string `pulumi:"action"` + // Configuration block to limit the event bus permissions you are granting to only accounts that fulfill the condition. Specified below. + Condition *EventPermissionCondition `pulumi:"condition"` + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName *string `pulumi:"eventBusName"` + // The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. + Principal string `pulumi:"principal"` + // An identifier string for the external account that you are granting permissions to. + StatementId string `pulumi:"statementId"` +} + +// The set of arguments for constructing a EventPermission resource. +type EventPermissionArgs struct { + // The action that you are enabling the other account to perform. Defaults to `events:PutEvents`. + Action pulumi.StringPtrInput + // Configuration block to limit the event bus permissions you are granting to only accounts that fulfill the condition. Specified below. + Condition EventPermissionConditionPtrInput + // The name of the event bus to set the permissions on. + // If you omit this, the permissions are set on the `default` event bus. + EventBusName pulumi.StringPtrInput + // The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. + Principal pulumi.StringInput + // An identifier string for the external account that you are granting permissions to. + StatementId pulumi.StringInput +} + +func (EventPermissionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventPermissionArgs)(nil)).Elem() +} + +type EventPermissionInput interface { + pulumi.Input + + ToEventPermissionOutput() EventPermissionOutput + ToEventPermissionOutputWithContext(ctx context.Context) EventPermissionOutput +} + +func (*EventPermission) ElementType() reflect.Type { + return reflect.TypeOf((**EventPermission)(nil)).Elem() +} + +func (i *EventPermission) ToEventPermissionOutput() EventPermissionOutput { + return i.ToEventPermissionOutputWithContext(context.Background()) +} + +func (i *EventPermission) ToEventPermissionOutputWithContext(ctx context.Context) EventPermissionOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventPermissionOutput) +} + +// EventPermissionArrayInput is an input type that accepts EventPermissionArray and EventPermissionArrayOutput values. +// You can construct a concrete instance of `EventPermissionArrayInput` via: +// +// EventPermissionArray{ EventPermissionArgs{...} } +type EventPermissionArrayInput interface { + pulumi.Input + + ToEventPermissionArrayOutput() EventPermissionArrayOutput + ToEventPermissionArrayOutputWithContext(context.Context) EventPermissionArrayOutput +} + +type EventPermissionArray []EventPermissionInput + +func (EventPermissionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventPermission)(nil)).Elem() +} + +func (i EventPermissionArray) ToEventPermissionArrayOutput() EventPermissionArrayOutput { + return i.ToEventPermissionArrayOutputWithContext(context.Background()) +} + +func (i EventPermissionArray) ToEventPermissionArrayOutputWithContext(ctx context.Context) EventPermissionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventPermissionArrayOutput) +} + +// EventPermissionMapInput is an input type that accepts EventPermissionMap and EventPermissionMapOutput values. +// You can construct a concrete instance of `EventPermissionMapInput` via: +// +// EventPermissionMap{ "key": EventPermissionArgs{...} } +type EventPermissionMapInput interface { + pulumi.Input + + ToEventPermissionMapOutput() EventPermissionMapOutput + ToEventPermissionMapOutputWithContext(context.Context) EventPermissionMapOutput +} + +type EventPermissionMap map[string]EventPermissionInput + +func (EventPermissionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventPermission)(nil)).Elem() +} + +func (i EventPermissionMap) ToEventPermissionMapOutput() EventPermissionMapOutput { + return i.ToEventPermissionMapOutputWithContext(context.Background()) +} + +func (i EventPermissionMap) ToEventPermissionMapOutputWithContext(ctx context.Context) EventPermissionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventPermissionMapOutput) +} + +type EventPermissionOutput struct{ *pulumi.OutputState } + +func (EventPermissionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventPermission)(nil)).Elem() +} + +func (o EventPermissionOutput) ToEventPermissionOutput() EventPermissionOutput { + return o +} + +func (o EventPermissionOutput) ToEventPermissionOutputWithContext(ctx context.Context) EventPermissionOutput { + return o +} + +// The action that you are enabling the other account to perform. Defaults to `events:PutEvents`. +func (o EventPermissionOutput) Action() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventPermission) pulumi.StringPtrOutput { return v.Action }).(pulumi.StringPtrOutput) +} + +// Configuration block to limit the event bus permissions you are granting to only accounts that fulfill the condition. Specified below. +func (o EventPermissionOutput) Condition() EventPermissionConditionPtrOutput { + return o.ApplyT(func(v *EventPermission) EventPermissionConditionPtrOutput { return v.Condition }).(EventPermissionConditionPtrOutput) +} + +// The name of the event bus to set the permissions on. +// If you omit this, the permissions are set on the `default` event bus. +func (o EventPermissionOutput) EventBusName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventPermission) pulumi.StringPtrOutput { return v.EventBusName }).(pulumi.StringPtrOutput) +} + +// The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify `*` to permit any account to put events to your default event bus, optionally limited by `condition`. +func (o EventPermissionOutput) Principal() pulumi.StringOutput { + return o.ApplyT(func(v *EventPermission) pulumi.StringOutput { return v.Principal }).(pulumi.StringOutput) +} + +// An identifier string for the external account that you are granting permissions to. +func (o EventPermissionOutput) StatementId() pulumi.StringOutput { + return o.ApplyT(func(v *EventPermission) pulumi.StringOutput { return v.StatementId }).(pulumi.StringOutput) +} + +type EventPermissionArrayOutput struct{ *pulumi.OutputState } + +func (EventPermissionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventPermission)(nil)).Elem() +} + +func (o EventPermissionArrayOutput) ToEventPermissionArrayOutput() EventPermissionArrayOutput { + return o +} + +func (o EventPermissionArrayOutput) ToEventPermissionArrayOutputWithContext(ctx context.Context) EventPermissionArrayOutput { + return o +} + +func (o EventPermissionArrayOutput) Index(i pulumi.IntInput) EventPermissionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventPermission { + return vs[0].([]*EventPermission)[vs[1].(int)] + }).(EventPermissionOutput) +} + +type EventPermissionMapOutput struct{ *pulumi.OutputState } + +func (EventPermissionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventPermission)(nil)).Elem() +} + +func (o EventPermissionMapOutput) ToEventPermissionMapOutput() EventPermissionMapOutput { + return o +} + +func (o EventPermissionMapOutput) ToEventPermissionMapOutputWithContext(ctx context.Context) EventPermissionMapOutput { + return o +} + +func (o EventPermissionMapOutput) MapIndex(k pulumi.StringInput) EventPermissionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventPermission { + return vs[0].(map[string]*EventPermission)[vs[1].(string)] + }).(EventPermissionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventPermissionInput)(nil)).Elem(), &EventPermission{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventPermissionArrayInput)(nil)).Elem(), EventPermissionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventPermissionMapInput)(nil)).Elem(), EventPermissionMap{}) + pulumi.RegisterOutputType(EventPermissionOutput{}) + pulumi.RegisterOutputType(EventPermissionArrayOutput{}) + pulumi.RegisterOutputType(EventPermissionMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventRule.go new file mode 100644 index 000000000..8931ccd39 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventRule.go @@ -0,0 +1,468 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EventBridge Rule resource. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "detail-type": []string{ +// "AWS Console Sign In via CloudTrail", +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// console, err := cloudwatch.NewEventRule(ctx, "console", &cloudwatch.EventRuleArgs{ +// Description: pulumi.String("Capture each AWS Console Sign In"), +// EventPattern: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// awsLogins, err := sns.NewTopic(ctx, "awsLogins", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "sns", &cloudwatch.EventTargetArgs{ +// Rule: console.Name, +// Arn: awsLogins.Arn, +// }) +// if err != nil { +// return err +// } +// snsTopicPolicy := awsLogins.Arn.ApplyT(func(arn string) (iam.GetPolicyDocumentResult, error) { +// return iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: "Allow", +// Actions: []string{ +// "SNS:Publish", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "events.amazonaws.com", +// }, +// }, +// }, +// Resources: interface{}{ +// arn, +// }, +// }, +// }, +// }, nil), nil +// }).(iam.GetPolicyDocumentResultOutput) +// _, err = sns.NewTopicPolicy(ctx, "default", &sns.TopicPolicyArgs{ +// Arn: awsLogins.Arn, +// Policy: snsTopicPolicy.ApplyT(func(snsTopicPolicy iam.GetPolicyDocumentResult) (*string, error) { +// return &snsTopicPolicy.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge Rules using the `event_bus_name/rule_name` (if you omit `event_bus_name`, the `default` event bus will be used). For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventRule:EventRule console example-event-bus/capture-console-sign-in +// +// ``` +type EventRule struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the rule. + Arn pulumi.StringOutput `pulumi:"arn"` + // The description of the rule. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name or ARN of the event bus to associate with this rule. + // If you omit this, the `default` event bus is used. + EventBusName pulumi.StringPtrOutput `pulumi:"eventBusName"` + // The event pattern described a JSON object. At least one of `scheduleExpression` or `eventPattern` is required. See full documentation of [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) for details. **Note**: The event pattern size is 2048 by default but it is adjustable up to 4096 characters by submitting a service quota increase request. See [Amazon EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html) for details. + EventPattern pulumi.StringPtrOutput `pulumi:"eventPattern"` + // Whether the rule should be enabled (defaults to `true`). + IsEnabled pulumi.BoolPtrOutput `pulumi:"isEnabled"` + // The name of the rule. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. **Note**: Due to the length of the generated suffix, must be 38 characters or less. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // The Amazon Resource Name (ARN) associated with the role that is used for target invocation. + RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` + // The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `scheduleExpression` or `eventPattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). + ScheduleExpression pulumi.StringPtrOutput `pulumi:"scheduleExpression"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewEventRule registers a new resource with the given unique name, arguments, and options. +func NewEventRule(ctx *pulumi.Context, + name string, args *EventRuleArgs, opts ...pulumi.ResourceOption) (*EventRule, error) { + if args == nil { + args = &EventRuleArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventRule + err := ctx.RegisterResource("aws:cloudwatch/eventRule:EventRule", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventRule gets an existing EventRule resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventRule(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventRuleState, opts ...pulumi.ResourceOption) (*EventRule, error) { + var resource EventRule + err := ctx.ReadResource("aws:cloudwatch/eventRule:EventRule", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventRule resources. +type eventRuleState struct { + // The Amazon Resource Name (ARN) of the rule. + Arn *string `pulumi:"arn"` + // The description of the rule. + Description *string `pulumi:"description"` + // The name or ARN of the event bus to associate with this rule. + // If you omit this, the `default` event bus is used. + EventBusName *string `pulumi:"eventBusName"` + // The event pattern described a JSON object. At least one of `scheduleExpression` or `eventPattern` is required. See full documentation of [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) for details. **Note**: The event pattern size is 2048 by default but it is adjustable up to 4096 characters by submitting a service quota increase request. See [Amazon EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html) for details. + EventPattern *string `pulumi:"eventPattern"` + // Whether the rule should be enabled (defaults to `true`). + IsEnabled *bool `pulumi:"isEnabled"` + // The name of the rule. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. **Note**: Due to the length of the generated suffix, must be 38 characters or less. + NamePrefix *string `pulumi:"namePrefix"` + // The Amazon Resource Name (ARN) associated with the role that is used for target invocation. + RoleArn *string `pulumi:"roleArn"` + // The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `scheduleExpression` or `eventPattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). + ScheduleExpression *string `pulumi:"scheduleExpression"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type EventRuleState struct { + // The Amazon Resource Name (ARN) of the rule. + Arn pulumi.StringPtrInput + // The description of the rule. + Description pulumi.StringPtrInput + // The name or ARN of the event bus to associate with this rule. + // If you omit this, the `default` event bus is used. + EventBusName pulumi.StringPtrInput + // The event pattern described a JSON object. At least one of `scheduleExpression` or `eventPattern` is required. See full documentation of [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) for details. **Note**: The event pattern size is 2048 by default but it is adjustable up to 4096 characters by submitting a service quota increase request. See [Amazon EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html) for details. + EventPattern pulumi.StringPtrInput + // Whether the rule should be enabled (defaults to `true`). + IsEnabled pulumi.BoolPtrInput + // The name of the rule. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. **Note**: Due to the length of the generated suffix, must be 38 characters or less. + NamePrefix pulumi.StringPtrInput + // The Amazon Resource Name (ARN) associated with the role that is used for target invocation. + RoleArn pulumi.StringPtrInput + // The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `scheduleExpression` or `eventPattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). + ScheduleExpression pulumi.StringPtrInput + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (EventRuleState) ElementType() reflect.Type { + return reflect.TypeOf((*eventRuleState)(nil)).Elem() +} + +type eventRuleArgs struct { + // The description of the rule. + Description *string `pulumi:"description"` + // The name or ARN of the event bus to associate with this rule. + // If you omit this, the `default` event bus is used. + EventBusName *string `pulumi:"eventBusName"` + // The event pattern described a JSON object. At least one of `scheduleExpression` or `eventPattern` is required. See full documentation of [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) for details. **Note**: The event pattern size is 2048 by default but it is adjustable up to 4096 characters by submitting a service quota increase request. See [Amazon EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html) for details. + EventPattern *string `pulumi:"eventPattern"` + // Whether the rule should be enabled (defaults to `true`). + IsEnabled *bool `pulumi:"isEnabled"` + // The name of the rule. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. **Note**: Due to the length of the generated suffix, must be 38 characters or less. + NamePrefix *string `pulumi:"namePrefix"` + // The Amazon Resource Name (ARN) associated with the role that is used for target invocation. + RoleArn *string `pulumi:"roleArn"` + // The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `scheduleExpression` or `eventPattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). + ScheduleExpression *string `pulumi:"scheduleExpression"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a EventRule resource. +type EventRuleArgs struct { + // The description of the rule. + Description pulumi.StringPtrInput + // The name or ARN of the event bus to associate with this rule. + // If you omit this, the `default` event bus is used. + EventBusName pulumi.StringPtrInput + // The event pattern described a JSON object. At least one of `scheduleExpression` or `eventPattern` is required. See full documentation of [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) for details. **Note**: The event pattern size is 2048 by default but it is adjustable up to 4096 characters by submitting a service quota increase request. See [Amazon EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html) for details. + EventPattern pulumi.StringPtrInput + // Whether the rule should be enabled (defaults to `true`). + IsEnabled pulumi.BoolPtrInput + // The name of the rule. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. **Note**: Due to the length of the generated suffix, must be 38 characters or less. + NamePrefix pulumi.StringPtrInput + // The Amazon Resource Name (ARN) associated with the role that is used for target invocation. + RoleArn pulumi.StringPtrInput + // The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `scheduleExpression` or `eventPattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). + ScheduleExpression pulumi.StringPtrInput + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (EventRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventRuleArgs)(nil)).Elem() +} + +type EventRuleInput interface { + pulumi.Input + + ToEventRuleOutput() EventRuleOutput + ToEventRuleOutputWithContext(ctx context.Context) EventRuleOutput +} + +func (*EventRule) ElementType() reflect.Type { + return reflect.TypeOf((**EventRule)(nil)).Elem() +} + +func (i *EventRule) ToEventRuleOutput() EventRuleOutput { + return i.ToEventRuleOutputWithContext(context.Background()) +} + +func (i *EventRule) ToEventRuleOutputWithContext(ctx context.Context) EventRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventRuleOutput) +} + +// EventRuleArrayInput is an input type that accepts EventRuleArray and EventRuleArrayOutput values. +// You can construct a concrete instance of `EventRuleArrayInput` via: +// +// EventRuleArray{ EventRuleArgs{...} } +type EventRuleArrayInput interface { + pulumi.Input + + ToEventRuleArrayOutput() EventRuleArrayOutput + ToEventRuleArrayOutputWithContext(context.Context) EventRuleArrayOutput +} + +type EventRuleArray []EventRuleInput + +func (EventRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventRule)(nil)).Elem() +} + +func (i EventRuleArray) ToEventRuleArrayOutput() EventRuleArrayOutput { + return i.ToEventRuleArrayOutputWithContext(context.Background()) +} + +func (i EventRuleArray) ToEventRuleArrayOutputWithContext(ctx context.Context) EventRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventRuleArrayOutput) +} + +// EventRuleMapInput is an input type that accepts EventRuleMap and EventRuleMapOutput values. +// You can construct a concrete instance of `EventRuleMapInput` via: +// +// EventRuleMap{ "key": EventRuleArgs{...} } +type EventRuleMapInput interface { + pulumi.Input + + ToEventRuleMapOutput() EventRuleMapOutput + ToEventRuleMapOutputWithContext(context.Context) EventRuleMapOutput +} + +type EventRuleMap map[string]EventRuleInput + +func (EventRuleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventRule)(nil)).Elem() +} + +func (i EventRuleMap) ToEventRuleMapOutput() EventRuleMapOutput { + return i.ToEventRuleMapOutputWithContext(context.Background()) +} + +func (i EventRuleMap) ToEventRuleMapOutputWithContext(ctx context.Context) EventRuleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventRuleMapOutput) +} + +type EventRuleOutput struct{ *pulumi.OutputState } + +func (EventRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventRule)(nil)).Elem() +} + +func (o EventRuleOutput) ToEventRuleOutput() EventRuleOutput { + return o +} + +func (o EventRuleOutput) ToEventRuleOutputWithContext(ctx context.Context) EventRuleOutput { + return o +} + +// The Amazon Resource Name (ARN) of the rule. +func (o EventRuleOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The description of the rule. +func (o EventRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name or ARN of the event bus to associate with this rule. +// If you omit this, the `default` event bus is used. +func (o EventRuleOutput) EventBusName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringPtrOutput { return v.EventBusName }).(pulumi.StringPtrOutput) +} + +// The event pattern described a JSON object. At least one of `scheduleExpression` or `eventPattern` is required. See full documentation of [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) for details. **Note**: The event pattern size is 2048 by default but it is adjustable up to 4096 characters by submitting a service quota increase request. See [Amazon EventBridge quotas](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-quota.html) for details. +func (o EventRuleOutput) EventPattern() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringPtrOutput { return v.EventPattern }).(pulumi.StringPtrOutput) +} + +// Whether the rule should be enabled (defaults to `true`). +func (o EventRuleOutput) IsEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EventRule) pulumi.BoolPtrOutput { return v.IsEnabled }).(pulumi.BoolPtrOutput) +} + +// The name of the rule. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. +func (o EventRuleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. **Note**: Due to the length of the generated suffix, must be 38 characters or less. +func (o EventRuleOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// The Amazon Resource Name (ARN) associated with the role that is used for target invocation. +func (o EventRuleOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// The scheduling expression. For example, `cron(0 20 * * ? *)` or `rate(5 minutes)`. At least one of `scheduleExpression` or `eventPattern` is required. Can only be used on the default event bus. For more information, refer to the AWS documentation [Schedule Expressions for Rules](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html). +func (o EventRuleOutput) ScheduleExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringPtrOutput { return v.ScheduleExpression }).(pulumi.StringPtrOutput) +} + +// A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o EventRuleOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o EventRuleOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventRule) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type EventRuleArrayOutput struct{ *pulumi.OutputState } + +func (EventRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventRule)(nil)).Elem() +} + +func (o EventRuleArrayOutput) ToEventRuleArrayOutput() EventRuleArrayOutput { + return o +} + +func (o EventRuleArrayOutput) ToEventRuleArrayOutputWithContext(ctx context.Context) EventRuleArrayOutput { + return o +} + +func (o EventRuleArrayOutput) Index(i pulumi.IntInput) EventRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventRule { + return vs[0].([]*EventRule)[vs[1].(int)] + }).(EventRuleOutput) +} + +type EventRuleMapOutput struct{ *pulumi.OutputState } + +func (EventRuleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventRule)(nil)).Elem() +} + +func (o EventRuleMapOutput) ToEventRuleMapOutput() EventRuleMapOutput { + return o +} + +func (o EventRuleMapOutput) ToEventRuleMapOutputWithContext(ctx context.Context) EventRuleMapOutput { + return o +} + +func (o EventRuleMapOutput) MapIndex(k pulumi.StringInput) EventRuleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventRule { + return vs[0].(map[string]*EventRule)[vs[1].(string)] + }).(EventRuleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventRuleInput)(nil)).Elem(), &EventRule{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventRuleArrayInput)(nil)).Elem(), EventRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventRuleMapInput)(nil)).Elem(), EventRuleMap{}) + pulumi.RegisterOutputType(EventRuleOutput{}) + pulumi.RegisterOutputType(EventRuleArrayOutput{}) + pulumi.RegisterOutputType(EventRuleMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventTarget.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventTarget.go new file mode 100644 index 000000000..cdb75e8f7 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/eventTarget.go @@ -0,0 +1,1109 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EventBridge Target resource. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// ### Kinesis Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "source": []string{ +// "aws.autoscaling", +// }, +// "detail-type": []string{ +// "EC2 Instance Launch Successful", +// "EC2 Instance Terminate Successful", +// "EC2 Instance Launch Unsuccessful", +// "EC2 Instance Terminate Unsuccessful", +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// console, err := cloudwatch.NewEventRule(ctx, "console", &cloudwatch.EventRuleArgs{ +// Description: pulumi.String("Capture all EC2 scaling events"), +// EventPattern: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// testStream, err := kinesis.NewStream(ctx, "testStream", &kinesis.StreamArgs{ +// ShardCount: pulumi.Int(1), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "yada", &cloudwatch.EventTargetArgs{ +// Rule: console.Name, +// Arn: testStream.Arn, +// RunCommandTargets: cloudwatch.EventTargetRunCommandTargetArray{ +// &cloudwatch.EventTargetRunCommandTargetArgs{ +// Key: pulumi.String("tag:Name"), +// Values: pulumi.StringArray{ +// pulumi.String("FooBar"), +// }, +// }, +// &cloudwatch.EventTargetRunCommandTargetArgs{ +// Key: pulumi.String("InstanceIds"), +// Values: pulumi.StringArray{ +// pulumi.String("i-162058cd308bffec2"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### SSM Document Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ssmLifecycleTrust, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "sts:AssumeRole", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "events.amazonaws.com", +// }, +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "schemaVersion": "1.2", +// "description": "Stop an instance", +// "parameters": nil, +// "runtimeConfig": map[string]interface{}{ +// "aws:runShellScript": map[string]interface{}{ +// "properties": []map[string]interface{}{ +// map[string]interface{}{ +// "id": "0.aws:runShellScript", +// "runCommand": []string{ +// "halt", +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// stopInstance, err := ssm.NewDocument(ctx, "stopInstance", &ssm.DocumentArgs{ +// DocumentType: pulumi.String("Command"), +// Content: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// ssmLifecyclePolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("ssm:SendCommand"), +// }, +// Resources: pulumi.StringArray{ +// pulumi.String("arn:aws:ec2:eu-west-1:1234567890:instance/*"), +// }, +// Conditions: iam.GetPolicyDocumentStatementConditionArray{ +// &iam.GetPolicyDocumentStatementConditionArgs{ +// Test: pulumi.String("StringEquals"), +// Variable: pulumi.String("ec2:ResourceTag/Terminate"), +// Values: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// }, +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("ssm:SendCommand"), +// }, +// Resources: pulumi.StringArray{ +// stopInstance.Arn, +// }, +// }, +// }, +// }, nil) +// ssmLifecycleRole, err := iam.NewRole(ctx, "ssmLifecycleRole", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(ssmLifecycleTrust.Json), +// }) +// if err != nil { +// return err +// } +// ssmLifecyclePolicy, err := iam.NewPolicy(ctx, "ssmLifecyclePolicy", &iam.PolicyArgs{ +// Policy: ssmLifecyclePolicyDocument.ApplyT(func(ssmLifecyclePolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &ssmLifecyclePolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "ssmLifecycleRolePolicyAttachment", &iam.RolePolicyAttachmentArgs{ +// PolicyArn: ssmLifecyclePolicy.Arn, +// Role: ssmLifecycleRole.Name, +// }) +// if err != nil { +// return err +// } +// stopInstancesEventRule, err := cloudwatch.NewEventRule(ctx, "stopInstancesEventRule", &cloudwatch.EventRuleArgs{ +// Description: pulumi.String("Stop instances nightly"), +// ScheduleExpression: pulumi.String("cron(0 0 * * ? *)"), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "stopInstancesEventTarget", &cloudwatch.EventTargetArgs{ +// Arn: stopInstance.Arn, +// Rule: stopInstancesEventRule.Name, +// RoleArn: ssmLifecycleRole.Arn, +// RunCommandTargets: cloudwatch.EventTargetRunCommandTargetArray{ +// &cloudwatch.EventTargetRunCommandTargetArgs{ +// Key: pulumi.String("tag:Terminate"), +// Values: pulumi.StringArray{ +// pulumi.String("midnight"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### RunCommand Usage +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// stopInstancesEventRule, err := cloudwatch.NewEventRule(ctx, "stopInstancesEventRule", &cloudwatch.EventRuleArgs{ +// Description: pulumi.String("Stop instances nightly"), +// ScheduleExpression: pulumi.String("cron(0 0 * * ? *)"), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "stopInstancesEventTarget", &cloudwatch.EventTargetArgs{ +// Arn: pulumi.String(fmt.Sprintf("arn:aws:ssm:%v::document/AWS-RunShellScript", _var.Aws_region)), +// Input: pulumi.String("{\"commands\":[\"halt\"]}"), +// Rule: stopInstancesEventRule.Name, +// RoleArn: pulumi.Any(aws_iam_role.Ssm_lifecycle.Arn), +// RunCommandTargets: cloudwatch.EventTargetRunCommandTargetArray{ +// &cloudwatch.EventTargetRunCommandTargetArgs{ +// Key: pulumi.String("tag:Terminate"), +// Values: pulumi.StringArray{ +// pulumi.String("midnight"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### API Gateway target +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleEventRule, err := cloudwatch.NewEventRule(ctx, "exampleEventRule", nil) +// if err != nil { +// return err +// } +// exampleDeployment, err := apigateway.NewDeployment(ctx, "exampleDeployment", &apigateway.DeploymentArgs{ +// RestApi: pulumi.Any(aws_api_gateway_rest_api.Example.Id), +// }) +// if err != nil { +// return err +// } +// exampleStage, err := apigateway.NewStage(ctx, "exampleStage", &apigateway.StageArgs{ +// RestApi: pulumi.Any(aws_api_gateway_rest_api.Example.Id), +// Deployment: exampleDeployment.ID(), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "exampleEventTarget", &cloudwatch.EventTargetArgs{ +// Arn: exampleStage.ExecutionArn.ApplyT(func(executionArn string) (string, error) { +// return fmt.Sprintf("%v/GET", executionArn), nil +// }).(pulumi.StringOutput), +// Rule: exampleEventRule.ID(), +// HttpTarget: &cloudwatch.EventTargetHttpTargetArgs{ +// QueryStringParameters: pulumi.StringMap{ +// "Body": pulumi.String("$.detail.body"), +// }, +// HeaderParameters: pulumi.StringMap{ +// "Env": pulumi.String("Test"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Cross-Account Event Bus target +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "events.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// eventBusInvokeRemoteEventBusRole, err := iam.NewRole(ctx, "eventBusInvokeRemoteEventBusRole", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// eventBusInvokeRemoteEventBusPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "events:PutEvents", +// }, +// Resources: []string{ +// "arn:aws:events:eu-west-1:1234567890:event-bus/My-Event-Bus", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// eventBusInvokeRemoteEventBusPolicy, err := iam.NewPolicy(ctx, "eventBusInvokeRemoteEventBusPolicy", &iam.PolicyArgs{ +// Policy: *pulumi.String(eventBusInvokeRemoteEventBusPolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "eventBusInvokeRemoteEventBusRolePolicyAttachment", &iam.RolePolicyAttachmentArgs{ +// Role: eventBusInvokeRemoteEventBusRole.Name, +// PolicyArn: eventBusInvokeRemoteEventBusPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// stopInstancesEventRule, err := cloudwatch.NewEventRule(ctx, "stopInstancesEventRule", &cloudwatch.EventRuleArgs{ +// Description: pulumi.String("Stop instances nightly"), +// ScheduleExpression: pulumi.String("cron(0 0 * * ? *)"), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "stopInstancesEventTarget", &cloudwatch.EventTargetArgs{ +// Arn: pulumi.String("arn:aws:events:eu-west-1:1234567890:event-bus/My-Event-Bus"), +// Rule: stopInstancesEventRule.Name, +// RoleArn: eventBusInvokeRemoteEventBusRole.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Input Transformer Usage - JSON Object +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleEventRule, err := cloudwatch.NewEventRule(ctx, "exampleEventRule", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "exampleEventTarget", &cloudwatch.EventTargetArgs{ +// Arn: pulumi.Any(aws_lambda_function.Example.Arn), +// Rule: exampleEventRule.ID(), +// InputTransformer: &cloudwatch.EventTargetInputTransformerArgs{ +// InputPaths: pulumi.StringMap{ +// "instance": pulumi.String("$.detail.instance"), +// "status": pulumi.String("$.detail.status"), +// }, +// InputTemplate: pulumi.String("{\n \"instance_id\": ,\n \"instance_status\": \n}\n"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Input Transformer Usage - Simple String +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleEventRule, err := cloudwatch.NewEventRule(ctx, "exampleEventRule", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "exampleEventTarget", &cloudwatch.EventTargetArgs{ +// Arn: pulumi.Any(aws_lambda_function.Example.Arn), +// Rule: exampleEventRule.ID(), +// InputTransformer: &cloudwatch.EventTargetInputTransformerArgs{ +// InputPaths: pulumi.StringMap{ +// "instance": pulumi.String("$.detail.instance"), +// "status": pulumi.String("$.detail.status"), +// }, +// InputTemplate: pulumi.String("\" is in state \""), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Cloudwatch Log Group Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "exampleLogGroup", &cloudwatch.LogGroupArgs{ +// RetentionInDays: pulumi.Int(1), +// }) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "source": []string{ +// "aws.guardduty", +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// exampleEventRule, err := cloudwatch.NewEventRule(ctx, "exampleEventRule", &cloudwatch.EventRuleArgs{ +// Description: pulumi.String("GuardDuty Findings"), +// EventPattern: pulumi.String(json0), +// Tags: pulumi.StringMap{ +// "Environment": pulumi.String("example"), +// }, +// }) +// if err != nil { +// return err +// } +// exampleLogPolicy := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("logs:CreateLogStream"), +// }, +// Resources: pulumi.StringArray{ +// exampleLogGroup.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v:*", arn), nil +// }).(pulumi.StringOutput), +// }, +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("Service"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("events.amazonaws.com"), +// pulumi.String("delivery.logs.amazonaws.com"), +// }, +// }, +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("logs:PutLogEvents"), +// }, +// Resources: pulumi.StringArray{ +// exampleLogGroup.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v:*:*", arn), nil +// }).(pulumi.StringOutput), +// }, +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("Service"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("events.amazonaws.com"), +// pulumi.String("delivery.logs.amazonaws.com"), +// }, +// }, +// }, +// Conditions: iam.GetPolicyDocumentStatementConditionArray{ +// &iam.GetPolicyDocumentStatementConditionArgs{ +// Test: pulumi.String("ArnEquals"), +// Values: pulumi.StringArray{ +// exampleEventRule.Arn, +// }, +// Variable: pulumi.String("aws:SourceArn"), +// }, +// }, +// }, +// }, +// }, nil) +// _, err = cloudwatch.NewLogResourcePolicy(ctx, "exampleLogResourcePolicy", &cloudwatch.LogResourcePolicyArgs{ +// PolicyDocument: exampleLogPolicy.ApplyT(func(exampleLogPolicy iam.GetPolicyDocumentResult) (*string, error) { +// return &exampleLogPolicy.Json, nil +// }).(pulumi.StringPtrOutput), +// PolicyName: pulumi.String("guardduty-log-publishing-policy"), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewEventTarget(ctx, "exampleEventTarget", &cloudwatch.EventTargetArgs{ +// Rule: exampleEventRule.Name, +// Arn: exampleLogGroup.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import EventBridge Targets using `event_bus_name/rule-name/target-id` (if you omit `event_bus_name`, the `default` event bus will be used). For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/eventTarget:EventTarget test-event-target rule-name/target-id +// +// ``` +type EventTarget struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the target. + Arn pulumi.StringOutput `pulumi:"arn"` + // Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed. + BatchTarget EventTargetBatchTargetPtrOutput `pulumi:"batchTarget"` + // Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed. + DeadLetterConfig EventTargetDeadLetterConfigPtrOutput `pulumi:"deadLetterConfig"` + // Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed. + EcsTarget EventTargetEcsTargetPtrOutput `pulumi:"ecsTarget"` + // The name or ARN of the event bus to associate with the rule. + // If you omit this, the `default` event bus is used. + EventBusName pulumi.StringPtrOutput `pulumi:"eventBusName"` + // Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed. + HttpTarget EventTargetHttpTargetPtrOutput `pulumi:"httpTarget"` + // Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`. + Input pulumi.StringPtrOutput `pulumi:"input"` + // The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`. + InputPath pulumi.StringPtrOutput `pulumi:"inputPath"` + // Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`. + InputTransformer EventTargetInputTransformerPtrOutput `pulumi:"inputTransformer"` + // Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed. + KinesisTarget EventTargetKinesisTargetPtrOutput `pulumi:"kinesisTarget"` + // Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed. + RedshiftTarget EventTargetRedshiftTargetPtrOutput `pulumi:"redshiftTarget"` + // Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed. + RetryPolicy EventTargetRetryPolicyPtrOutput `pulumi:"retryPolicy"` + // The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region. + RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` + // The name of the rule you want to add targets to. + // + // The following arguments are optional: + Rule pulumi.StringOutput `pulumi:"rule"` + // Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed. + RunCommandTargets EventTargetRunCommandTargetArrayOutput `pulumi:"runCommandTargets"` + // Parameters used when you are using the rule to invoke an Amazon SageMaker Pipeline. Documented below. A maximum of 1 are allowed. + SagemakerPipelineTarget EventTargetSagemakerPipelineTargetPtrOutput `pulumi:"sagemakerPipelineTarget"` + // Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. + SqsTarget EventTargetSqsTargetPtrOutput `pulumi:"sqsTarget"` + // The unique target assignment ID. If missing, will generate a random, unique id. + TargetId pulumi.StringOutput `pulumi:"targetId"` +} + +// NewEventTarget registers a new resource with the given unique name, arguments, and options. +func NewEventTarget(ctx *pulumi.Context, + name string, args *EventTargetArgs, opts ...pulumi.ResourceOption) (*EventTarget, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Arn == nil { + return nil, errors.New("invalid value for required argument 'Arn'") + } + if args.Rule == nil { + return nil, errors.New("invalid value for required argument 'Rule'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EventTarget + err := ctx.RegisterResource("aws:cloudwatch/eventTarget:EventTarget", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEventTarget gets an existing EventTarget resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEventTarget(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EventTargetState, opts ...pulumi.ResourceOption) (*EventTarget, error) { + var resource EventTarget + err := ctx.ReadResource("aws:cloudwatch/eventTarget:EventTarget", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EventTarget resources. +type eventTargetState struct { + // The Amazon Resource Name (ARN) of the target. + Arn *string `pulumi:"arn"` + // Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed. + BatchTarget *EventTargetBatchTarget `pulumi:"batchTarget"` + // Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed. + DeadLetterConfig *EventTargetDeadLetterConfig `pulumi:"deadLetterConfig"` + // Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed. + EcsTarget *EventTargetEcsTarget `pulumi:"ecsTarget"` + // The name or ARN of the event bus to associate with the rule. + // If you omit this, the `default` event bus is used. + EventBusName *string `pulumi:"eventBusName"` + // Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed. + HttpTarget *EventTargetHttpTarget `pulumi:"httpTarget"` + // Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`. + Input *string `pulumi:"input"` + // The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`. + InputPath *string `pulumi:"inputPath"` + // Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`. + InputTransformer *EventTargetInputTransformer `pulumi:"inputTransformer"` + // Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed. + KinesisTarget *EventTargetKinesisTarget `pulumi:"kinesisTarget"` + // Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed. + RedshiftTarget *EventTargetRedshiftTarget `pulumi:"redshiftTarget"` + // Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed. + RetryPolicy *EventTargetRetryPolicy `pulumi:"retryPolicy"` + // The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region. + RoleArn *string `pulumi:"roleArn"` + // The name of the rule you want to add targets to. + // + // The following arguments are optional: + Rule *string `pulumi:"rule"` + // Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed. + RunCommandTargets []EventTargetRunCommandTarget `pulumi:"runCommandTargets"` + // Parameters used when you are using the rule to invoke an Amazon SageMaker Pipeline. Documented below. A maximum of 1 are allowed. + SagemakerPipelineTarget *EventTargetSagemakerPipelineTarget `pulumi:"sagemakerPipelineTarget"` + // Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. + SqsTarget *EventTargetSqsTarget `pulumi:"sqsTarget"` + // The unique target assignment ID. If missing, will generate a random, unique id. + TargetId *string `pulumi:"targetId"` +} + +type EventTargetState struct { + // The Amazon Resource Name (ARN) of the target. + Arn pulumi.StringPtrInput + // Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed. + BatchTarget EventTargetBatchTargetPtrInput + // Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed. + DeadLetterConfig EventTargetDeadLetterConfigPtrInput + // Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed. + EcsTarget EventTargetEcsTargetPtrInput + // The name or ARN of the event bus to associate with the rule. + // If you omit this, the `default` event bus is used. + EventBusName pulumi.StringPtrInput + // Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed. + HttpTarget EventTargetHttpTargetPtrInput + // Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`. + Input pulumi.StringPtrInput + // The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`. + InputPath pulumi.StringPtrInput + // Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`. + InputTransformer EventTargetInputTransformerPtrInput + // Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed. + KinesisTarget EventTargetKinesisTargetPtrInput + // Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed. + RedshiftTarget EventTargetRedshiftTargetPtrInput + // Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed. + RetryPolicy EventTargetRetryPolicyPtrInput + // The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region. + RoleArn pulumi.StringPtrInput + // The name of the rule you want to add targets to. + // + // The following arguments are optional: + Rule pulumi.StringPtrInput + // Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed. + RunCommandTargets EventTargetRunCommandTargetArrayInput + // Parameters used when you are using the rule to invoke an Amazon SageMaker Pipeline. Documented below. A maximum of 1 are allowed. + SagemakerPipelineTarget EventTargetSagemakerPipelineTargetPtrInput + // Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. + SqsTarget EventTargetSqsTargetPtrInput + // The unique target assignment ID. If missing, will generate a random, unique id. + TargetId pulumi.StringPtrInput +} + +func (EventTargetState) ElementType() reflect.Type { + return reflect.TypeOf((*eventTargetState)(nil)).Elem() +} + +type eventTargetArgs struct { + // The Amazon Resource Name (ARN) of the target. + Arn string `pulumi:"arn"` + // Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed. + BatchTarget *EventTargetBatchTarget `pulumi:"batchTarget"` + // Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed. + DeadLetterConfig *EventTargetDeadLetterConfig `pulumi:"deadLetterConfig"` + // Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed. + EcsTarget *EventTargetEcsTarget `pulumi:"ecsTarget"` + // The name or ARN of the event bus to associate with the rule. + // If you omit this, the `default` event bus is used. + EventBusName *string `pulumi:"eventBusName"` + // Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed. + HttpTarget *EventTargetHttpTarget `pulumi:"httpTarget"` + // Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`. + Input *string `pulumi:"input"` + // The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`. + InputPath *string `pulumi:"inputPath"` + // Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`. + InputTransformer *EventTargetInputTransformer `pulumi:"inputTransformer"` + // Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed. + KinesisTarget *EventTargetKinesisTarget `pulumi:"kinesisTarget"` + // Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed. + RedshiftTarget *EventTargetRedshiftTarget `pulumi:"redshiftTarget"` + // Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed. + RetryPolicy *EventTargetRetryPolicy `pulumi:"retryPolicy"` + // The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region. + RoleArn *string `pulumi:"roleArn"` + // The name of the rule you want to add targets to. + // + // The following arguments are optional: + Rule string `pulumi:"rule"` + // Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed. + RunCommandTargets []EventTargetRunCommandTarget `pulumi:"runCommandTargets"` + // Parameters used when you are using the rule to invoke an Amazon SageMaker Pipeline. Documented below. A maximum of 1 are allowed. + SagemakerPipelineTarget *EventTargetSagemakerPipelineTarget `pulumi:"sagemakerPipelineTarget"` + // Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. + SqsTarget *EventTargetSqsTarget `pulumi:"sqsTarget"` + // The unique target assignment ID. If missing, will generate a random, unique id. + TargetId *string `pulumi:"targetId"` +} + +// The set of arguments for constructing a EventTarget resource. +type EventTargetArgs struct { + // The Amazon Resource Name (ARN) of the target. + Arn pulumi.StringInput + // Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed. + BatchTarget EventTargetBatchTargetPtrInput + // Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed. + DeadLetterConfig EventTargetDeadLetterConfigPtrInput + // Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed. + EcsTarget EventTargetEcsTargetPtrInput + // The name or ARN of the event bus to associate with the rule. + // If you omit this, the `default` event bus is used. + EventBusName pulumi.StringPtrInput + // Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed. + HttpTarget EventTargetHttpTargetPtrInput + // Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`. + Input pulumi.StringPtrInput + // The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`. + InputPath pulumi.StringPtrInput + // Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`. + InputTransformer EventTargetInputTransformerPtrInput + // Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed. + KinesisTarget EventTargetKinesisTargetPtrInput + // Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed. + RedshiftTarget EventTargetRedshiftTargetPtrInput + // Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed. + RetryPolicy EventTargetRetryPolicyPtrInput + // The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region. + RoleArn pulumi.StringPtrInput + // The name of the rule you want to add targets to. + // + // The following arguments are optional: + Rule pulumi.StringInput + // Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed. + RunCommandTargets EventTargetRunCommandTargetArrayInput + // Parameters used when you are using the rule to invoke an Amazon SageMaker Pipeline. Documented below. A maximum of 1 are allowed. + SagemakerPipelineTarget EventTargetSagemakerPipelineTargetPtrInput + // Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. + SqsTarget EventTargetSqsTargetPtrInput + // The unique target assignment ID. If missing, will generate a random, unique id. + TargetId pulumi.StringPtrInput +} + +func (EventTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*eventTargetArgs)(nil)).Elem() +} + +type EventTargetInput interface { + pulumi.Input + + ToEventTargetOutput() EventTargetOutput + ToEventTargetOutputWithContext(ctx context.Context) EventTargetOutput +} + +func (*EventTarget) ElementType() reflect.Type { + return reflect.TypeOf((**EventTarget)(nil)).Elem() +} + +func (i *EventTarget) ToEventTargetOutput() EventTargetOutput { + return i.ToEventTargetOutputWithContext(context.Background()) +} + +func (i *EventTarget) ToEventTargetOutputWithContext(ctx context.Context) EventTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetOutput) +} + +// EventTargetArrayInput is an input type that accepts EventTargetArray and EventTargetArrayOutput values. +// You can construct a concrete instance of `EventTargetArrayInput` via: +// +// EventTargetArray{ EventTargetArgs{...} } +type EventTargetArrayInput interface { + pulumi.Input + + ToEventTargetArrayOutput() EventTargetArrayOutput + ToEventTargetArrayOutputWithContext(context.Context) EventTargetArrayOutput +} + +type EventTargetArray []EventTargetInput + +func (EventTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventTarget)(nil)).Elem() +} + +func (i EventTargetArray) ToEventTargetArrayOutput() EventTargetArrayOutput { + return i.ToEventTargetArrayOutputWithContext(context.Background()) +} + +func (i EventTargetArray) ToEventTargetArrayOutputWithContext(ctx context.Context) EventTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetArrayOutput) +} + +// EventTargetMapInput is an input type that accepts EventTargetMap and EventTargetMapOutput values. +// You can construct a concrete instance of `EventTargetMapInput` via: +// +// EventTargetMap{ "key": EventTargetArgs{...} } +type EventTargetMapInput interface { + pulumi.Input + + ToEventTargetMapOutput() EventTargetMapOutput + ToEventTargetMapOutputWithContext(context.Context) EventTargetMapOutput +} + +type EventTargetMap map[string]EventTargetInput + +func (EventTargetMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventTarget)(nil)).Elem() +} + +func (i EventTargetMap) ToEventTargetMapOutput() EventTargetMapOutput { + return i.ToEventTargetMapOutputWithContext(context.Background()) +} + +func (i EventTargetMap) ToEventTargetMapOutputWithContext(ctx context.Context) EventTargetMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetMapOutput) +} + +type EventTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTarget)(nil)).Elem() +} + +func (o EventTargetOutput) ToEventTargetOutput() EventTargetOutput { + return o +} + +func (o EventTargetOutput) ToEventTargetOutputWithContext(ctx context.Context) EventTargetOutput { + return o +} + +// The Amazon Resource Name (ARN) of the target. +func (o EventTargetOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) BatchTarget() EventTargetBatchTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetBatchTargetPtrOutput { return v.BatchTarget }).(EventTargetBatchTargetPtrOutput) +} + +// Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) DeadLetterConfig() EventTargetDeadLetterConfigPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetDeadLetterConfigPtrOutput { return v.DeadLetterConfig }).(EventTargetDeadLetterConfigPtrOutput) +} + +// Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) EcsTarget() EventTargetEcsTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetEcsTargetPtrOutput { return v.EcsTarget }).(EventTargetEcsTargetPtrOutput) +} + +// The name or ARN of the event bus to associate with the rule. +// If you omit this, the `default` event bus is used. +func (o EventTargetOutput) EventBusName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringPtrOutput { return v.EventBusName }).(pulumi.StringPtrOutput) +} + +// Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed. +func (o EventTargetOutput) HttpTarget() EventTargetHttpTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetHttpTargetPtrOutput { return v.HttpTarget }).(EventTargetHttpTargetPtrOutput) +} + +// Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`. +func (o EventTargetOutput) Input() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringPtrOutput { return v.Input }).(pulumi.StringPtrOutput) +} + +// The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`. +func (o EventTargetOutput) InputPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringPtrOutput { return v.InputPath }).(pulumi.StringPtrOutput) +} + +// Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`. +func (o EventTargetOutput) InputTransformer() EventTargetInputTransformerPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetInputTransformerPtrOutput { return v.InputTransformer }).(EventTargetInputTransformerPtrOutput) +} + +// Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) KinesisTarget() EventTargetKinesisTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetKinesisTargetPtrOutput { return v.KinesisTarget }).(EventTargetKinesisTargetPtrOutput) +} + +// Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) RedshiftTarget() EventTargetRedshiftTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetRedshiftTargetPtrOutput { return v.RedshiftTarget }).(EventTargetRedshiftTargetPtrOutput) +} + +// Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) RetryPolicy() EventTargetRetryPolicyPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetRetryPolicyPtrOutput { return v.RetryPolicy }).(EventTargetRetryPolicyPtrOutput) +} + +// The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region. +func (o EventTargetOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// The name of the rule you want to add targets to. +// +// The following arguments are optional: +func (o EventTargetOutput) Rule() pulumi.StringOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringOutput { return v.Rule }).(pulumi.StringOutput) +} + +// Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed. +func (o EventTargetOutput) RunCommandTargets() EventTargetRunCommandTargetArrayOutput { + return o.ApplyT(func(v *EventTarget) EventTargetRunCommandTargetArrayOutput { return v.RunCommandTargets }).(EventTargetRunCommandTargetArrayOutput) +} + +// Parameters used when you are using the rule to invoke an Amazon SageMaker Pipeline. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) SagemakerPipelineTarget() EventTargetSagemakerPipelineTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetSagemakerPipelineTargetPtrOutput { return v.SagemakerPipelineTarget }).(EventTargetSagemakerPipelineTargetPtrOutput) +} + +// Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed. +func (o EventTargetOutput) SqsTarget() EventTargetSqsTargetPtrOutput { + return o.ApplyT(func(v *EventTarget) EventTargetSqsTargetPtrOutput { return v.SqsTarget }).(EventTargetSqsTargetPtrOutput) +} + +// The unique target assignment ID. If missing, will generate a random, unique id. +func (o EventTargetOutput) TargetId() pulumi.StringOutput { + return o.ApplyT(func(v *EventTarget) pulumi.StringOutput { return v.TargetId }).(pulumi.StringOutput) +} + +type EventTargetArrayOutput struct{ *pulumi.OutputState } + +func (EventTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EventTarget)(nil)).Elem() +} + +func (o EventTargetArrayOutput) ToEventTargetArrayOutput() EventTargetArrayOutput { + return o +} + +func (o EventTargetArrayOutput) ToEventTargetArrayOutputWithContext(ctx context.Context) EventTargetArrayOutput { + return o +} + +func (o EventTargetArrayOutput) Index(i pulumi.IntInput) EventTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EventTarget { + return vs[0].([]*EventTarget)[vs[1].(int)] + }).(EventTargetOutput) +} + +type EventTargetMapOutput struct{ *pulumi.OutputState } + +func (EventTargetMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EventTarget)(nil)).Elem() +} + +func (o EventTargetMapOutput) ToEventTargetMapOutput() EventTargetMapOutput { + return o +} + +func (o EventTargetMapOutput) ToEventTargetMapOutputWithContext(ctx context.Context) EventTargetMapOutput { + return o +} + +func (o EventTargetMapOutput) MapIndex(k pulumi.StringInput) EventTargetOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EventTarget { + return vs[0].(map[string]*EventTarget)[vs[1].(string)] + }).(EventTargetOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetInput)(nil)).Elem(), &EventTarget{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetArrayInput)(nil)).Elem(), EventTargetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetMapInput)(nil)).Elem(), EventTargetMap{}) + pulumi.RegisterOutputType(EventTargetOutput{}) + pulumi.RegisterOutputType(EventTargetArrayOutput{}) + pulumi.RegisterOutputType(EventTargetMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventBus.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventBus.go new file mode 100644 index 000000000..efc62f9a5 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventBus.go @@ -0,0 +1,122 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// EventBridge event bus. Use this data source to compute the ARN of +// an event bus, given the name of the bus. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.LookupEventBus(ctx, &cloudwatch.LookupEventBusArgs{ +// Name: "example-bus-name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupEventBus(ctx *pulumi.Context, args *LookupEventBusArgs, opts ...pulumi.InvokeOption) (*LookupEventBusResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupEventBusResult + err := ctx.Invoke("aws:cloudwatch/getEventBus:getEventBus", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getEventBus. +type LookupEventBusArgs struct { + // Friendly EventBridge event bus name. + Name string `pulumi:"name"` +} + +// A collection of values returned by getEventBus. +type LookupEventBusResult struct { + // ARN. + Arn string `pulumi:"arn"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Name string `pulumi:"name"` +} + +func LookupEventBusOutput(ctx *pulumi.Context, args LookupEventBusOutputArgs, opts ...pulumi.InvokeOption) LookupEventBusResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupEventBusResult, error) { + args := v.(LookupEventBusArgs) + r, err := LookupEventBus(ctx, &args, opts...) + var s LookupEventBusResult + if r != nil { + s = *r + } + return s, err + }).(LookupEventBusResultOutput) +} + +// A collection of arguments for invoking getEventBus. +type LookupEventBusOutputArgs struct { + // Friendly EventBridge event bus name. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupEventBusOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEventBusArgs)(nil)).Elem() +} + +// A collection of values returned by getEventBus. +type LookupEventBusResultOutput struct{ *pulumi.OutputState } + +func (LookupEventBusResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEventBusResult)(nil)).Elem() +} + +func (o LookupEventBusResultOutput) ToLookupEventBusResultOutput() LookupEventBusResultOutput { + return o +} + +func (o LookupEventBusResultOutput) ToLookupEventBusResultOutputWithContext(ctx context.Context) LookupEventBusResultOutput { + return o +} + +// ARN. +func (o LookupEventBusResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventBusResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupEventBusResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventBusResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupEventBusResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventBusResult) string { return v.Name }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEventBusResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventConnection.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventConnection.go new file mode 100644 index 000000000..2bdb80f2e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventConnection.go @@ -0,0 +1,138 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to retrieve information about an EventBridge connection. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.LookupEventConnection(ctx, &cloudwatch.LookupEventConnectionArgs{ +// Name: "test", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupEventConnection(ctx *pulumi.Context, args *LookupEventConnectionArgs, opts ...pulumi.InvokeOption) (*LookupEventConnectionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupEventConnectionResult + err := ctx.Invoke("aws:cloudwatch/getEventConnection:getEventConnection", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getEventConnection. +type LookupEventConnectionArgs struct { + // Name of the connection. + Name string `pulumi:"name"` +} + +// A collection of values returned by getEventConnection. +type LookupEventConnectionResult struct { + // ARN (Amazon Resource Name) for the connection. + Arn string `pulumi:"arn"` + // Type of authorization to use to connect. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. + AuthorizationType string `pulumi:"authorizationType"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Name of the connection. + Name string `pulumi:"name"` + // ARN (Amazon Resource Name) for the secret created from the authorization parameters specified for the connection. + SecretArn string `pulumi:"secretArn"` +} + +func LookupEventConnectionOutput(ctx *pulumi.Context, args LookupEventConnectionOutputArgs, opts ...pulumi.InvokeOption) LookupEventConnectionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupEventConnectionResult, error) { + args := v.(LookupEventConnectionArgs) + r, err := LookupEventConnection(ctx, &args, opts...) + var s LookupEventConnectionResult + if r != nil { + s = *r + } + return s, err + }).(LookupEventConnectionResultOutput) +} + +// A collection of arguments for invoking getEventConnection. +type LookupEventConnectionOutputArgs struct { + // Name of the connection. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupEventConnectionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEventConnectionArgs)(nil)).Elem() +} + +// A collection of values returned by getEventConnection. +type LookupEventConnectionResultOutput struct{ *pulumi.OutputState } + +func (LookupEventConnectionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupEventConnectionResult)(nil)).Elem() +} + +func (o LookupEventConnectionResultOutput) ToLookupEventConnectionResultOutput() LookupEventConnectionResultOutput { + return o +} + +func (o LookupEventConnectionResultOutput) ToLookupEventConnectionResultOutputWithContext(ctx context.Context) LookupEventConnectionResultOutput { + return o +} + +// ARN (Amazon Resource Name) for the connection. +func (o LookupEventConnectionResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventConnectionResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Type of authorization to use to connect. One of `API_KEY`,`BASIC`,`OAUTH_CLIENT_CREDENTIALS`. +func (o LookupEventConnectionResultOutput) AuthorizationType() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventConnectionResult) string { return v.AuthorizationType }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupEventConnectionResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventConnectionResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the connection. +func (o LookupEventConnectionResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventConnectionResult) string { return v.Name }).(pulumi.StringOutput) +} + +// ARN (Amazon Resource Name) for the secret created from the authorization parameters specified for the connection. +func (o LookupEventConnectionResultOutput) SecretArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupEventConnectionResult) string { return v.SecretArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupEventConnectionResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventSource.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventSource.go new file mode 100644 index 000000000..14daf0bd4 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getEventSource.go @@ -0,0 +1,143 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get information about an EventBridge Partner Event Source. This data source will only return one partner event source. An error will be returned if multiple sources match the same name prefix. +// +// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.GetEventSource(ctx, &cloudwatch.GetEventSourceArgs{ +// NamePrefix: pulumi.StringRef("aws.partner/examplepartner.com"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetEventSource(ctx *pulumi.Context, args *GetEventSourceArgs, opts ...pulumi.InvokeOption) (*GetEventSourceResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetEventSourceResult + err := ctx.Invoke("aws:cloudwatch/getEventSource:getEventSource", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getEventSource. +type GetEventSourceArgs struct { + // Specifying this limits the results to only those partner event sources with names that start with the specified prefix + NamePrefix *string `pulumi:"namePrefix"` +} + +// A collection of values returned by getEventSource. +type GetEventSourceResult struct { + // ARN of the partner event source + Arn string `pulumi:"arn"` + // Name of the SaaS partner that created the event source + CreatedBy string `pulumi:"createdBy"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Name of the event source + Name string `pulumi:"name"` + NamePrefix *string `pulumi:"namePrefix"` + // State of the event source (`ACTIVE` or `PENDING`) + State string `pulumi:"state"` +} + +func GetEventSourceOutput(ctx *pulumi.Context, args GetEventSourceOutputArgs, opts ...pulumi.InvokeOption) GetEventSourceResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetEventSourceResult, error) { + args := v.(GetEventSourceArgs) + r, err := GetEventSource(ctx, &args, opts...) + var s GetEventSourceResult + if r != nil { + s = *r + } + return s, err + }).(GetEventSourceResultOutput) +} + +// A collection of arguments for invoking getEventSource. +type GetEventSourceOutputArgs struct { + // Specifying this limits the results to only those partner event sources with names that start with the specified prefix + NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` +} + +func (GetEventSourceOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetEventSourceArgs)(nil)).Elem() +} + +// A collection of values returned by getEventSource. +type GetEventSourceResultOutput struct{ *pulumi.OutputState } + +func (GetEventSourceResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetEventSourceResult)(nil)).Elem() +} + +func (o GetEventSourceResultOutput) ToGetEventSourceResultOutput() GetEventSourceResultOutput { + return o +} + +func (o GetEventSourceResultOutput) ToGetEventSourceResultOutputWithContext(ctx context.Context) GetEventSourceResultOutput { + return o +} + +// ARN of the partner event source +func (o GetEventSourceResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetEventSourceResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Name of the SaaS partner that created the event source +func (o GetEventSourceResultOutput) CreatedBy() pulumi.StringOutput { + return o.ApplyT(func(v GetEventSourceResult) string { return v.CreatedBy }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetEventSourceResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetEventSourceResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the event source +func (o GetEventSourceResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetEventSourceResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetEventSourceResultOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetEventSourceResult) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) +} + +// State of the event source (`ACTIVE` or `PENDING`) +func (o GetEventSourceResultOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v GetEventSourceResult) string { return v.State }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetEventSourceResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogDataProtectionPolicyDocument.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogDataProtectionPolicyDocument.go new file mode 100644 index 000000000..73a071b46 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogDataProtectionPolicyDocument.go @@ -0,0 +1,198 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Generates a CloudWatch Log Group Data Protection Policy document in JSON format for use with the `cloudwatch.LogDataProtectionPolicy` resource. +// +// > For more information about data protection policies, see the [Help protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleLogDataProtectionPolicyDocument, err := cloudwatch.GetLogDataProtectionPolicyDocument(ctx, &cloudwatch.GetLogDataProtectionPolicyDocumentArgs{ +// Name: "Example", +// Statements: []cloudwatch.GetLogDataProtectionPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("Audit"), +// DataIdentifiers: []string{ +// "arn:aws:dataprotection::aws:data-identifier/EmailAddress", +// "arn:aws:dataprotection::aws:data-identifier/DriversLicense-US", +// }, +// Operation: { +// Audit: { +// FindingsDestination: { +// CloudwatchLogs: { +// LogGroup: aws_cloudwatch_log_group.Audit.Name, +// }, +// Firehose: { +// DeliveryStream: aws_kinesis_firehose_delivery_stream.Audit.Name, +// }, +// S3: { +// Bucket: aws_s3_bucket.Audit.Bucket, +// }, +// }, +// }, +// }, +// }, +// { +// Sid: pulumi.StringRef("Deidentify"), +// DataIdentifiers: []string{ +// "arn:aws:dataprotection::aws:data-identifier/EmailAddress", +// "arn:aws:dataprotection::aws:data-identifier/DriversLicense-US", +// }, +// Operation: { +// Deidentify: { +// MaskConfig: nil, +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewLogDataProtectionPolicy(ctx, "exampleLogDataProtectionPolicy", &cloudwatch.LogDataProtectionPolicyArgs{ +// LogGroupName: pulumi.Any(aws_cloudwatch_log_group.Example.Name), +// PolicyDocument: *pulumi.String(exampleLogDataProtectionPolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetLogDataProtectionPolicyDocument(ctx *pulumi.Context, args *GetLogDataProtectionPolicyDocumentArgs, opts ...pulumi.InvokeOption) (*GetLogDataProtectionPolicyDocumentResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetLogDataProtectionPolicyDocumentResult + err := ctx.Invoke("aws:cloudwatch/getLogDataProtectionPolicyDocument:getLogDataProtectionPolicyDocument", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getLogDataProtectionPolicyDocument. +type GetLogDataProtectionPolicyDocumentArgs struct { + Description *string `pulumi:"description"` + // The name of the data protection policy document. + Name string `pulumi:"name"` + // Configures the data protection policy. + // + // > There must be exactly two statements: the first with an `audit` operation, and the second with a `deidentify` operation. + // + // The following arguments are optional: + Statements []GetLogDataProtectionPolicyDocumentStatement `pulumi:"statements"` + Version *string `pulumi:"version"` +} + +// A collection of values returned by getLogDataProtectionPolicyDocument. +type GetLogDataProtectionPolicyDocumentResult struct { + Description *string `pulumi:"description"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Standard JSON policy document rendered based on the arguments above. + Json string `pulumi:"json"` + Name string `pulumi:"name"` + Statements []GetLogDataProtectionPolicyDocumentStatement `pulumi:"statements"` + Version *string `pulumi:"version"` +} + +func GetLogDataProtectionPolicyDocumentOutput(ctx *pulumi.Context, args GetLogDataProtectionPolicyDocumentOutputArgs, opts ...pulumi.InvokeOption) GetLogDataProtectionPolicyDocumentResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetLogDataProtectionPolicyDocumentResult, error) { + args := v.(GetLogDataProtectionPolicyDocumentArgs) + r, err := GetLogDataProtectionPolicyDocument(ctx, &args, opts...) + var s GetLogDataProtectionPolicyDocumentResult + if r != nil { + s = *r + } + return s, err + }).(GetLogDataProtectionPolicyDocumentResultOutput) +} + +// A collection of arguments for invoking getLogDataProtectionPolicyDocument. +type GetLogDataProtectionPolicyDocumentOutputArgs struct { + Description pulumi.StringPtrInput `pulumi:"description"` + // The name of the data protection policy document. + Name pulumi.StringInput `pulumi:"name"` + // Configures the data protection policy. + // + // > There must be exactly two statements: the first with an `audit` operation, and the second with a `deidentify` operation. + // + // The following arguments are optional: + Statements GetLogDataProtectionPolicyDocumentStatementArrayInput `pulumi:"statements"` + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (GetLogDataProtectionPolicyDocumentOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentArgs)(nil)).Elem() +} + +// A collection of values returned by getLogDataProtectionPolicyDocument. +type GetLogDataProtectionPolicyDocumentResultOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentResult)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentResultOutput) ToGetLogDataProtectionPolicyDocumentResultOutput() GetLogDataProtectionPolicyDocumentResultOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentResultOutput) ToGetLogDataProtectionPolicyDocumentResultOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentResultOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetLogDataProtectionPolicyDocumentResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Standard JSON policy document rendered based on the arguments above. +func (o GetLogDataProtectionPolicyDocumentResultOutput) Json() pulumi.StringOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) string { return v.Json }).(pulumi.StringOutput) +} + +func (o GetLogDataProtectionPolicyDocumentResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetLogDataProtectionPolicyDocumentResultOutput) Statements() GetLogDataProtectionPolicyDocumentStatementArrayOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) []GetLogDataProtectionPolicyDocumentStatement { + return v.Statements + }).(GetLogDataProtectionPolicyDocumentStatementArrayOutput) +} + +func (o GetLogDataProtectionPolicyDocumentResultOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentResult) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroup.go new file mode 100644 index 000000000..16e3abce0 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroup.go @@ -0,0 +1,152 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get information about an AWS Cloudwatch Log Group +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.LookupLogGroup(ctx, &cloudwatch.LookupLogGroupArgs{ +// Name: "MyImportantLogs", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupLogGroup(ctx *pulumi.Context, args *LookupLogGroupArgs, opts ...pulumi.InvokeOption) (*LookupLogGroupResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupLogGroupResult + err := ctx.Invoke("aws:cloudwatch/getLogGroup:getLogGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getLogGroup. +type LookupLogGroupArgs struct { + // Name of the Cloudwatch log group + Name string `pulumi:"name"` + // Map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getLogGroup. +type LookupLogGroupResult struct { + // ARN of the Cloudwatch log group. Any `:*` suffix added by the API, denoting all CloudWatch Log Streams under the CloudWatch Log Group, is removed for greater compatibility with other AWS services that do not accept the suffix. + Arn string `pulumi:"arn"` + // Creation time of the log group, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + CreationTime int `pulumi:"creationTime"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // ARN of the KMS Key to use when encrypting log data. + KmsKeyId string `pulumi:"kmsKeyId"` + Name string `pulumi:"name"` + // Number of days log events retained in the specified log group. + RetentionInDays int `pulumi:"retentionInDays"` + // Map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` +} + +func LookupLogGroupOutput(ctx *pulumi.Context, args LookupLogGroupOutputArgs, opts ...pulumi.InvokeOption) LookupLogGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupLogGroupResult, error) { + args := v.(LookupLogGroupArgs) + r, err := LookupLogGroup(ctx, &args, opts...) + var s LookupLogGroupResult + if r != nil { + s = *r + } + return s, err + }).(LookupLogGroupResultOutput) +} + +// A collection of arguments for invoking getLogGroup. +type LookupLogGroupOutputArgs struct { + // Name of the Cloudwatch log group + Name pulumi.StringInput `pulumi:"name"` + // Map of tags to assign to the resource. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LookupLogGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupLogGroupArgs)(nil)).Elem() +} + +// A collection of values returned by getLogGroup. +type LookupLogGroupResultOutput struct{ *pulumi.OutputState } + +func (LookupLogGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupLogGroupResult)(nil)).Elem() +} + +func (o LookupLogGroupResultOutput) ToLookupLogGroupResultOutput() LookupLogGroupResultOutput { + return o +} + +func (o LookupLogGroupResultOutput) ToLookupLogGroupResultOutputWithContext(ctx context.Context) LookupLogGroupResultOutput { + return o +} + +// ARN of the Cloudwatch log group. Any `:*` suffix added by the API, denoting all CloudWatch Log Streams under the CloudWatch Log Group, is removed for greater compatibility with other AWS services that do not accept the suffix. +func (o LookupLogGroupResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogGroupResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Creation time of the log group, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. +func (o LookupLogGroupResultOutput) CreationTime() pulumi.IntOutput { + return o.ApplyT(func(v LookupLogGroupResult) int { return v.CreationTime }).(pulumi.IntOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupLogGroupResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogGroupResult) string { return v.Id }).(pulumi.StringOutput) +} + +// ARN of the KMS Key to use when encrypting log data. +func (o LookupLogGroupResultOutput) KmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogGroupResult) string { return v.KmsKeyId }).(pulumi.StringOutput) +} + +func (o LookupLogGroupResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupLogGroupResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Number of days log events retained in the specified log group. +func (o LookupLogGroupResultOutput) RetentionInDays() pulumi.IntOutput { + return o.ApplyT(func(v LookupLogGroupResult) int { return v.RetentionInDays }).(pulumi.IntOutput) +} + +// Map of tags to assign to the resource. +func (o LookupLogGroupResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupLogGroupResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupLogGroupResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroups.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroups.go new file mode 100644 index 000000000..dd84d1fe0 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/getLogGroups.go @@ -0,0 +1,127 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get a list of AWS Cloudwatch Log Groups +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.GetLogGroups(ctx, &cloudwatch.GetLogGroupsArgs{ +// LogGroupNamePrefix: pulumi.StringRef("/MyImportantLogs"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetLogGroups(ctx *pulumi.Context, args *GetLogGroupsArgs, opts ...pulumi.InvokeOption) (*GetLogGroupsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetLogGroupsResult + err := ctx.Invoke("aws:cloudwatch/getLogGroups:getLogGroups", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getLogGroups. +type GetLogGroupsArgs struct { + // Group prefix of the Cloudwatch log groups to list + LogGroupNamePrefix *string `pulumi:"logGroupNamePrefix"` +} + +// A collection of values returned by getLogGroups. +type GetLogGroupsResult struct { + // Set of ARNs of the Cloudwatch log groups + Arns []string `pulumi:"arns"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + LogGroupNamePrefix *string `pulumi:"logGroupNamePrefix"` + // Set of names of the Cloudwatch log groups + LogGroupNames []string `pulumi:"logGroupNames"` +} + +func GetLogGroupsOutput(ctx *pulumi.Context, args GetLogGroupsOutputArgs, opts ...pulumi.InvokeOption) GetLogGroupsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetLogGroupsResult, error) { + args := v.(GetLogGroupsArgs) + r, err := GetLogGroups(ctx, &args, opts...) + var s GetLogGroupsResult + if r != nil { + s = *r + } + return s, err + }).(GetLogGroupsResultOutput) +} + +// A collection of arguments for invoking getLogGroups. +type GetLogGroupsOutputArgs struct { + // Group prefix of the Cloudwatch log groups to list + LogGroupNamePrefix pulumi.StringPtrInput `pulumi:"logGroupNamePrefix"` +} + +func (GetLogGroupsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogGroupsArgs)(nil)).Elem() +} + +// A collection of values returned by getLogGroups. +type GetLogGroupsResultOutput struct{ *pulumi.OutputState } + +func (GetLogGroupsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogGroupsResult)(nil)).Elem() +} + +func (o GetLogGroupsResultOutput) ToGetLogGroupsResultOutput() GetLogGroupsResultOutput { + return o +} + +func (o GetLogGroupsResultOutput) ToGetLogGroupsResultOutputWithContext(ctx context.Context) GetLogGroupsResultOutput { + return o +} + +// Set of ARNs of the Cloudwatch log groups +func (o GetLogGroupsResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLogGroupsResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetLogGroupsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetLogGroupsResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetLogGroupsResultOutput) LogGroupNamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogGroupsResult) *string { return v.LogGroupNamePrefix }).(pulumi.StringPtrOutput) +} + +// Set of names of the Cloudwatch log groups +func (o GetLogGroupsResultOutput) LogGroupNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLogGroupsResult) []string { return v.LogGroupNames }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(GetLogGroupsResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/init.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/init.go new file mode 100644 index 000000000..63c53b936 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/init.go @@ -0,0 +1,198 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:cloudwatch/compositeAlarm:CompositeAlarm": + r = &CompositeAlarm{} + case "aws:cloudwatch/dashboard:Dashboard": + r = &Dashboard{} + case "aws:cloudwatch/eventApiDestination:EventApiDestination": + r = &EventApiDestination{} + case "aws:cloudwatch/eventArchive:EventArchive": + r = &EventArchive{} + case "aws:cloudwatch/eventBus:EventBus": + r = &EventBus{} + case "aws:cloudwatch/eventBusPolicy:EventBusPolicy": + r = &EventBusPolicy{} + case "aws:cloudwatch/eventConnection:EventConnection": + r = &EventConnection{} + case "aws:cloudwatch/eventEndpoint:EventEndpoint": + r = &EventEndpoint{} + case "aws:cloudwatch/eventPermission:EventPermission": + r = &EventPermission{} + case "aws:cloudwatch/eventRule:EventRule": + r = &EventRule{} + case "aws:cloudwatch/eventTarget:EventTarget": + r = &EventTarget{} + case "aws:cloudwatch/internetMonitor:InternetMonitor": + r = &InternetMonitor{} + case "aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy": + r = &LogDataProtectionPolicy{} + case "aws:cloudwatch/logDestination:LogDestination": + r = &LogDestination{} + case "aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy": + r = &LogDestinationPolicy{} + case "aws:cloudwatch/logGroup:LogGroup": + r = &LogGroup{} + case "aws:cloudwatch/logMetricFilter:LogMetricFilter": + r = &LogMetricFilter{} + case "aws:cloudwatch/logResourcePolicy:LogResourcePolicy": + r = &LogResourcePolicy{} + case "aws:cloudwatch/logStream:LogStream": + r = &LogStream{} + case "aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter": + r = &LogSubscriptionFilter{} + case "aws:cloudwatch/metricAlarm:MetricAlarm": + r = &MetricAlarm{} + case "aws:cloudwatch/metricStream:MetricStream": + r = &MetricStream{} + case "aws:cloudwatch/queryDefinition:QueryDefinition": + r = &QueryDefinition{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/compositeAlarm", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/dashboard", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventApiDestination", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventArchive", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventBus", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventBusPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventConnection", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventEndpoint", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventPermission", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventRule", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/eventTarget", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/internetMonitor", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logDataProtectionPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logDestination", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logDestinationPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logGroup", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logMetricFilter", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logResourcePolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logStream", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/logSubscriptionFilter", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/metricAlarm", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/metricStream", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "cloudwatch/queryDefinition", + &module{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/internetMonitor.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/internetMonitor.go new file mode 100644 index 000000000..520feb487 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/internetMonitor.go @@ -0,0 +1,408 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a Internet Monitor Monitor resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewInternetMonitor(ctx, "example", &cloudwatch.InternetMonitorArgs{ +// MonitorName: pulumi.String("exmple"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Internet Monitor Monitors using the `monitor_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/internetMonitor:InternetMonitor some some-monitor +// +// ``` +type InternetMonitor struct { + pulumi.CustomResourceState + + // ARN of the Monitor. + Arn pulumi.StringOutput `pulumi:"arn"` + // Health event thresholds. A health event threshold percentage, for performance and availability, determines when Internet Monitor creates a health event when there's an internet issue that affects your application end users. See Health Events Config below. + HealthEventsConfig InternetMonitorHealthEventsConfigPtrOutput `pulumi:"healthEventsConfig"` + // Publish internet measurements for Internet Monitor to an Amazon S3 bucket in addition to CloudWatch Logs. + InternetMeasurementsLogDelivery InternetMonitorInternetMeasurementsLogDeliveryPtrOutput `pulumi:"internetMeasurementsLogDelivery"` + // The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs. + MaxCityNetworksToMonitor pulumi.IntPtrOutput `pulumi:"maxCityNetworksToMonitor"` + // The name of the monitor. + // + // The following arguments are optional: + MonitorName pulumi.StringOutput `pulumi:"monitorName"` + // The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). + Resources pulumi.StringArrayOutput `pulumi:"resources"` + // The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: `ACTIVE` and `INACTIVE`. + Status pulumi.StringPtrOutput `pulumi:"status"` + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. + TrafficPercentageToMonitor pulumi.IntPtrOutput `pulumi:"trafficPercentageToMonitor"` +} + +// NewInternetMonitor registers a new resource with the given unique name, arguments, and options. +func NewInternetMonitor(ctx *pulumi.Context, + name string, args *InternetMonitorArgs, opts ...pulumi.ResourceOption) (*InternetMonitor, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.MonitorName == nil { + return nil, errors.New("invalid value for required argument 'MonitorName'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource InternetMonitor + err := ctx.RegisterResource("aws:cloudwatch/internetMonitor:InternetMonitor", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInternetMonitor gets an existing InternetMonitor resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetInternetMonitor(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InternetMonitorState, opts ...pulumi.ResourceOption) (*InternetMonitor, error) { + var resource InternetMonitor + err := ctx.ReadResource("aws:cloudwatch/internetMonitor:InternetMonitor", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering InternetMonitor resources. +type internetMonitorState struct { + // ARN of the Monitor. + Arn *string `pulumi:"arn"` + // Health event thresholds. A health event threshold percentage, for performance and availability, determines when Internet Monitor creates a health event when there's an internet issue that affects your application end users. See Health Events Config below. + HealthEventsConfig *InternetMonitorHealthEventsConfig `pulumi:"healthEventsConfig"` + // Publish internet measurements for Internet Monitor to an Amazon S3 bucket in addition to CloudWatch Logs. + InternetMeasurementsLogDelivery *InternetMonitorInternetMeasurementsLogDelivery `pulumi:"internetMeasurementsLogDelivery"` + // The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs. + MaxCityNetworksToMonitor *int `pulumi:"maxCityNetworksToMonitor"` + // The name of the monitor. + // + // The following arguments are optional: + MonitorName *string `pulumi:"monitorName"` + // The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). + Resources []string `pulumi:"resources"` + // The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: `ACTIVE` and `INACTIVE`. + Status *string `pulumi:"status"` + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. + TrafficPercentageToMonitor *int `pulumi:"trafficPercentageToMonitor"` +} + +type InternetMonitorState struct { + // ARN of the Monitor. + Arn pulumi.StringPtrInput + // Health event thresholds. A health event threshold percentage, for performance and availability, determines when Internet Monitor creates a health event when there's an internet issue that affects your application end users. See Health Events Config below. + HealthEventsConfig InternetMonitorHealthEventsConfigPtrInput + // Publish internet measurements for Internet Monitor to an Amazon S3 bucket in addition to CloudWatch Logs. + InternetMeasurementsLogDelivery InternetMonitorInternetMeasurementsLogDeliveryPtrInput + // The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs. + MaxCityNetworksToMonitor pulumi.IntPtrInput + // The name of the monitor. + // + // The following arguments are optional: + MonitorName pulumi.StringPtrInput + // The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). + Resources pulumi.StringArrayInput + // The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: `ACTIVE` and `INACTIVE`. + Status pulumi.StringPtrInput + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. + TrafficPercentageToMonitor pulumi.IntPtrInput +} + +func (InternetMonitorState) ElementType() reflect.Type { + return reflect.TypeOf((*internetMonitorState)(nil)).Elem() +} + +type internetMonitorArgs struct { + // Health event thresholds. A health event threshold percentage, for performance and availability, determines when Internet Monitor creates a health event when there's an internet issue that affects your application end users. See Health Events Config below. + HealthEventsConfig *InternetMonitorHealthEventsConfig `pulumi:"healthEventsConfig"` + // Publish internet measurements for Internet Monitor to an Amazon S3 bucket in addition to CloudWatch Logs. + InternetMeasurementsLogDelivery *InternetMonitorInternetMeasurementsLogDelivery `pulumi:"internetMeasurementsLogDelivery"` + // The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs. + MaxCityNetworksToMonitor *int `pulumi:"maxCityNetworksToMonitor"` + // The name of the monitor. + // + // The following arguments are optional: + MonitorName string `pulumi:"monitorName"` + // The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). + Resources []string `pulumi:"resources"` + // The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: `ACTIVE` and `INACTIVE`. + Status *string `pulumi:"status"` + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. + TrafficPercentageToMonitor *int `pulumi:"trafficPercentageToMonitor"` +} + +// The set of arguments for constructing a InternetMonitor resource. +type InternetMonitorArgs struct { + // Health event thresholds. A health event threshold percentage, for performance and availability, determines when Internet Monitor creates a health event when there's an internet issue that affects your application end users. See Health Events Config below. + HealthEventsConfig InternetMonitorHealthEventsConfigPtrInput + // Publish internet measurements for Internet Monitor to an Amazon S3 bucket in addition to CloudWatch Logs. + InternetMeasurementsLogDelivery InternetMonitorInternetMeasurementsLogDeliveryPtrInput + // The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs. + MaxCityNetworksToMonitor pulumi.IntPtrInput + // The name of the monitor. + // + // The following arguments are optional: + MonitorName pulumi.StringInput + // The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). + Resources pulumi.StringArrayInput + // The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: `ACTIVE` and `INACTIVE`. + Status pulumi.StringPtrInput + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. + TrafficPercentageToMonitor pulumi.IntPtrInput +} + +func (InternetMonitorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*internetMonitorArgs)(nil)).Elem() +} + +type InternetMonitorInput interface { + pulumi.Input + + ToInternetMonitorOutput() InternetMonitorOutput + ToInternetMonitorOutputWithContext(ctx context.Context) InternetMonitorOutput +} + +func (*InternetMonitor) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitor)(nil)).Elem() +} + +func (i *InternetMonitor) ToInternetMonitorOutput() InternetMonitorOutput { + return i.ToInternetMonitorOutputWithContext(context.Background()) +} + +func (i *InternetMonitor) ToInternetMonitorOutputWithContext(ctx context.Context) InternetMonitorOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorOutput) +} + +// InternetMonitorArrayInput is an input type that accepts InternetMonitorArray and InternetMonitorArrayOutput values. +// You can construct a concrete instance of `InternetMonitorArrayInput` via: +// +// InternetMonitorArray{ InternetMonitorArgs{...} } +type InternetMonitorArrayInput interface { + pulumi.Input + + ToInternetMonitorArrayOutput() InternetMonitorArrayOutput + ToInternetMonitorArrayOutputWithContext(context.Context) InternetMonitorArrayOutput +} + +type InternetMonitorArray []InternetMonitorInput + +func (InternetMonitorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InternetMonitor)(nil)).Elem() +} + +func (i InternetMonitorArray) ToInternetMonitorArrayOutput() InternetMonitorArrayOutput { + return i.ToInternetMonitorArrayOutputWithContext(context.Background()) +} + +func (i InternetMonitorArray) ToInternetMonitorArrayOutputWithContext(ctx context.Context) InternetMonitorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorArrayOutput) +} + +// InternetMonitorMapInput is an input type that accepts InternetMonitorMap and InternetMonitorMapOutput values. +// You can construct a concrete instance of `InternetMonitorMapInput` via: +// +// InternetMonitorMap{ "key": InternetMonitorArgs{...} } +type InternetMonitorMapInput interface { + pulumi.Input + + ToInternetMonitorMapOutput() InternetMonitorMapOutput + ToInternetMonitorMapOutputWithContext(context.Context) InternetMonitorMapOutput +} + +type InternetMonitorMap map[string]InternetMonitorInput + +func (InternetMonitorMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InternetMonitor)(nil)).Elem() +} + +func (i InternetMonitorMap) ToInternetMonitorMapOutput() InternetMonitorMapOutput { + return i.ToInternetMonitorMapOutputWithContext(context.Background()) +} + +func (i InternetMonitorMap) ToInternetMonitorMapOutputWithContext(ctx context.Context) InternetMonitorMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorMapOutput) +} + +type InternetMonitorOutput struct{ *pulumi.OutputState } + +func (InternetMonitorOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitor)(nil)).Elem() +} + +func (o InternetMonitorOutput) ToInternetMonitorOutput() InternetMonitorOutput { + return o +} + +func (o InternetMonitorOutput) ToInternetMonitorOutputWithContext(ctx context.Context) InternetMonitorOutput { + return o +} + +// ARN of the Monitor. +func (o InternetMonitorOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Health event thresholds. A health event threshold percentage, for performance and availability, determines when Internet Monitor creates a health event when there's an internet issue that affects your application end users. See Health Events Config below. +func (o InternetMonitorOutput) HealthEventsConfig() InternetMonitorHealthEventsConfigPtrOutput { + return o.ApplyT(func(v *InternetMonitor) InternetMonitorHealthEventsConfigPtrOutput { return v.HealthEventsConfig }).(InternetMonitorHealthEventsConfigPtrOutput) +} + +// Publish internet measurements for Internet Monitor to an Amazon S3 bucket in addition to CloudWatch Logs. +func (o InternetMonitorOutput) InternetMeasurementsLogDelivery() InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return o.ApplyT(func(v *InternetMonitor) InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return v.InternetMeasurementsLogDelivery + }).(InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) +} + +// The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network or ASN, such as an internet service provider (ISP), that clients access the resources through. This limit helps control billing costs. +func (o InternetMonitorOutput) MaxCityNetworksToMonitor() pulumi.IntPtrOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.IntPtrOutput { return v.MaxCityNetworksToMonitor }).(pulumi.IntPtrOutput) +} + +// The name of the monitor. +// +// The following arguments are optional: +func (o InternetMonitorOutput) MonitorName() pulumi.StringOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.StringOutput { return v.MonitorName }).(pulumi.StringOutput) +} + +// The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). +func (o InternetMonitorOutput) Resources() pulumi.StringArrayOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.StringArrayOutput { return v.Resources }).(pulumi.StringArrayOutput) +} + +// The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: `ACTIVE` and `INACTIVE`. +func (o InternetMonitorOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) +} + +// Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o InternetMonitorOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o InternetMonitorOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. +func (o InternetMonitorOutput) TrafficPercentageToMonitor() pulumi.IntPtrOutput { + return o.ApplyT(func(v *InternetMonitor) pulumi.IntPtrOutput { return v.TrafficPercentageToMonitor }).(pulumi.IntPtrOutput) +} + +type InternetMonitorArrayOutput struct{ *pulumi.OutputState } + +func (InternetMonitorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InternetMonitor)(nil)).Elem() +} + +func (o InternetMonitorArrayOutput) ToInternetMonitorArrayOutput() InternetMonitorArrayOutput { + return o +} + +func (o InternetMonitorArrayOutput) ToInternetMonitorArrayOutputWithContext(ctx context.Context) InternetMonitorArrayOutput { + return o +} + +func (o InternetMonitorArrayOutput) Index(i pulumi.IntInput) InternetMonitorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InternetMonitor { + return vs[0].([]*InternetMonitor)[vs[1].(int)] + }).(InternetMonitorOutput) +} + +type InternetMonitorMapOutput struct{ *pulumi.OutputState } + +func (InternetMonitorMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InternetMonitor)(nil)).Elem() +} + +func (o InternetMonitorMapOutput) ToInternetMonitorMapOutput() InternetMonitorMapOutput { + return o +} + +func (o InternetMonitorMapOutput) ToInternetMonitorMapOutputWithContext(ctx context.Context) InternetMonitorMapOutput { + return o +} + +func (o InternetMonitorMapOutput) MapIndex(k pulumi.StringInput) InternetMonitorOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InternetMonitor { + return vs[0].(map[string]*InternetMonitor)[vs[1].(string)] + }).(InternetMonitorOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorInput)(nil)).Elem(), &InternetMonitor{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorArrayInput)(nil)).Elem(), InternetMonitorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorMapInput)(nil)).Elem(), InternetMonitorMap{}) + pulumi.RegisterOutputType(InternetMonitorOutput{}) + pulumi.RegisterOutputType(InternetMonitorArrayOutput{}) + pulumi.RegisterOutputType(InternetMonitorMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDataProtectionPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDataProtectionPolicy.go new file mode 100644 index 000000000..2338ae483 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDataProtectionPolicy.go @@ -0,0 +1,326 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Log Data Protection Policy resource. +// +// Read more about protecting sensitive user data in the [User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "exampleLogGroup", nil) +// if err != nil { +// return err +// } +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewLogDataProtectionPolicy(ctx, "exampleLogDataProtectionPolicy", &cloudwatch.LogDataProtectionPolicyArgs{ +// LogGroupName: exampleLogGroup.Name, +// PolicyDocument: exampleBucketV2.Bucket.ApplyT(func(bucket string) (pulumi.String, error) { +// var _zero pulumi.String +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Name": "Example", +// "Version": "2021-06-01", +// "Statement": []interface{}{ +// map[string]interface{}{ +// "Sid": "Audit", +// "DataIdentifier": []string{ +// "arn:aws:dataprotection::aws:data-identifier/EmailAddress", +// }, +// "Operation": map[string]interface{}{ +// "Audit": map[string]interface{}{ +// "FindingsDestination": map[string]interface{}{ +// "S3": map[string]interface{}{ +// "Bucket": bucket, +// }, +// }, +// }, +// }, +// }, +// map[string]interface{}{ +// "Sid": "Redact", +// "DataIdentifier": []string{ +// "arn:aws:dataprotection::aws:data-identifier/EmailAddress", +// }, +// "Operation": map[string]interface{}{ +// "Deidentify": map[string]interface{}{ +// "MaskConfig": nil, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return _zero, err +// } +// json0 := string(tmpJSON0) +// return pulumi.String(json0), nil +// }).(pulumi.StringOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import this resource using the `log_group_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy example my-log-group +// +// ``` +type LogDataProtectionPolicy struct { + pulumi.CustomResourceState + + // The name of the log group under which the log stream is to be created. + LogGroupName pulumi.StringOutput `pulumi:"logGroupName"` + // Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). + PolicyDocument pulumi.StringOutput `pulumi:"policyDocument"` +} + +// NewLogDataProtectionPolicy registers a new resource with the given unique name, arguments, and options. +func NewLogDataProtectionPolicy(ctx *pulumi.Context, + name string, args *LogDataProtectionPolicyArgs, opts ...pulumi.ResourceOption) (*LogDataProtectionPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.LogGroupName == nil { + return nil, errors.New("invalid value for required argument 'LogGroupName'") + } + if args.PolicyDocument == nil { + return nil, errors.New("invalid value for required argument 'PolicyDocument'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogDataProtectionPolicy + err := ctx.RegisterResource("aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogDataProtectionPolicy gets an existing LogDataProtectionPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogDataProtectionPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogDataProtectionPolicyState, opts ...pulumi.ResourceOption) (*LogDataProtectionPolicy, error) { + var resource LogDataProtectionPolicy + err := ctx.ReadResource("aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogDataProtectionPolicy resources. +type logDataProtectionPolicyState struct { + // The name of the log group under which the log stream is to be created. + LogGroupName *string `pulumi:"logGroupName"` + // Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). + PolicyDocument *string `pulumi:"policyDocument"` +} + +type LogDataProtectionPolicyState struct { + // The name of the log group under which the log stream is to be created. + LogGroupName pulumi.StringPtrInput + // Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). + PolicyDocument pulumi.StringPtrInput +} + +func (LogDataProtectionPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*logDataProtectionPolicyState)(nil)).Elem() +} + +type logDataProtectionPolicyArgs struct { + // The name of the log group under which the log stream is to be created. + LogGroupName string `pulumi:"logGroupName"` + // Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). + PolicyDocument string `pulumi:"policyDocument"` +} + +// The set of arguments for constructing a LogDataProtectionPolicy resource. +type LogDataProtectionPolicyArgs struct { + // The name of the log group under which the log stream is to be created. + LogGroupName pulumi.StringInput + // Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). + PolicyDocument pulumi.StringInput +} + +func (LogDataProtectionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logDataProtectionPolicyArgs)(nil)).Elem() +} + +type LogDataProtectionPolicyInput interface { + pulumi.Input + + ToLogDataProtectionPolicyOutput() LogDataProtectionPolicyOutput + ToLogDataProtectionPolicyOutputWithContext(ctx context.Context) LogDataProtectionPolicyOutput +} + +func (*LogDataProtectionPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**LogDataProtectionPolicy)(nil)).Elem() +} + +func (i *LogDataProtectionPolicy) ToLogDataProtectionPolicyOutput() LogDataProtectionPolicyOutput { + return i.ToLogDataProtectionPolicyOutputWithContext(context.Background()) +} + +func (i *LogDataProtectionPolicy) ToLogDataProtectionPolicyOutputWithContext(ctx context.Context) LogDataProtectionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDataProtectionPolicyOutput) +} + +// LogDataProtectionPolicyArrayInput is an input type that accepts LogDataProtectionPolicyArray and LogDataProtectionPolicyArrayOutput values. +// You can construct a concrete instance of `LogDataProtectionPolicyArrayInput` via: +// +// LogDataProtectionPolicyArray{ LogDataProtectionPolicyArgs{...} } +type LogDataProtectionPolicyArrayInput interface { + pulumi.Input + + ToLogDataProtectionPolicyArrayOutput() LogDataProtectionPolicyArrayOutput + ToLogDataProtectionPolicyArrayOutputWithContext(context.Context) LogDataProtectionPolicyArrayOutput +} + +type LogDataProtectionPolicyArray []LogDataProtectionPolicyInput + +func (LogDataProtectionPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogDataProtectionPolicy)(nil)).Elem() +} + +func (i LogDataProtectionPolicyArray) ToLogDataProtectionPolicyArrayOutput() LogDataProtectionPolicyArrayOutput { + return i.ToLogDataProtectionPolicyArrayOutputWithContext(context.Background()) +} + +func (i LogDataProtectionPolicyArray) ToLogDataProtectionPolicyArrayOutputWithContext(ctx context.Context) LogDataProtectionPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDataProtectionPolicyArrayOutput) +} + +// LogDataProtectionPolicyMapInput is an input type that accepts LogDataProtectionPolicyMap and LogDataProtectionPolicyMapOutput values. +// You can construct a concrete instance of `LogDataProtectionPolicyMapInput` via: +// +// LogDataProtectionPolicyMap{ "key": LogDataProtectionPolicyArgs{...} } +type LogDataProtectionPolicyMapInput interface { + pulumi.Input + + ToLogDataProtectionPolicyMapOutput() LogDataProtectionPolicyMapOutput + ToLogDataProtectionPolicyMapOutputWithContext(context.Context) LogDataProtectionPolicyMapOutput +} + +type LogDataProtectionPolicyMap map[string]LogDataProtectionPolicyInput + +func (LogDataProtectionPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogDataProtectionPolicy)(nil)).Elem() +} + +func (i LogDataProtectionPolicyMap) ToLogDataProtectionPolicyMapOutput() LogDataProtectionPolicyMapOutput { + return i.ToLogDataProtectionPolicyMapOutputWithContext(context.Background()) +} + +func (i LogDataProtectionPolicyMap) ToLogDataProtectionPolicyMapOutputWithContext(ctx context.Context) LogDataProtectionPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDataProtectionPolicyMapOutput) +} + +type LogDataProtectionPolicyOutput struct{ *pulumi.OutputState } + +func (LogDataProtectionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogDataProtectionPolicy)(nil)).Elem() +} + +func (o LogDataProtectionPolicyOutput) ToLogDataProtectionPolicyOutput() LogDataProtectionPolicyOutput { + return o +} + +func (o LogDataProtectionPolicyOutput) ToLogDataProtectionPolicyOutputWithContext(ctx context.Context) LogDataProtectionPolicyOutput { + return o +} + +// The name of the log group under which the log stream is to be created. +func (o LogDataProtectionPolicyOutput) LogGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *LogDataProtectionPolicy) pulumi.StringOutput { return v.LogGroupName }).(pulumi.StringOutput) +} + +// Specifies the data protection policy in JSON. Read more at [Data protection policy syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-start.html#mask-sensitive-log-data-policysyntax). +func (o LogDataProtectionPolicyOutput) PolicyDocument() pulumi.StringOutput { + return o.ApplyT(func(v *LogDataProtectionPolicy) pulumi.StringOutput { return v.PolicyDocument }).(pulumi.StringOutput) +} + +type LogDataProtectionPolicyArrayOutput struct{ *pulumi.OutputState } + +func (LogDataProtectionPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogDataProtectionPolicy)(nil)).Elem() +} + +func (o LogDataProtectionPolicyArrayOutput) ToLogDataProtectionPolicyArrayOutput() LogDataProtectionPolicyArrayOutput { + return o +} + +func (o LogDataProtectionPolicyArrayOutput) ToLogDataProtectionPolicyArrayOutputWithContext(ctx context.Context) LogDataProtectionPolicyArrayOutput { + return o +} + +func (o LogDataProtectionPolicyArrayOutput) Index(i pulumi.IntInput) LogDataProtectionPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogDataProtectionPolicy { + return vs[0].([]*LogDataProtectionPolicy)[vs[1].(int)] + }).(LogDataProtectionPolicyOutput) +} + +type LogDataProtectionPolicyMapOutput struct{ *pulumi.OutputState } + +func (LogDataProtectionPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogDataProtectionPolicy)(nil)).Elem() +} + +func (o LogDataProtectionPolicyMapOutput) ToLogDataProtectionPolicyMapOutput() LogDataProtectionPolicyMapOutput { + return o +} + +func (o LogDataProtectionPolicyMapOutput) ToLogDataProtectionPolicyMapOutputWithContext(ctx context.Context) LogDataProtectionPolicyMapOutput { + return o +} + +func (o LogDataProtectionPolicyMapOutput) MapIndex(k pulumi.StringInput) LogDataProtectionPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogDataProtectionPolicy { + return vs[0].(map[string]*LogDataProtectionPolicy)[vs[1].(string)] + }).(LogDataProtectionPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogDataProtectionPolicyInput)(nil)).Elem(), &LogDataProtectionPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogDataProtectionPolicyArrayInput)(nil)).Elem(), LogDataProtectionPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogDataProtectionPolicyMapInput)(nil)).Elem(), LogDataProtectionPolicyMap{}) + pulumi.RegisterOutputType(LogDataProtectionPolicyOutput{}) + pulumi.RegisterOutputType(LogDataProtectionPolicyArrayOutput{}) + pulumi.RegisterOutputType(LogDataProtectionPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestination.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestination.go new file mode 100644 index 000000000..1ddf65585 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestination.go @@ -0,0 +1,338 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Logs destination resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewLogDestination(ctx, "testDestination", &cloudwatch.LogDestinationArgs{ +// RoleArn: pulumi.Any(aws_iam_role.Iam_for_cloudwatch.Arn), +// TargetArn: pulumi.Any(aws_kinesis_stream.Kinesis_for_cloudwatch.Arn), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch Logs destinations using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logDestination:LogDestination test_destination test_destination +// +// ``` +type LogDestination struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) specifying the log destination. + Arn pulumi.StringOutput `pulumi:"arn"` + // A name for the log destination. + Name pulumi.StringOutput `pulumi:"name"` + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to put data into the target. + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The ARN of the target Amazon Kinesis stream resource for the destination. + TargetArn pulumi.StringOutput `pulumi:"targetArn"` +} + +// NewLogDestination registers a new resource with the given unique name, arguments, and options. +func NewLogDestination(ctx *pulumi.Context, + name string, args *LogDestinationArgs, opts ...pulumi.ResourceOption) (*LogDestination, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + if args.TargetArn == nil { + return nil, errors.New("invalid value for required argument 'TargetArn'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogDestination + err := ctx.RegisterResource("aws:cloudwatch/logDestination:LogDestination", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogDestination gets an existing LogDestination resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogDestination(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogDestinationState, opts ...pulumi.ResourceOption) (*LogDestination, error) { + var resource LogDestination + err := ctx.ReadResource("aws:cloudwatch/logDestination:LogDestination", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogDestination resources. +type logDestinationState struct { + // The Amazon Resource Name (ARN) specifying the log destination. + Arn *string `pulumi:"arn"` + // A name for the log destination. + Name *string `pulumi:"name"` + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to put data into the target. + RoleArn *string `pulumi:"roleArn"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The ARN of the target Amazon Kinesis stream resource for the destination. + TargetArn *string `pulumi:"targetArn"` +} + +type LogDestinationState struct { + // The Amazon Resource Name (ARN) specifying the log destination. + Arn pulumi.StringPtrInput + // A name for the log destination. + Name pulumi.StringPtrInput + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to put data into the target. + RoleArn pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The ARN of the target Amazon Kinesis stream resource for the destination. + TargetArn pulumi.StringPtrInput +} + +func (LogDestinationState) ElementType() reflect.Type { + return reflect.TypeOf((*logDestinationState)(nil)).Elem() +} + +type logDestinationArgs struct { + // A name for the log destination. + Name *string `pulumi:"name"` + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to put data into the target. + RoleArn string `pulumi:"roleArn"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // The ARN of the target Amazon Kinesis stream resource for the destination. + TargetArn string `pulumi:"targetArn"` +} + +// The set of arguments for constructing a LogDestination resource. +type LogDestinationArgs struct { + // A name for the log destination. + Name pulumi.StringPtrInput + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to put data into the target. + RoleArn pulumi.StringInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // The ARN of the target Amazon Kinesis stream resource for the destination. + TargetArn pulumi.StringInput +} + +func (LogDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logDestinationArgs)(nil)).Elem() +} + +type LogDestinationInput interface { + pulumi.Input + + ToLogDestinationOutput() LogDestinationOutput + ToLogDestinationOutputWithContext(ctx context.Context) LogDestinationOutput +} + +func (*LogDestination) ElementType() reflect.Type { + return reflect.TypeOf((**LogDestination)(nil)).Elem() +} + +func (i *LogDestination) ToLogDestinationOutput() LogDestinationOutput { + return i.ToLogDestinationOutputWithContext(context.Background()) +} + +func (i *LogDestination) ToLogDestinationOutputWithContext(ctx context.Context) LogDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDestinationOutput) +} + +// LogDestinationArrayInput is an input type that accepts LogDestinationArray and LogDestinationArrayOutput values. +// You can construct a concrete instance of `LogDestinationArrayInput` via: +// +// LogDestinationArray{ LogDestinationArgs{...} } +type LogDestinationArrayInput interface { + pulumi.Input + + ToLogDestinationArrayOutput() LogDestinationArrayOutput + ToLogDestinationArrayOutputWithContext(context.Context) LogDestinationArrayOutput +} + +type LogDestinationArray []LogDestinationInput + +func (LogDestinationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogDestination)(nil)).Elem() +} + +func (i LogDestinationArray) ToLogDestinationArrayOutput() LogDestinationArrayOutput { + return i.ToLogDestinationArrayOutputWithContext(context.Background()) +} + +func (i LogDestinationArray) ToLogDestinationArrayOutputWithContext(ctx context.Context) LogDestinationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDestinationArrayOutput) +} + +// LogDestinationMapInput is an input type that accepts LogDestinationMap and LogDestinationMapOutput values. +// You can construct a concrete instance of `LogDestinationMapInput` via: +// +// LogDestinationMap{ "key": LogDestinationArgs{...} } +type LogDestinationMapInput interface { + pulumi.Input + + ToLogDestinationMapOutput() LogDestinationMapOutput + ToLogDestinationMapOutputWithContext(context.Context) LogDestinationMapOutput +} + +type LogDestinationMap map[string]LogDestinationInput + +func (LogDestinationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogDestination)(nil)).Elem() +} + +func (i LogDestinationMap) ToLogDestinationMapOutput() LogDestinationMapOutput { + return i.ToLogDestinationMapOutputWithContext(context.Background()) +} + +func (i LogDestinationMap) ToLogDestinationMapOutputWithContext(ctx context.Context) LogDestinationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDestinationMapOutput) +} + +type LogDestinationOutput struct{ *pulumi.OutputState } + +func (LogDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogDestination)(nil)).Elem() +} + +func (o LogDestinationOutput) ToLogDestinationOutput() LogDestinationOutput { + return o +} + +func (o LogDestinationOutput) ToLogDestinationOutputWithContext(ctx context.Context) LogDestinationOutput { + return o +} + +// The Amazon Resource Name (ARN) specifying the log destination. +func (o LogDestinationOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *LogDestination) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// A name for the log destination. +func (o LogDestinationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LogDestination) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to put data into the target. +func (o LogDestinationOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *LogDestination) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o LogDestinationOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogDestination) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o LogDestinationOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogDestination) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The ARN of the target Amazon Kinesis stream resource for the destination. +func (o LogDestinationOutput) TargetArn() pulumi.StringOutput { + return o.ApplyT(func(v *LogDestination) pulumi.StringOutput { return v.TargetArn }).(pulumi.StringOutput) +} + +type LogDestinationArrayOutput struct{ *pulumi.OutputState } + +func (LogDestinationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogDestination)(nil)).Elem() +} + +func (o LogDestinationArrayOutput) ToLogDestinationArrayOutput() LogDestinationArrayOutput { + return o +} + +func (o LogDestinationArrayOutput) ToLogDestinationArrayOutputWithContext(ctx context.Context) LogDestinationArrayOutput { + return o +} + +func (o LogDestinationArrayOutput) Index(i pulumi.IntInput) LogDestinationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogDestination { + return vs[0].([]*LogDestination)[vs[1].(int)] + }).(LogDestinationOutput) +} + +type LogDestinationMapOutput struct{ *pulumi.OutputState } + +func (LogDestinationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogDestination)(nil)).Elem() +} + +func (o LogDestinationMapOutput) ToLogDestinationMapOutput() LogDestinationMapOutput { + return o +} + +func (o LogDestinationMapOutput) ToLogDestinationMapOutputWithContext(ctx context.Context) LogDestinationMapOutput { + return o +} + +func (o LogDestinationMapOutput) MapIndex(k pulumi.StringInput) LogDestinationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogDestination { + return vs[0].(map[string]*LogDestination)[vs[1].(string)] + }).(LogDestinationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogDestinationInput)(nil)).Elem(), &LogDestination{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogDestinationArrayInput)(nil)).Elem(), LogDestinationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogDestinationMapInput)(nil)).Elem(), LogDestinationMap{}) + pulumi.RegisterOutputType(LogDestinationOutput{}) + pulumi.RegisterOutputType(LogDestinationArrayOutput{}) + pulumi.RegisterOutputType(LogDestinationMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestinationPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestinationPolicy.go new file mode 100644 index 000000000..d6298fd21 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logDestinationPolicy.go @@ -0,0 +1,320 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Logs destination policy resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testDestination, err := cloudwatch.NewLogDestination(ctx, "testDestination", &cloudwatch.LogDestinationArgs{ +// RoleArn: pulumi.Any(aws_iam_role.Iam_for_cloudwatch.Arn), +// TargetArn: pulumi.Any(aws_kinesis_stream.Kinesis_for_cloudwatch.Arn), +// }) +// if err != nil { +// return err +// } +// testDestinationPolicyPolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("AWS"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("123456789012"), +// }, +// }, +// }, +// Actions: pulumi.StringArray{ +// pulumi.String("logs:PutSubscriptionFilter"), +// }, +// Resources: pulumi.StringArray{ +// testDestination.Arn, +// }, +// }, +// }, +// }, nil) +// _, err = cloudwatch.NewLogDestinationPolicy(ctx, "testDestinationPolicyLogDestinationPolicy", &cloudwatch.LogDestinationPolicyArgs{ +// DestinationName: testDestination.Name, +// AccessPolicy: testDestinationPolicyPolicyDocument.ApplyT(func(testDestinationPolicyPolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &testDestinationPolicyPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch Logs destination policies using the `destination_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy test_destination_policy test_destination +// +// ``` +type LogDestinationPolicy struct { + pulumi.CustomResourceState + + // The policy document. This is a JSON formatted string. + AccessPolicy pulumi.StringOutput `pulumi:"accessPolicy"` + // A name for the subscription filter + DestinationName pulumi.StringOutput `pulumi:"destinationName"` + // Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. + ForceUpdate pulumi.BoolPtrOutput `pulumi:"forceUpdate"` +} + +// NewLogDestinationPolicy registers a new resource with the given unique name, arguments, and options. +func NewLogDestinationPolicy(ctx *pulumi.Context, + name string, args *LogDestinationPolicyArgs, opts ...pulumi.ResourceOption) (*LogDestinationPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AccessPolicy == nil { + return nil, errors.New("invalid value for required argument 'AccessPolicy'") + } + if args.DestinationName == nil { + return nil, errors.New("invalid value for required argument 'DestinationName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogDestinationPolicy + err := ctx.RegisterResource("aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogDestinationPolicy gets an existing LogDestinationPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogDestinationPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogDestinationPolicyState, opts ...pulumi.ResourceOption) (*LogDestinationPolicy, error) { + var resource LogDestinationPolicy + err := ctx.ReadResource("aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogDestinationPolicy resources. +type logDestinationPolicyState struct { + // The policy document. This is a JSON formatted string. + AccessPolicy *string `pulumi:"accessPolicy"` + // A name for the subscription filter + DestinationName *string `pulumi:"destinationName"` + // Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. + ForceUpdate *bool `pulumi:"forceUpdate"` +} + +type LogDestinationPolicyState struct { + // The policy document. This is a JSON formatted string. + AccessPolicy pulumi.StringPtrInput + // A name for the subscription filter + DestinationName pulumi.StringPtrInput + // Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. + ForceUpdate pulumi.BoolPtrInput +} + +func (LogDestinationPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*logDestinationPolicyState)(nil)).Elem() +} + +type logDestinationPolicyArgs struct { + // The policy document. This is a JSON formatted string. + AccessPolicy string `pulumi:"accessPolicy"` + // A name for the subscription filter + DestinationName string `pulumi:"destinationName"` + // Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. + ForceUpdate *bool `pulumi:"forceUpdate"` +} + +// The set of arguments for constructing a LogDestinationPolicy resource. +type LogDestinationPolicyArgs struct { + // The policy document. This is a JSON formatted string. + AccessPolicy pulumi.StringInput + // A name for the subscription filter + DestinationName pulumi.StringInput + // Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. + ForceUpdate pulumi.BoolPtrInput +} + +func (LogDestinationPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logDestinationPolicyArgs)(nil)).Elem() +} + +type LogDestinationPolicyInput interface { + pulumi.Input + + ToLogDestinationPolicyOutput() LogDestinationPolicyOutput + ToLogDestinationPolicyOutputWithContext(ctx context.Context) LogDestinationPolicyOutput +} + +func (*LogDestinationPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**LogDestinationPolicy)(nil)).Elem() +} + +func (i *LogDestinationPolicy) ToLogDestinationPolicyOutput() LogDestinationPolicyOutput { + return i.ToLogDestinationPolicyOutputWithContext(context.Background()) +} + +func (i *LogDestinationPolicy) ToLogDestinationPolicyOutputWithContext(ctx context.Context) LogDestinationPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDestinationPolicyOutput) +} + +// LogDestinationPolicyArrayInput is an input type that accepts LogDestinationPolicyArray and LogDestinationPolicyArrayOutput values. +// You can construct a concrete instance of `LogDestinationPolicyArrayInput` via: +// +// LogDestinationPolicyArray{ LogDestinationPolicyArgs{...} } +type LogDestinationPolicyArrayInput interface { + pulumi.Input + + ToLogDestinationPolicyArrayOutput() LogDestinationPolicyArrayOutput + ToLogDestinationPolicyArrayOutputWithContext(context.Context) LogDestinationPolicyArrayOutput +} + +type LogDestinationPolicyArray []LogDestinationPolicyInput + +func (LogDestinationPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogDestinationPolicy)(nil)).Elem() +} + +func (i LogDestinationPolicyArray) ToLogDestinationPolicyArrayOutput() LogDestinationPolicyArrayOutput { + return i.ToLogDestinationPolicyArrayOutputWithContext(context.Background()) +} + +func (i LogDestinationPolicyArray) ToLogDestinationPolicyArrayOutputWithContext(ctx context.Context) LogDestinationPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDestinationPolicyArrayOutput) +} + +// LogDestinationPolicyMapInput is an input type that accepts LogDestinationPolicyMap and LogDestinationPolicyMapOutput values. +// You can construct a concrete instance of `LogDestinationPolicyMapInput` via: +// +// LogDestinationPolicyMap{ "key": LogDestinationPolicyArgs{...} } +type LogDestinationPolicyMapInput interface { + pulumi.Input + + ToLogDestinationPolicyMapOutput() LogDestinationPolicyMapOutput + ToLogDestinationPolicyMapOutputWithContext(context.Context) LogDestinationPolicyMapOutput +} + +type LogDestinationPolicyMap map[string]LogDestinationPolicyInput + +func (LogDestinationPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogDestinationPolicy)(nil)).Elem() +} + +func (i LogDestinationPolicyMap) ToLogDestinationPolicyMapOutput() LogDestinationPolicyMapOutput { + return i.ToLogDestinationPolicyMapOutputWithContext(context.Background()) +} + +func (i LogDestinationPolicyMap) ToLogDestinationPolicyMapOutputWithContext(ctx context.Context) LogDestinationPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogDestinationPolicyMapOutput) +} + +type LogDestinationPolicyOutput struct{ *pulumi.OutputState } + +func (LogDestinationPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogDestinationPolicy)(nil)).Elem() +} + +func (o LogDestinationPolicyOutput) ToLogDestinationPolicyOutput() LogDestinationPolicyOutput { + return o +} + +func (o LogDestinationPolicyOutput) ToLogDestinationPolicyOutputWithContext(ctx context.Context) LogDestinationPolicyOutput { + return o +} + +// The policy document. This is a JSON formatted string. +func (o LogDestinationPolicyOutput) AccessPolicy() pulumi.StringOutput { + return o.ApplyT(func(v *LogDestinationPolicy) pulumi.StringOutput { return v.AccessPolicy }).(pulumi.StringOutput) +} + +// A name for the subscription filter +func (o LogDestinationPolicyOutput) DestinationName() pulumi.StringOutput { + return o.ApplyT(func(v *LogDestinationPolicy) pulumi.StringOutput { return v.DestinationName }).(pulumi.StringOutput) +} + +// Specify true if you are updating an existing destination policy to grant permission to an organization ID instead of granting permission to individual AWS accounts. +func (o LogDestinationPolicyOutput) ForceUpdate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LogDestinationPolicy) pulumi.BoolPtrOutput { return v.ForceUpdate }).(pulumi.BoolPtrOutput) +} + +type LogDestinationPolicyArrayOutput struct{ *pulumi.OutputState } + +func (LogDestinationPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogDestinationPolicy)(nil)).Elem() +} + +func (o LogDestinationPolicyArrayOutput) ToLogDestinationPolicyArrayOutput() LogDestinationPolicyArrayOutput { + return o +} + +func (o LogDestinationPolicyArrayOutput) ToLogDestinationPolicyArrayOutputWithContext(ctx context.Context) LogDestinationPolicyArrayOutput { + return o +} + +func (o LogDestinationPolicyArrayOutput) Index(i pulumi.IntInput) LogDestinationPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogDestinationPolicy { + return vs[0].([]*LogDestinationPolicy)[vs[1].(int)] + }).(LogDestinationPolicyOutput) +} + +type LogDestinationPolicyMapOutput struct{ *pulumi.OutputState } + +func (LogDestinationPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogDestinationPolicy)(nil)).Elem() +} + +func (o LogDestinationPolicyMapOutput) ToLogDestinationPolicyMapOutput() LogDestinationPolicyMapOutput { + return o +} + +func (o LogDestinationPolicyMapOutput) ToLogDestinationPolicyMapOutputWithContext(ctx context.Context) LogDestinationPolicyMapOutput { + return o +} + +func (o LogDestinationPolicyMapOutput) MapIndex(k pulumi.StringInput) LogDestinationPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogDestinationPolicy { + return vs[0].(map[string]*LogDestinationPolicy)[vs[1].(string)] + }).(LogDestinationPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogDestinationPolicyInput)(nil)).Elem(), &LogDestinationPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogDestinationPolicyArrayInput)(nil)).Elem(), LogDestinationPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogDestinationPolicyMapInput)(nil)).Elem(), LogDestinationPolicyMap{}) + pulumi.RegisterOutputType(LogDestinationPolicyOutput{}) + pulumi.RegisterOutputType(LogDestinationPolicyArrayOutput{}) + pulumi.RegisterOutputType(LogDestinationPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logGroup.go new file mode 100644 index 000000000..f68564439 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logGroup.go @@ -0,0 +1,387 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Log Group resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewLogGroup(ctx, "yada", &cloudwatch.LogGroupArgs{ +// Tags: pulumi.StringMap{ +// "Application": pulumi.String("serviceA"), +// "Environment": pulumi.String("production"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Cloudwatch Log Groups using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logGroup:LogGroup test_group yada +// +// ``` +type LogGroup struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) specifying the log group. Any `:*` suffix added by the API, denoting all CloudWatch Log Streams under the CloudWatch Log Group, is removed for greater compatibility with other AWS services that do not accept the suffix. + Arn pulumi.StringOutput `pulumi:"arn"` + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays pulumi.IntPtrOutput `pulumi:"retentionInDays"` + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy pulumi.BoolPtrOutput `pulumi:"skipDestroy"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewLogGroup registers a new resource with the given unique name, arguments, and options. +func NewLogGroup(ctx *pulumi.Context, + name string, args *LogGroupArgs, opts ...pulumi.ResourceOption) (*LogGroup, error) { + if args == nil { + args = &LogGroupArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogGroup + err := ctx.RegisterResource("aws:cloudwatch/logGroup:LogGroup", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogGroup gets an existing LogGroup resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogGroup(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogGroupState, opts ...pulumi.ResourceOption) (*LogGroup, error) { + var resource LogGroup + err := ctx.ReadResource("aws:cloudwatch/logGroup:LogGroup", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogGroup resources. +type logGroupState struct { + // The Amazon Resource Name (ARN) specifying the log group. Any `:*` suffix added by the API, denoting all CloudWatch Log Streams under the CloudWatch Log Group, is removed for greater compatibility with other AWS services that do not accept the suffix. + Arn *string `pulumi:"arn"` + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays *int `pulumi:"retentionInDays"` + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy *bool `pulumi:"skipDestroy"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type LogGroupState struct { + // The Amazon Resource Name (ARN) specifying the log group. Any `:*` suffix added by the API, denoting all CloudWatch Log Streams under the CloudWatch Log Group, is removed for greater compatibility with other AWS services that do not accept the suffix. + Arn pulumi.StringPtrInput + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId pulumi.StringPtrInput + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays pulumi.IntPtrInput + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy pulumi.BoolPtrInput + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (LogGroupState) ElementType() reflect.Type { + return reflect.TypeOf((*logGroupState)(nil)).Elem() +} + +type logGroupArgs struct { + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays *int `pulumi:"retentionInDays"` + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy *bool `pulumi:"skipDestroy"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a LogGroup resource. +type LogGroupArgs struct { + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId pulumi.StringPtrInput + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays pulumi.IntPtrInput + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy pulumi.BoolPtrInput + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (LogGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logGroupArgs)(nil)).Elem() +} + +type LogGroupInput interface { + pulumi.Input + + ToLogGroupOutput() LogGroupOutput + ToLogGroupOutputWithContext(ctx context.Context) LogGroupOutput +} + +func (*LogGroup) ElementType() reflect.Type { + return reflect.TypeOf((**LogGroup)(nil)).Elem() +} + +func (i *LogGroup) ToLogGroupOutput() LogGroupOutput { + return i.ToLogGroupOutputWithContext(context.Background()) +} + +func (i *LogGroup) ToLogGroupOutputWithContext(ctx context.Context) LogGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogGroupOutput) +} + +// LogGroupArrayInput is an input type that accepts LogGroupArray and LogGroupArrayOutput values. +// You can construct a concrete instance of `LogGroupArrayInput` via: +// +// LogGroupArray{ LogGroupArgs{...} } +type LogGroupArrayInput interface { + pulumi.Input + + ToLogGroupArrayOutput() LogGroupArrayOutput + ToLogGroupArrayOutputWithContext(context.Context) LogGroupArrayOutput +} + +type LogGroupArray []LogGroupInput + +func (LogGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogGroup)(nil)).Elem() +} + +func (i LogGroupArray) ToLogGroupArrayOutput() LogGroupArrayOutput { + return i.ToLogGroupArrayOutputWithContext(context.Background()) +} + +func (i LogGroupArray) ToLogGroupArrayOutputWithContext(ctx context.Context) LogGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogGroupArrayOutput) +} + +// LogGroupMapInput is an input type that accepts LogGroupMap and LogGroupMapOutput values. +// You can construct a concrete instance of `LogGroupMapInput` via: +// +// LogGroupMap{ "key": LogGroupArgs{...} } +type LogGroupMapInput interface { + pulumi.Input + + ToLogGroupMapOutput() LogGroupMapOutput + ToLogGroupMapOutputWithContext(context.Context) LogGroupMapOutput +} + +type LogGroupMap map[string]LogGroupInput + +func (LogGroupMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogGroup)(nil)).Elem() +} + +func (i LogGroupMap) ToLogGroupMapOutput() LogGroupMapOutput { + return i.ToLogGroupMapOutputWithContext(context.Background()) +} + +func (i LogGroupMap) ToLogGroupMapOutputWithContext(ctx context.Context) LogGroupMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogGroupMapOutput) +} + +type LogGroupOutput struct{ *pulumi.OutputState } + +func (LogGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogGroup)(nil)).Elem() +} + +func (o LogGroupOutput) ToLogGroupOutput() LogGroupOutput { + return o +} + +func (o LogGroupOutput) ToLogGroupOutputWithContext(ctx context.Context) LogGroupOutput { + return o +} + +// The Amazon Resource Name (ARN) specifying the log group. Any `:*` suffix added by the API, denoting all CloudWatch Log Streams under the CloudWatch Log Group, is removed for greater compatibility with other AWS services that do not accept the suffix. +func (o LogGroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *LogGroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, +// AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires +// permissions for the CMK whenever the encrypted data is requested. +func (o LogGroupOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogGroup) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// The name of the log group. If omitted, this provider will assign a random, unique name. +func (o LogGroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LogGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o LogGroupOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *LogGroup) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// Specifies the number of days +// you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. +// If you select 0, the events in the log group are always retained and never expire. +func (o LogGroupOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogGroup) pulumi.IntPtrOutput { return v.RetentionInDays }).(pulumi.IntPtrOutput) +} + +// Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. +func (o LogGroupOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LogGroup) pulumi.BoolPtrOutput { return v.SkipDestroy }).(pulumi.BoolPtrOutput) +} + +// A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o LogGroupOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogGroup) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o LogGroupOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogGroup) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type LogGroupArrayOutput struct{ *pulumi.OutputState } + +func (LogGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogGroup)(nil)).Elem() +} + +func (o LogGroupArrayOutput) ToLogGroupArrayOutput() LogGroupArrayOutput { + return o +} + +func (o LogGroupArrayOutput) ToLogGroupArrayOutputWithContext(ctx context.Context) LogGroupArrayOutput { + return o +} + +func (o LogGroupArrayOutput) Index(i pulumi.IntInput) LogGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogGroup { + return vs[0].([]*LogGroup)[vs[1].(int)] + }).(LogGroupOutput) +} + +type LogGroupMapOutput struct{ *pulumi.OutputState } + +func (LogGroupMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogGroup)(nil)).Elem() +} + +func (o LogGroupMapOutput) ToLogGroupMapOutput() LogGroupMapOutput { + return o +} + +func (o LogGroupMapOutput) ToLogGroupMapOutputWithContext(ctx context.Context) LogGroupMapOutput { + return o +} + +func (o LogGroupMapOutput) MapIndex(k pulumi.StringInput) LogGroupOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogGroup { + return vs[0].(map[string]*LogGroup)[vs[1].(string)] + }).(LogGroupOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogGroupInput)(nil)).Elem(), &LogGroup{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogGroupArrayInput)(nil)).Elem(), LogGroupArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogGroupMapInput)(nil)).Elem(), LogGroupMap{}) + pulumi.RegisterOutputType(LogGroupOutput{}) + pulumi.RegisterOutputType(LogGroupArrayOutput{}) + pulumi.RegisterOutputType(LogGroupMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logMetricFilter.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logMetricFilter.go new file mode 100644 index 000000000..6145eebc9 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logMetricFilter.go @@ -0,0 +1,322 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Log Metric Filter resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// dada, err := cloudwatch.NewLogGroup(ctx, "dada", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewLogMetricFilter(ctx, "yada", &cloudwatch.LogMetricFilterArgs{ +// Pattern: pulumi.String(""), +// LogGroupName: dada.Name, +// MetricTransformation: &cloudwatch.LogMetricFilterMetricTransformationArgs{ +// Name: pulumi.String("EventCount"), +// Namespace: pulumi.String("YourNamespace"), +// Value: pulumi.String("1"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch Log Metric Filter using the `log_group_name:name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logMetricFilter:LogMetricFilter test /aws/lambda/function:test +// +// ``` +type LogMetricFilter struct { + pulumi.CustomResourceState + + // The name of the log group to associate the metric filter with. + LogGroupName pulumi.StringOutput `pulumi:"logGroupName"` + // A block defining collection of information needed to define how metric data gets emitted. See below. + MetricTransformation LogMetricFilterMetricTransformationOutput `pulumi:"metricTransformation"` + // A name for the metric filter. + Name pulumi.StringOutput `pulumi:"name"` + // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) + // for extracting metric data out of ingested log events. + Pattern pulumi.StringOutput `pulumi:"pattern"` +} + +// NewLogMetricFilter registers a new resource with the given unique name, arguments, and options. +func NewLogMetricFilter(ctx *pulumi.Context, + name string, args *LogMetricFilterArgs, opts ...pulumi.ResourceOption) (*LogMetricFilter, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.LogGroupName == nil { + return nil, errors.New("invalid value for required argument 'LogGroupName'") + } + if args.MetricTransformation == nil { + return nil, errors.New("invalid value for required argument 'MetricTransformation'") + } + if args.Pattern == nil { + return nil, errors.New("invalid value for required argument 'Pattern'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogMetricFilter + err := ctx.RegisterResource("aws:cloudwatch/logMetricFilter:LogMetricFilter", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogMetricFilter gets an existing LogMetricFilter resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogMetricFilter(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogMetricFilterState, opts ...pulumi.ResourceOption) (*LogMetricFilter, error) { + var resource LogMetricFilter + err := ctx.ReadResource("aws:cloudwatch/logMetricFilter:LogMetricFilter", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogMetricFilter resources. +type logMetricFilterState struct { + // The name of the log group to associate the metric filter with. + LogGroupName *string `pulumi:"logGroupName"` + // A block defining collection of information needed to define how metric data gets emitted. See below. + MetricTransformation *LogMetricFilterMetricTransformation `pulumi:"metricTransformation"` + // A name for the metric filter. + Name *string `pulumi:"name"` + // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) + // for extracting metric data out of ingested log events. + Pattern *string `pulumi:"pattern"` +} + +type LogMetricFilterState struct { + // The name of the log group to associate the metric filter with. + LogGroupName pulumi.StringPtrInput + // A block defining collection of information needed to define how metric data gets emitted. See below. + MetricTransformation LogMetricFilterMetricTransformationPtrInput + // A name for the metric filter. + Name pulumi.StringPtrInput + // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) + // for extracting metric data out of ingested log events. + Pattern pulumi.StringPtrInput +} + +func (LogMetricFilterState) ElementType() reflect.Type { + return reflect.TypeOf((*logMetricFilterState)(nil)).Elem() +} + +type logMetricFilterArgs struct { + // The name of the log group to associate the metric filter with. + LogGroupName string `pulumi:"logGroupName"` + // A block defining collection of information needed to define how metric data gets emitted. See below. + MetricTransformation LogMetricFilterMetricTransformation `pulumi:"metricTransformation"` + // A name for the metric filter. + Name *string `pulumi:"name"` + // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) + // for extracting metric data out of ingested log events. + Pattern string `pulumi:"pattern"` +} + +// The set of arguments for constructing a LogMetricFilter resource. +type LogMetricFilterArgs struct { + // The name of the log group to associate the metric filter with. + LogGroupName pulumi.StringInput + // A block defining collection of information needed to define how metric data gets emitted. See below. + MetricTransformation LogMetricFilterMetricTransformationInput + // A name for the metric filter. + Name pulumi.StringPtrInput + // A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) + // for extracting metric data out of ingested log events. + Pattern pulumi.StringInput +} + +func (LogMetricFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logMetricFilterArgs)(nil)).Elem() +} + +type LogMetricFilterInput interface { + pulumi.Input + + ToLogMetricFilterOutput() LogMetricFilterOutput + ToLogMetricFilterOutputWithContext(ctx context.Context) LogMetricFilterOutput +} + +func (*LogMetricFilter) ElementType() reflect.Type { + return reflect.TypeOf((**LogMetricFilter)(nil)).Elem() +} + +func (i *LogMetricFilter) ToLogMetricFilterOutput() LogMetricFilterOutput { + return i.ToLogMetricFilterOutputWithContext(context.Background()) +} + +func (i *LogMetricFilter) ToLogMetricFilterOutputWithContext(ctx context.Context) LogMetricFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterOutput) +} + +// LogMetricFilterArrayInput is an input type that accepts LogMetricFilterArray and LogMetricFilterArrayOutput values. +// You can construct a concrete instance of `LogMetricFilterArrayInput` via: +// +// LogMetricFilterArray{ LogMetricFilterArgs{...} } +type LogMetricFilterArrayInput interface { + pulumi.Input + + ToLogMetricFilterArrayOutput() LogMetricFilterArrayOutput + ToLogMetricFilterArrayOutputWithContext(context.Context) LogMetricFilterArrayOutput +} + +type LogMetricFilterArray []LogMetricFilterInput + +func (LogMetricFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogMetricFilter)(nil)).Elem() +} + +func (i LogMetricFilterArray) ToLogMetricFilterArrayOutput() LogMetricFilterArrayOutput { + return i.ToLogMetricFilterArrayOutputWithContext(context.Background()) +} + +func (i LogMetricFilterArray) ToLogMetricFilterArrayOutputWithContext(ctx context.Context) LogMetricFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterArrayOutput) +} + +// LogMetricFilterMapInput is an input type that accepts LogMetricFilterMap and LogMetricFilterMapOutput values. +// You can construct a concrete instance of `LogMetricFilterMapInput` via: +// +// LogMetricFilterMap{ "key": LogMetricFilterArgs{...} } +type LogMetricFilterMapInput interface { + pulumi.Input + + ToLogMetricFilterMapOutput() LogMetricFilterMapOutput + ToLogMetricFilterMapOutputWithContext(context.Context) LogMetricFilterMapOutput +} + +type LogMetricFilterMap map[string]LogMetricFilterInput + +func (LogMetricFilterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogMetricFilter)(nil)).Elem() +} + +func (i LogMetricFilterMap) ToLogMetricFilterMapOutput() LogMetricFilterMapOutput { + return i.ToLogMetricFilterMapOutputWithContext(context.Background()) +} + +func (i LogMetricFilterMap) ToLogMetricFilterMapOutputWithContext(ctx context.Context) LogMetricFilterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterMapOutput) +} + +type LogMetricFilterOutput struct{ *pulumi.OutputState } + +func (LogMetricFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogMetricFilter)(nil)).Elem() +} + +func (o LogMetricFilterOutput) ToLogMetricFilterOutput() LogMetricFilterOutput { + return o +} + +func (o LogMetricFilterOutput) ToLogMetricFilterOutputWithContext(ctx context.Context) LogMetricFilterOutput { + return o +} + +// The name of the log group to associate the metric filter with. +func (o LogMetricFilterOutput) LogGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *LogMetricFilter) pulumi.StringOutput { return v.LogGroupName }).(pulumi.StringOutput) +} + +// A block defining collection of information needed to define how metric data gets emitted. See below. +func (o LogMetricFilterOutput) MetricTransformation() LogMetricFilterMetricTransformationOutput { + return o.ApplyT(func(v *LogMetricFilter) LogMetricFilterMetricTransformationOutput { return v.MetricTransformation }).(LogMetricFilterMetricTransformationOutput) +} + +// A name for the metric filter. +func (o LogMetricFilterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LogMetricFilter) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// A valid [CloudWatch Logs filter pattern](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) +// for extracting metric data out of ingested log events. +func (o LogMetricFilterOutput) Pattern() pulumi.StringOutput { + return o.ApplyT(func(v *LogMetricFilter) pulumi.StringOutput { return v.Pattern }).(pulumi.StringOutput) +} + +type LogMetricFilterArrayOutput struct{ *pulumi.OutputState } + +func (LogMetricFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogMetricFilter)(nil)).Elem() +} + +func (o LogMetricFilterArrayOutput) ToLogMetricFilterArrayOutput() LogMetricFilterArrayOutput { + return o +} + +func (o LogMetricFilterArrayOutput) ToLogMetricFilterArrayOutputWithContext(ctx context.Context) LogMetricFilterArrayOutput { + return o +} + +func (o LogMetricFilterArrayOutput) Index(i pulumi.IntInput) LogMetricFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogMetricFilter { + return vs[0].([]*LogMetricFilter)[vs[1].(int)] + }).(LogMetricFilterOutput) +} + +type LogMetricFilterMapOutput struct{ *pulumi.OutputState } + +func (LogMetricFilterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogMetricFilter)(nil)).Elem() +} + +func (o LogMetricFilterMapOutput) ToLogMetricFilterMapOutput() LogMetricFilterMapOutput { + return o +} + +func (o LogMetricFilterMapOutput) ToLogMetricFilterMapOutputWithContext(ctx context.Context) LogMetricFilterMapOutput { + return o +} + +func (o LogMetricFilterMapOutput) MapIndex(k pulumi.StringInput) LogMetricFilterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogMetricFilter { + return vs[0].(map[string]*LogMetricFilter)[vs[1].(string)] + }).(LogMetricFilterOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterInput)(nil)).Elem(), &LogMetricFilter{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterArrayInput)(nil)).Elem(), LogMetricFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterMapInput)(nil)).Elem(), LogMetricFilterMap{}) + pulumi.RegisterOutputType(LogMetricFilterOutput{}) + pulumi.RegisterOutputType(LogMetricFilterArrayOutput{}) + pulumi.RegisterOutputType(LogMetricFilterMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logResourcePolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logResourcePolicy.go new file mode 100644 index 000000000..57a449636 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logResourcePolicy.go @@ -0,0 +1,352 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to manage a CloudWatch log resource policy. +// +// ## Example Usage +// ### Elasticsearch Log Publishing +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// elasticsearch_log_publishing_policyPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "logs:CreateLogStream", +// "logs:PutLogEvents", +// "logs:PutLogEventsBatch", +// }, +// Resources: []string{ +// "arn:aws:logs:*", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Identifiers: []string{ +// "es.amazonaws.com", +// }, +// Type: "Service", +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewLogResourcePolicy(ctx, "elasticsearch-log-publishing-policyLogResourcePolicy", &cloudwatch.LogResourcePolicyArgs{ +// PolicyDocument: *pulumi.String(elasticsearch_log_publishing_policyPolicyDocument.Json), +// PolicyName: pulumi.String("elasticsearch-log-publishing-policy"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Route53 Query Logging +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// route53_query_logging_policyPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "logs:CreateLogStream", +// "logs:PutLogEvents", +// }, +// Resources: []string{ +// "arn:aws:logs:*:*:log-group:/aws/route53/*", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Identifiers: []string{ +// "route53.amazonaws.com", +// }, +// Type: "Service", +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewLogResourcePolicy(ctx, "route53-query-logging-policyLogResourcePolicy", &cloudwatch.LogResourcePolicyArgs{ +// PolicyDocument: *pulumi.String(route53_query_logging_policyPolicyDocument.Json), +// PolicyName: pulumi.String("route53-query-logging-policy"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch log resource policies using the policy name. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logResourcePolicy:LogResourcePolicy MyPolicy MyPolicy +// +// ``` +type LogResourcePolicy struct { + pulumi.CustomResourceState + + // Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. + PolicyDocument pulumi.StringOutput `pulumi:"policyDocument"` + // Name of the resource policy. + PolicyName pulumi.StringOutput `pulumi:"policyName"` +} + +// NewLogResourcePolicy registers a new resource with the given unique name, arguments, and options. +func NewLogResourcePolicy(ctx *pulumi.Context, + name string, args *LogResourcePolicyArgs, opts ...pulumi.ResourceOption) (*LogResourcePolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PolicyDocument == nil { + return nil, errors.New("invalid value for required argument 'PolicyDocument'") + } + if args.PolicyName == nil { + return nil, errors.New("invalid value for required argument 'PolicyName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogResourcePolicy + err := ctx.RegisterResource("aws:cloudwatch/logResourcePolicy:LogResourcePolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogResourcePolicy gets an existing LogResourcePolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogResourcePolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogResourcePolicyState, opts ...pulumi.ResourceOption) (*LogResourcePolicy, error) { + var resource LogResourcePolicy + err := ctx.ReadResource("aws:cloudwatch/logResourcePolicy:LogResourcePolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogResourcePolicy resources. +type logResourcePolicyState struct { + // Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. + PolicyDocument *string `pulumi:"policyDocument"` + // Name of the resource policy. + PolicyName *string `pulumi:"policyName"` +} + +type LogResourcePolicyState struct { + // Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. + PolicyDocument pulumi.StringPtrInput + // Name of the resource policy. + PolicyName pulumi.StringPtrInput +} + +func (LogResourcePolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*logResourcePolicyState)(nil)).Elem() +} + +type logResourcePolicyArgs struct { + // Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. + PolicyDocument string `pulumi:"policyDocument"` + // Name of the resource policy. + PolicyName string `pulumi:"policyName"` +} + +// The set of arguments for constructing a LogResourcePolicy resource. +type LogResourcePolicyArgs struct { + // Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. + PolicyDocument pulumi.StringInput + // Name of the resource policy. + PolicyName pulumi.StringInput +} + +func (LogResourcePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logResourcePolicyArgs)(nil)).Elem() +} + +type LogResourcePolicyInput interface { + pulumi.Input + + ToLogResourcePolicyOutput() LogResourcePolicyOutput + ToLogResourcePolicyOutputWithContext(ctx context.Context) LogResourcePolicyOutput +} + +func (*LogResourcePolicy) ElementType() reflect.Type { + return reflect.TypeOf((**LogResourcePolicy)(nil)).Elem() +} + +func (i *LogResourcePolicy) ToLogResourcePolicyOutput() LogResourcePolicyOutput { + return i.ToLogResourcePolicyOutputWithContext(context.Background()) +} + +func (i *LogResourcePolicy) ToLogResourcePolicyOutputWithContext(ctx context.Context) LogResourcePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogResourcePolicyOutput) +} + +// LogResourcePolicyArrayInput is an input type that accepts LogResourcePolicyArray and LogResourcePolicyArrayOutput values. +// You can construct a concrete instance of `LogResourcePolicyArrayInput` via: +// +// LogResourcePolicyArray{ LogResourcePolicyArgs{...} } +type LogResourcePolicyArrayInput interface { + pulumi.Input + + ToLogResourcePolicyArrayOutput() LogResourcePolicyArrayOutput + ToLogResourcePolicyArrayOutputWithContext(context.Context) LogResourcePolicyArrayOutput +} + +type LogResourcePolicyArray []LogResourcePolicyInput + +func (LogResourcePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogResourcePolicy)(nil)).Elem() +} + +func (i LogResourcePolicyArray) ToLogResourcePolicyArrayOutput() LogResourcePolicyArrayOutput { + return i.ToLogResourcePolicyArrayOutputWithContext(context.Background()) +} + +func (i LogResourcePolicyArray) ToLogResourcePolicyArrayOutputWithContext(ctx context.Context) LogResourcePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogResourcePolicyArrayOutput) +} + +// LogResourcePolicyMapInput is an input type that accepts LogResourcePolicyMap and LogResourcePolicyMapOutput values. +// You can construct a concrete instance of `LogResourcePolicyMapInput` via: +// +// LogResourcePolicyMap{ "key": LogResourcePolicyArgs{...} } +type LogResourcePolicyMapInput interface { + pulumi.Input + + ToLogResourcePolicyMapOutput() LogResourcePolicyMapOutput + ToLogResourcePolicyMapOutputWithContext(context.Context) LogResourcePolicyMapOutput +} + +type LogResourcePolicyMap map[string]LogResourcePolicyInput + +func (LogResourcePolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogResourcePolicy)(nil)).Elem() +} + +func (i LogResourcePolicyMap) ToLogResourcePolicyMapOutput() LogResourcePolicyMapOutput { + return i.ToLogResourcePolicyMapOutputWithContext(context.Background()) +} + +func (i LogResourcePolicyMap) ToLogResourcePolicyMapOutputWithContext(ctx context.Context) LogResourcePolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogResourcePolicyMapOutput) +} + +type LogResourcePolicyOutput struct{ *pulumi.OutputState } + +func (LogResourcePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogResourcePolicy)(nil)).Elem() +} + +func (o LogResourcePolicyOutput) ToLogResourcePolicyOutput() LogResourcePolicyOutput { + return o +} + +func (o LogResourcePolicyOutput) ToLogResourcePolicyOutputWithContext(ctx context.Context) LogResourcePolicyOutput { + return o +} + +// Details of the resource policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. Maximum length of 5120 characters. +func (o LogResourcePolicyOutput) PolicyDocument() pulumi.StringOutput { + return o.ApplyT(func(v *LogResourcePolicy) pulumi.StringOutput { return v.PolicyDocument }).(pulumi.StringOutput) +} + +// Name of the resource policy. +func (o LogResourcePolicyOutput) PolicyName() pulumi.StringOutput { + return o.ApplyT(func(v *LogResourcePolicy) pulumi.StringOutput { return v.PolicyName }).(pulumi.StringOutput) +} + +type LogResourcePolicyArrayOutput struct{ *pulumi.OutputState } + +func (LogResourcePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogResourcePolicy)(nil)).Elem() +} + +func (o LogResourcePolicyArrayOutput) ToLogResourcePolicyArrayOutput() LogResourcePolicyArrayOutput { + return o +} + +func (o LogResourcePolicyArrayOutput) ToLogResourcePolicyArrayOutputWithContext(ctx context.Context) LogResourcePolicyArrayOutput { + return o +} + +func (o LogResourcePolicyArrayOutput) Index(i pulumi.IntInput) LogResourcePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogResourcePolicy { + return vs[0].([]*LogResourcePolicy)[vs[1].(int)] + }).(LogResourcePolicyOutput) +} + +type LogResourcePolicyMapOutput struct{ *pulumi.OutputState } + +func (LogResourcePolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogResourcePolicy)(nil)).Elem() +} + +func (o LogResourcePolicyMapOutput) ToLogResourcePolicyMapOutput() LogResourcePolicyMapOutput { + return o +} + +func (o LogResourcePolicyMapOutput) ToLogResourcePolicyMapOutputWithContext(ctx context.Context) LogResourcePolicyMapOutput { + return o +} + +func (o LogResourcePolicyMapOutput) MapIndex(k pulumi.StringInput) LogResourcePolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogResourcePolicy { + return vs[0].(map[string]*LogResourcePolicy)[vs[1].(string)] + }).(LogResourcePolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogResourcePolicyInput)(nil)).Elem(), &LogResourcePolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogResourcePolicyArrayInput)(nil)).Elem(), LogResourcePolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogResourcePolicyMapInput)(nil)).Elem(), LogResourcePolicyMap{}) + pulumi.RegisterOutputType(LogResourcePolicyOutput{}) + pulumi.RegisterOutputType(LogResourcePolicyArrayOutput{}) + pulumi.RegisterOutputType(LogResourcePolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logStream.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logStream.go new file mode 100644 index 000000000..5e583cfa1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logStream.go @@ -0,0 +1,285 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Log Stream resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// yada, err := cloudwatch.NewLogGroup(ctx, "yada", nil) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewLogStream(ctx, "foo", &cloudwatch.LogStreamArgs{ +// LogGroupName: yada.Name, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Cloudwatch Log Stream using the stream's `log_group_name` and `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logStream:LogStream foo Yada:SampleLogStream1234 +// +// ``` +type LogStream struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) specifying the log stream. + Arn pulumi.StringOutput `pulumi:"arn"` + // The name of the log group under which the log stream is to be created. + LogGroupName pulumi.StringOutput `pulumi:"logGroupName"` + // The name of the log stream. Must not be longer than 512 characters and must not contain `:` + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewLogStream registers a new resource with the given unique name, arguments, and options. +func NewLogStream(ctx *pulumi.Context, + name string, args *LogStreamArgs, opts ...pulumi.ResourceOption) (*LogStream, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.LogGroupName == nil { + return nil, errors.New("invalid value for required argument 'LogGroupName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogStream + err := ctx.RegisterResource("aws:cloudwatch/logStream:LogStream", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogStream gets an existing LogStream resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogStream(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogStreamState, opts ...pulumi.ResourceOption) (*LogStream, error) { + var resource LogStream + err := ctx.ReadResource("aws:cloudwatch/logStream:LogStream", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogStream resources. +type logStreamState struct { + // The Amazon Resource Name (ARN) specifying the log stream. + Arn *string `pulumi:"arn"` + // The name of the log group under which the log stream is to be created. + LogGroupName *string `pulumi:"logGroupName"` + // The name of the log stream. Must not be longer than 512 characters and must not contain `:` + Name *string `pulumi:"name"` +} + +type LogStreamState struct { + // The Amazon Resource Name (ARN) specifying the log stream. + Arn pulumi.StringPtrInput + // The name of the log group under which the log stream is to be created. + LogGroupName pulumi.StringPtrInput + // The name of the log stream. Must not be longer than 512 characters and must not contain `:` + Name pulumi.StringPtrInput +} + +func (LogStreamState) ElementType() reflect.Type { + return reflect.TypeOf((*logStreamState)(nil)).Elem() +} + +type logStreamArgs struct { + // The name of the log group under which the log stream is to be created. + LogGroupName string `pulumi:"logGroupName"` + // The name of the log stream. Must not be longer than 512 characters and must not contain `:` + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a LogStream resource. +type LogStreamArgs struct { + // The name of the log group under which the log stream is to be created. + LogGroupName pulumi.StringInput + // The name of the log stream. Must not be longer than 512 characters and must not contain `:` + Name pulumi.StringPtrInput +} + +func (LogStreamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logStreamArgs)(nil)).Elem() +} + +type LogStreamInput interface { + pulumi.Input + + ToLogStreamOutput() LogStreamOutput + ToLogStreamOutputWithContext(ctx context.Context) LogStreamOutput +} + +func (*LogStream) ElementType() reflect.Type { + return reflect.TypeOf((**LogStream)(nil)).Elem() +} + +func (i *LogStream) ToLogStreamOutput() LogStreamOutput { + return i.ToLogStreamOutputWithContext(context.Background()) +} + +func (i *LogStream) ToLogStreamOutputWithContext(ctx context.Context) LogStreamOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogStreamOutput) +} + +// LogStreamArrayInput is an input type that accepts LogStreamArray and LogStreamArrayOutput values. +// You can construct a concrete instance of `LogStreamArrayInput` via: +// +// LogStreamArray{ LogStreamArgs{...} } +type LogStreamArrayInput interface { + pulumi.Input + + ToLogStreamArrayOutput() LogStreamArrayOutput + ToLogStreamArrayOutputWithContext(context.Context) LogStreamArrayOutput +} + +type LogStreamArray []LogStreamInput + +func (LogStreamArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogStream)(nil)).Elem() +} + +func (i LogStreamArray) ToLogStreamArrayOutput() LogStreamArrayOutput { + return i.ToLogStreamArrayOutputWithContext(context.Background()) +} + +func (i LogStreamArray) ToLogStreamArrayOutputWithContext(ctx context.Context) LogStreamArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogStreamArrayOutput) +} + +// LogStreamMapInput is an input type that accepts LogStreamMap and LogStreamMapOutput values. +// You can construct a concrete instance of `LogStreamMapInput` via: +// +// LogStreamMap{ "key": LogStreamArgs{...} } +type LogStreamMapInput interface { + pulumi.Input + + ToLogStreamMapOutput() LogStreamMapOutput + ToLogStreamMapOutputWithContext(context.Context) LogStreamMapOutput +} + +type LogStreamMap map[string]LogStreamInput + +func (LogStreamMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogStream)(nil)).Elem() +} + +func (i LogStreamMap) ToLogStreamMapOutput() LogStreamMapOutput { + return i.ToLogStreamMapOutputWithContext(context.Background()) +} + +func (i LogStreamMap) ToLogStreamMapOutputWithContext(ctx context.Context) LogStreamMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogStreamMapOutput) +} + +type LogStreamOutput struct{ *pulumi.OutputState } + +func (LogStreamOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogStream)(nil)).Elem() +} + +func (o LogStreamOutput) ToLogStreamOutput() LogStreamOutput { + return o +} + +func (o LogStreamOutput) ToLogStreamOutputWithContext(ctx context.Context) LogStreamOutput { + return o +} + +// The Amazon Resource Name (ARN) specifying the log stream. +func (o LogStreamOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *LogStream) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The name of the log group under which the log stream is to be created. +func (o LogStreamOutput) LogGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *LogStream) pulumi.StringOutput { return v.LogGroupName }).(pulumi.StringOutput) +} + +// The name of the log stream. Must not be longer than 512 characters and must not contain `:` +func (o LogStreamOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LogStream) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type LogStreamArrayOutput struct{ *pulumi.OutputState } + +func (LogStreamArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogStream)(nil)).Elem() +} + +func (o LogStreamArrayOutput) ToLogStreamArrayOutput() LogStreamArrayOutput { + return o +} + +func (o LogStreamArrayOutput) ToLogStreamArrayOutputWithContext(ctx context.Context) LogStreamArrayOutput { + return o +} + +func (o LogStreamArrayOutput) Index(i pulumi.IntInput) LogStreamOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogStream { + return vs[0].([]*LogStream)[vs[1].(int)] + }).(LogStreamOutput) +} + +type LogStreamMapOutput struct{ *pulumi.OutputState } + +func (LogStreamMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogStream)(nil)).Elem() +} + +func (o LogStreamMapOutput) ToLogStreamMapOutput() LogStreamMapOutput { + return o +} + +func (o LogStreamMapOutput) ToLogStreamMapOutputWithContext(ctx context.Context) LogStreamMapOutput { + return o +} + +func (o LogStreamMapOutput) MapIndex(k pulumi.StringInput) LogStreamOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogStream { + return vs[0].(map[string]*LogStream)[vs[1].(string)] + }).(LogStreamOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogStreamInput)(nil)).Elem(), &LogStream{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogStreamArrayInput)(nil)).Elem(), LogStreamArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogStreamMapInput)(nil)).Elem(), LogStreamMap{}) + pulumi.RegisterOutputType(LogStreamOutput{}) + pulumi.RegisterOutputType(LogStreamArrayOutput{}) + pulumi.RegisterOutputType(LogStreamMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logSubscriptionFilter.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logSubscriptionFilter.go new file mode 100644 index 000000000..c63df3d55 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/logSubscriptionFilter.go @@ -0,0 +1,340 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Logs subscription filter resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewLogSubscriptionFilter(ctx, "testLambdafunctionLogfilter", &cloudwatch.LogSubscriptionFilterArgs{ +// RoleArn: pulumi.Any(aws_iam_role.Iam_for_lambda.Arn), +// LogGroup: pulumi.Any("/aws/lambda/example_lambda_name"), +// FilterPattern: pulumi.String("logtype test"), +// DestinationArn: pulumi.Any(aws_kinesis_stream.Test_logstream.Arn), +// Distribution: pulumi.String("Random"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch Logs subscription filter using the log group name and subscription filter name separated by `|`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter test_lambdafunction_logfilter /aws/lambda/example_lambda_name|test_lambdafunction_logfilter +// +// ``` +type LogSubscriptionFilter struct { + pulumi.CustomResourceState + + // The ARN of the destination to deliver matching log events to. Kinesis stream or Lambda function ARN. + DestinationArn pulumi.StringOutput `pulumi:"destinationArn"` + // The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. Valid values are "Random" and "ByLogStream". + Distribution pulumi.StringPtrOutput `pulumi:"distribution"` + // A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events. Use empty string `""` to match everything. For more information, see the [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + FilterPattern pulumi.StringOutput `pulumi:"filterPattern"` + // The name of the log group to associate the subscription filter with + LogGroup pulumi.StringOutput `pulumi:"logGroup"` + // A name for the subscription filter + Name pulumi.StringOutput `pulumi:"name"` + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. + RoleArn pulumi.StringOutput `pulumi:"roleArn"` +} + +// NewLogSubscriptionFilter registers a new resource with the given unique name, arguments, and options. +func NewLogSubscriptionFilter(ctx *pulumi.Context, + name string, args *LogSubscriptionFilterArgs, opts ...pulumi.ResourceOption) (*LogSubscriptionFilter, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DestinationArn == nil { + return nil, errors.New("invalid value for required argument 'DestinationArn'") + } + if args.FilterPattern == nil { + return nil, errors.New("invalid value for required argument 'FilterPattern'") + } + if args.LogGroup == nil { + return nil, errors.New("invalid value for required argument 'LogGroup'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource LogSubscriptionFilter + err := ctx.RegisterResource("aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetLogSubscriptionFilter gets an existing LogSubscriptionFilter resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetLogSubscriptionFilter(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *LogSubscriptionFilterState, opts ...pulumi.ResourceOption) (*LogSubscriptionFilter, error) { + var resource LogSubscriptionFilter + err := ctx.ReadResource("aws:cloudwatch/logSubscriptionFilter:LogSubscriptionFilter", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering LogSubscriptionFilter resources. +type logSubscriptionFilterState struct { + // The ARN of the destination to deliver matching log events to. Kinesis stream or Lambda function ARN. + DestinationArn *string `pulumi:"destinationArn"` + // The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. Valid values are "Random" and "ByLogStream". + Distribution *string `pulumi:"distribution"` + // A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events. Use empty string `""` to match everything. For more information, see the [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + FilterPattern *string `pulumi:"filterPattern"` + // The name of the log group to associate the subscription filter with + LogGroup interface{} `pulumi:"logGroup"` + // A name for the subscription filter + Name *string `pulumi:"name"` + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. + RoleArn *string `pulumi:"roleArn"` +} + +type LogSubscriptionFilterState struct { + // The ARN of the destination to deliver matching log events to. Kinesis stream or Lambda function ARN. + DestinationArn pulumi.StringPtrInput + // The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. Valid values are "Random" and "ByLogStream". + Distribution pulumi.StringPtrInput + // A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events. Use empty string `""` to match everything. For more information, see the [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + FilterPattern pulumi.StringPtrInput + // The name of the log group to associate the subscription filter with + LogGroup pulumi.Input + // A name for the subscription filter + Name pulumi.StringPtrInput + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. + RoleArn pulumi.StringPtrInput +} + +func (LogSubscriptionFilterState) ElementType() reflect.Type { + return reflect.TypeOf((*logSubscriptionFilterState)(nil)).Elem() +} + +type logSubscriptionFilterArgs struct { + // The ARN of the destination to deliver matching log events to. Kinesis stream or Lambda function ARN. + DestinationArn string `pulumi:"destinationArn"` + // The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. Valid values are "Random" and "ByLogStream". + Distribution *string `pulumi:"distribution"` + // A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events. Use empty string `""` to match everything. For more information, see the [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + FilterPattern string `pulumi:"filterPattern"` + // The name of the log group to associate the subscription filter with + LogGroup interface{} `pulumi:"logGroup"` + // A name for the subscription filter + Name *string `pulumi:"name"` + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. + RoleArn *string `pulumi:"roleArn"` +} + +// The set of arguments for constructing a LogSubscriptionFilter resource. +type LogSubscriptionFilterArgs struct { + // The ARN of the destination to deliver matching log events to. Kinesis stream or Lambda function ARN. + DestinationArn pulumi.StringInput + // The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. Valid values are "Random" and "ByLogStream". + Distribution pulumi.StringPtrInput + // A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events. Use empty string `""` to match everything. For more information, see the [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + FilterPattern pulumi.StringInput + // The name of the log group to associate the subscription filter with + LogGroup pulumi.Input + // A name for the subscription filter + Name pulumi.StringPtrInput + // The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. + RoleArn pulumi.StringPtrInput +} + +func (LogSubscriptionFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*logSubscriptionFilterArgs)(nil)).Elem() +} + +type LogSubscriptionFilterInput interface { + pulumi.Input + + ToLogSubscriptionFilterOutput() LogSubscriptionFilterOutput + ToLogSubscriptionFilterOutputWithContext(ctx context.Context) LogSubscriptionFilterOutput +} + +func (*LogSubscriptionFilter) ElementType() reflect.Type { + return reflect.TypeOf((**LogSubscriptionFilter)(nil)).Elem() +} + +func (i *LogSubscriptionFilter) ToLogSubscriptionFilterOutput() LogSubscriptionFilterOutput { + return i.ToLogSubscriptionFilterOutputWithContext(context.Background()) +} + +func (i *LogSubscriptionFilter) ToLogSubscriptionFilterOutputWithContext(ctx context.Context) LogSubscriptionFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogSubscriptionFilterOutput) +} + +// LogSubscriptionFilterArrayInput is an input type that accepts LogSubscriptionFilterArray and LogSubscriptionFilterArrayOutput values. +// You can construct a concrete instance of `LogSubscriptionFilterArrayInput` via: +// +// LogSubscriptionFilterArray{ LogSubscriptionFilterArgs{...} } +type LogSubscriptionFilterArrayInput interface { + pulumi.Input + + ToLogSubscriptionFilterArrayOutput() LogSubscriptionFilterArrayOutput + ToLogSubscriptionFilterArrayOutputWithContext(context.Context) LogSubscriptionFilterArrayOutput +} + +type LogSubscriptionFilterArray []LogSubscriptionFilterInput + +func (LogSubscriptionFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogSubscriptionFilter)(nil)).Elem() +} + +func (i LogSubscriptionFilterArray) ToLogSubscriptionFilterArrayOutput() LogSubscriptionFilterArrayOutput { + return i.ToLogSubscriptionFilterArrayOutputWithContext(context.Background()) +} + +func (i LogSubscriptionFilterArray) ToLogSubscriptionFilterArrayOutputWithContext(ctx context.Context) LogSubscriptionFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogSubscriptionFilterArrayOutput) +} + +// LogSubscriptionFilterMapInput is an input type that accepts LogSubscriptionFilterMap and LogSubscriptionFilterMapOutput values. +// You can construct a concrete instance of `LogSubscriptionFilterMapInput` via: +// +// LogSubscriptionFilterMap{ "key": LogSubscriptionFilterArgs{...} } +type LogSubscriptionFilterMapInput interface { + pulumi.Input + + ToLogSubscriptionFilterMapOutput() LogSubscriptionFilterMapOutput + ToLogSubscriptionFilterMapOutputWithContext(context.Context) LogSubscriptionFilterMapOutput +} + +type LogSubscriptionFilterMap map[string]LogSubscriptionFilterInput + +func (LogSubscriptionFilterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogSubscriptionFilter)(nil)).Elem() +} + +func (i LogSubscriptionFilterMap) ToLogSubscriptionFilterMapOutput() LogSubscriptionFilterMapOutput { + return i.ToLogSubscriptionFilterMapOutputWithContext(context.Background()) +} + +func (i LogSubscriptionFilterMap) ToLogSubscriptionFilterMapOutputWithContext(ctx context.Context) LogSubscriptionFilterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogSubscriptionFilterMapOutput) +} + +type LogSubscriptionFilterOutput struct{ *pulumi.OutputState } + +func (LogSubscriptionFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogSubscriptionFilter)(nil)).Elem() +} + +func (o LogSubscriptionFilterOutput) ToLogSubscriptionFilterOutput() LogSubscriptionFilterOutput { + return o +} + +func (o LogSubscriptionFilterOutput) ToLogSubscriptionFilterOutputWithContext(ctx context.Context) LogSubscriptionFilterOutput { + return o +} + +// The ARN of the destination to deliver matching log events to. Kinesis stream or Lambda function ARN. +func (o LogSubscriptionFilterOutput) DestinationArn() pulumi.StringOutput { + return o.ApplyT(func(v *LogSubscriptionFilter) pulumi.StringOutput { return v.DestinationArn }).(pulumi.StringOutput) +} + +// The method used to distribute log data to the destination. By default log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. Valid values are "Random" and "ByLogStream". +func (o LogSubscriptionFilterOutput) Distribution() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogSubscriptionFilter) pulumi.StringPtrOutput { return v.Distribution }).(pulumi.StringPtrOutput) +} + +// A valid CloudWatch Logs filter pattern for subscribing to a filtered stream of log events. Use empty string `""` to match everything. For more information, see the [Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). +func (o LogSubscriptionFilterOutput) FilterPattern() pulumi.StringOutput { + return o.ApplyT(func(v *LogSubscriptionFilter) pulumi.StringOutput { return v.FilterPattern }).(pulumi.StringOutput) +} + +// The name of the log group to associate the subscription filter with +func (o LogSubscriptionFilterOutput) LogGroup() pulumi.StringOutput { + return o.ApplyT(func(v *LogSubscriptionFilter) pulumi.StringOutput { return v.LogGroup }).(pulumi.StringOutput) +} + +// A name for the subscription filter +func (o LogSubscriptionFilterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *LogSubscriptionFilter) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ARN of an IAM role that grants Amazon CloudWatch Logs permissions to deliver ingested log events to the destination. If you use Lambda as a destination, you should skip this argument and use `lambda.Permission` resource for granting access from CloudWatch logs to the destination Lambda function. +func (o LogSubscriptionFilterOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *LogSubscriptionFilter) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +type LogSubscriptionFilterArrayOutput struct{ *pulumi.OutputState } + +func (LogSubscriptionFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*LogSubscriptionFilter)(nil)).Elem() +} + +func (o LogSubscriptionFilterArrayOutput) ToLogSubscriptionFilterArrayOutput() LogSubscriptionFilterArrayOutput { + return o +} + +func (o LogSubscriptionFilterArrayOutput) ToLogSubscriptionFilterArrayOutputWithContext(ctx context.Context) LogSubscriptionFilterArrayOutput { + return o +} + +func (o LogSubscriptionFilterArrayOutput) Index(i pulumi.IntInput) LogSubscriptionFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LogSubscriptionFilter { + return vs[0].([]*LogSubscriptionFilter)[vs[1].(int)] + }).(LogSubscriptionFilterOutput) +} + +type LogSubscriptionFilterMapOutput struct{ *pulumi.OutputState } + +func (LogSubscriptionFilterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*LogSubscriptionFilter)(nil)).Elem() +} + +func (o LogSubscriptionFilterMapOutput) ToLogSubscriptionFilterMapOutput() LogSubscriptionFilterMapOutput { + return o +} + +func (o LogSubscriptionFilterMapOutput) ToLogSubscriptionFilterMapOutputWithContext(ctx context.Context) LogSubscriptionFilterMapOutput { + return o +} + +func (o LogSubscriptionFilterMapOutput) MapIndex(k pulumi.StringInput) LogSubscriptionFilterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LogSubscriptionFilter { + return vs[0].(map[string]*LogSubscriptionFilter)[vs[1].(string)] + }).(LogSubscriptionFilterOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*LogSubscriptionFilterInput)(nil)).Elem(), &LogSubscriptionFilter{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogSubscriptionFilterArrayInput)(nil)).Elem(), LogSubscriptionFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogSubscriptionFilterMapInput)(nil)).Elem(), LogSubscriptionFilterMap{}) + pulumi.RegisterOutputType(LogSubscriptionFilterOutput{}) + pulumi.RegisterOutputType(LogSubscriptionFilterArrayOutput{}) + pulumi.RegisterOutputType(LogSubscriptionFilterMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricAlarm.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricAlarm.go new file mode 100644 index 000000000..3b64e830f --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricAlarm.go @@ -0,0 +1,883 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Metric Alarm resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewMetricAlarm(ctx, "foobar", &cloudwatch.MetricAlarmArgs{ +// AlarmDescription: pulumi.String("This metric monitors ec2 cpu utilization"), +// ComparisonOperator: pulumi.String("GreaterThanOrEqualToThreshold"), +// EvaluationPeriods: pulumi.Int(2), +// InsufficientDataActions: pulumi.Array{}, +// MetricName: pulumi.String("CPUUtilization"), +// Namespace: pulumi.String("AWS/EC2"), +// Period: pulumi.Int(120), +// Statistic: pulumi.String("Average"), +// Threshold: pulumi.Float64(80), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ## Example in Conjunction with Scaling Policies +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// batPolicy, err := autoscaling.NewPolicy(ctx, "batPolicy", &autoscaling.PolicyArgs{ +// ScalingAdjustment: pulumi.Int(4), +// AdjustmentType: pulumi.String("ChangeInCapacity"), +// Cooldown: pulumi.Int(300), +// AutoscalingGroupName: pulumi.Any(aws_autoscaling_group.Bar.Name), +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewMetricAlarm(ctx, "batMetricAlarm", &cloudwatch.MetricAlarmArgs{ +// ComparisonOperator: pulumi.String("GreaterThanOrEqualToThreshold"), +// EvaluationPeriods: pulumi.Int(2), +// MetricName: pulumi.String("CPUUtilization"), +// Namespace: pulumi.String("AWS/EC2"), +// Period: pulumi.Int(120), +// Statistic: pulumi.String("Average"), +// Threshold: pulumi.Float64(80), +// Dimensions: pulumi.StringMap{ +// "AutoScalingGroupName": pulumi.Any(aws_autoscaling_group.Bar.Name), +// }, +// AlarmDescription: pulumi.String("This metric monitors ec2 cpu utilization"), +// AlarmActions: pulumi.Array{ +// batPolicy.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Example with an Expression +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewMetricAlarm(ctx, "foobar", &cloudwatch.MetricAlarmArgs{ +// AlarmDescription: pulumi.String("Request error rate has exceeded 10%"), +// ComparisonOperator: pulumi.String("GreaterThanOrEqualToThreshold"), +// EvaluationPeriods: pulumi.Int(2), +// InsufficientDataActions: pulumi.Array{}, +// MetricQueries: cloudwatch.MetricAlarmMetricQueryArray{ +// &cloudwatch.MetricAlarmMetricQueryArgs{ +// Expression: pulumi.String("m2/m1*100"), +// Id: pulumi.String("e1"), +// Label: pulumi.String("Error Rate"), +// ReturnData: pulumi.Bool(true), +// }, +// &cloudwatch.MetricAlarmMetricQueryArgs{ +// Id: pulumi.String("m1"), +// Metric: &cloudwatch.MetricAlarmMetricQueryMetricArgs{ +// Dimensions: pulumi.StringMap{ +// "LoadBalancer": pulumi.String("app/web"), +// }, +// MetricName: pulumi.String("RequestCount"), +// Namespace: pulumi.String("AWS/ApplicationELB"), +// Period: pulumi.Int(120), +// Stat: pulumi.String("Sum"), +// Unit: pulumi.String("Count"), +// }, +// }, +// &cloudwatch.MetricAlarmMetricQueryArgs{ +// Id: pulumi.String("m2"), +// Metric: &cloudwatch.MetricAlarmMetricQueryMetricArgs{ +// Dimensions: pulumi.StringMap{ +// "LoadBalancer": pulumi.String("app/web"), +// }, +// MetricName: pulumi.String("HTTPCode_ELB_5XX_Count"), +// Namespace: pulumi.String("AWS/ApplicationELB"), +// Period: pulumi.Int(120), +// Stat: pulumi.String("Sum"), +// Unit: pulumi.String("Count"), +// }, +// }, +// }, +// Threshold: pulumi.Float64(10), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewMetricAlarm(ctx, "xxAnomalyDetection", &cloudwatch.MetricAlarmArgs{ +// AlarmDescription: pulumi.String("This metric monitors ec2 cpu utilization"), +// ComparisonOperator: pulumi.String("GreaterThanUpperThreshold"), +// EvaluationPeriods: pulumi.Int(2), +// InsufficientDataActions: pulumi.Array{}, +// MetricQueries: cloudwatch.MetricAlarmMetricQueryArray{ +// &cloudwatch.MetricAlarmMetricQueryArgs{ +// Expression: pulumi.String("ANOMALY_DETECTION_BAND(m1)"), +// Id: pulumi.String("e1"), +// Label: pulumi.String("CPUUtilization (Expected)"), +// ReturnData: pulumi.Bool(true), +// }, +// &cloudwatch.MetricAlarmMetricQueryArgs{ +// Id: pulumi.String("m1"), +// Metric: &cloudwatch.MetricAlarmMetricQueryMetricArgs{ +// Dimensions: pulumi.StringMap{ +// "InstanceId": pulumi.String("i-abc123"), +// }, +// MetricName: pulumi.String("CPUUtilization"), +// Namespace: pulumi.String("AWS/EC2"), +// Period: pulumi.Int(120), +// Stat: pulumi.String("Average"), +// Unit: pulumi.String("Count"), +// }, +// ReturnData: pulumi.Bool(true), +// }, +// }, +// ThresholdMetricId: pulumi.String("e1"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Example of monitoring Healthy Hosts on NLB using Target Group and NLB +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewMetricAlarm(ctx, "nlbHealthyhosts", &cloudwatch.MetricAlarmArgs{ +// ComparisonOperator: pulumi.String("LessThanThreshold"), +// EvaluationPeriods: pulumi.Int(1), +// MetricName: pulumi.String("HealthyHostCount"), +// Namespace: pulumi.String("AWS/NetworkELB"), +// Period: pulumi.Int(60), +// Statistic: pulumi.String("Average"), +// Threshold: pulumi.Any(_var.Logstash_servers_count), +// AlarmDescription: pulumi.String("Number of healthy nodes in Target Group"), +// ActionsEnabled: pulumi.Bool(true), +// AlarmActions: pulumi.Array{ +// aws_sns_topic.Sns.Arn, +// }, +// OkActions: pulumi.Array{ +// aws_sns_topic.Sns.Arn, +// }, +// Dimensions: pulumi.StringMap{ +// "TargetGroup": pulumi.Any(aws_lb_target_group.LbTg.Arn_suffix), +// "LoadBalancer": pulumi.Any(aws_lb.Lb.Arn_suffix), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// > **NOTE:** You cannot create a metric alarm consisting of both `statistic` and `extendedStatistic` parameters. +// You must choose one or the other +// +// ## Import +// +// Using `pulumi import`, import CloudWatch Metric Alarm using the `alarm_name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/metricAlarm:MetricAlarm test alarm-12345 +// +// ``` +type MetricAlarm struct { + pulumi.CustomResourceState + + // Indicates whether or not actions should be executed during any changes to the alarm's state. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrOutput `pulumi:"actionsEnabled"` + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + AlarmActions pulumi.StringArrayOutput `pulumi:"alarmActions"` + // The description for the alarm. + AlarmDescription pulumi.StringPtrOutput `pulumi:"alarmDescription"` + // The ARN of the CloudWatch Metric Alarm. + Arn pulumi.StringOutput `pulumi:"arn"` + // The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Either of the following is supported: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanThreshold`, `LessThanOrEqualToThreshold`. Additionally, the values `LessThanLowerOrGreaterThanUpperThreshold`, `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used only for alarms based on anomaly detection models. + ComparisonOperator pulumi.StringOutput `pulumi:"comparisonOperator"` + // The number of datapoints that must be breaching to trigger the alarm. + DatapointsToAlarm pulumi.IntPtrOutput `pulumi:"datapointsToAlarm"` + // The dimensions for the alarm's associated metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions pulumi.StringMapOutput `pulumi:"dimensions"` + // Used only for alarms based on percentiles. + // If you specify `ignore`, the alarm state will not change during periods with too few data points to be statistically significant. + // If you specify `evaluate` or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. + // The following values are supported: `ignore`, and `evaluate`. + EvaluateLowSampleCountPercentiles pulumi.StringOutput `pulumi:"evaluateLowSampleCountPercentiles"` + // The number of periods over which data is compared to the specified threshold. + EvaluationPeriods pulumi.IntOutput `pulumi:"evaluationPeriods"` + // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + ExtendedStatistic pulumi.StringPtrOutput `pulumi:"extendedStatistic"` + // The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + InsufficientDataActions pulumi.StringArrayOutput `pulumi:"insufficientDataActions"` + // The name for the alarm's associated metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName pulumi.StringPtrOutput `pulumi:"metricName"` + // Enables you to create an alarm based on a metric math expression. You may specify at most 20. + MetricQueries MetricAlarmMetricQueryArrayOutput `pulumi:"metricQueries"` + // The descriptive name for the alarm. This name must be unique within the user's AWS account + Name pulumi.StringOutput `pulumi:"name"` + // The namespace for the alarm's associated metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace pulumi.StringPtrOutput `pulumi:"namespace"` + // The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + OkActions pulumi.StringArrayOutput `pulumi:"okActions"` + // The period in seconds over which the specified `statistic` is applied. + // Valid values are `10`, `30`, or any multiple of `60`. + Period pulumi.IntPtrOutput `pulumi:"period"` + // The statistic to apply to the alarm's associated metric. + // Either of the following is supported: `SampleCount`, `Average`, `Sum`, `Minimum`, `Maximum` + Statistic pulumi.StringPtrOutput `pulumi:"statistic"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** If you specify at least one `metricQuery`, you may not specify a `metricName`, `namespace`, `period` or `statistic`. If you do not specify a `metricQuery`, you must specify each of these (although you may use `extendedStatistic` instead of `statistic`). + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. + Threshold pulumi.Float64PtrOutput `pulumi:"threshold"` + // If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. + ThresholdMetricId pulumi.StringPtrOutput `pulumi:"thresholdMetricId"` + // Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. + TreatMissingData pulumi.StringPtrOutput `pulumi:"treatMissingData"` + // The unit for the alarm's associated metric. + Unit pulumi.StringPtrOutput `pulumi:"unit"` +} + +// NewMetricAlarm registers a new resource with the given unique name, arguments, and options. +func NewMetricAlarm(ctx *pulumi.Context, + name string, args *MetricAlarmArgs, opts ...pulumi.ResourceOption) (*MetricAlarm, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ComparisonOperator == nil { + return nil, errors.New("invalid value for required argument 'ComparisonOperator'") + } + if args.EvaluationPeriods == nil { + return nil, errors.New("invalid value for required argument 'EvaluationPeriods'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource MetricAlarm + err := ctx.RegisterResource("aws:cloudwatch/metricAlarm:MetricAlarm", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMetricAlarm gets an existing MetricAlarm resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMetricAlarm(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MetricAlarmState, opts ...pulumi.ResourceOption) (*MetricAlarm, error) { + var resource MetricAlarm + err := ctx.ReadResource("aws:cloudwatch/metricAlarm:MetricAlarm", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MetricAlarm resources. +type metricAlarmState struct { + // Indicates whether or not actions should be executed during any changes to the alarm's state. Defaults to `true`. + ActionsEnabled *bool `pulumi:"actionsEnabled"` + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + AlarmActions []interface{} `pulumi:"alarmActions"` + // The description for the alarm. + AlarmDescription *string `pulumi:"alarmDescription"` + // The ARN of the CloudWatch Metric Alarm. + Arn *string `pulumi:"arn"` + // The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Either of the following is supported: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanThreshold`, `LessThanOrEqualToThreshold`. Additionally, the values `LessThanLowerOrGreaterThanUpperThreshold`, `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used only for alarms based on anomaly detection models. + ComparisonOperator *string `pulumi:"comparisonOperator"` + // The number of datapoints that must be breaching to trigger the alarm. + DatapointsToAlarm *int `pulumi:"datapointsToAlarm"` + // The dimensions for the alarm's associated metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions map[string]string `pulumi:"dimensions"` + // Used only for alarms based on percentiles. + // If you specify `ignore`, the alarm state will not change during periods with too few data points to be statistically significant. + // If you specify `evaluate` or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. + // The following values are supported: `ignore`, and `evaluate`. + EvaluateLowSampleCountPercentiles *string `pulumi:"evaluateLowSampleCountPercentiles"` + // The number of periods over which data is compared to the specified threshold. + EvaluationPeriods *int `pulumi:"evaluationPeriods"` + // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + ExtendedStatistic *string `pulumi:"extendedStatistic"` + // The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + InsufficientDataActions []interface{} `pulumi:"insufficientDataActions"` + // The name for the alarm's associated metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName *string `pulumi:"metricName"` + // Enables you to create an alarm based on a metric math expression. You may specify at most 20. + MetricQueries []MetricAlarmMetricQuery `pulumi:"metricQueries"` + // The descriptive name for the alarm. This name must be unique within the user's AWS account + Name *string `pulumi:"name"` + // The namespace for the alarm's associated metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace *string `pulumi:"namespace"` + // The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + OkActions []interface{} `pulumi:"okActions"` + // The period in seconds over which the specified `statistic` is applied. + // Valid values are `10`, `30`, or any multiple of `60`. + Period *int `pulumi:"period"` + // The statistic to apply to the alarm's associated metric. + // Either of the following is supported: `SampleCount`, `Average`, `Sum`, `Minimum`, `Maximum` + Statistic *string `pulumi:"statistic"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** If you specify at least one `metricQuery`, you may not specify a `metricName`, `namespace`, `period` or `statistic`. If you do not specify a `metricQuery`, you must specify each of these (although you may use `extendedStatistic` instead of `statistic`). + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. + Threshold *float64 `pulumi:"threshold"` + // If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. + ThresholdMetricId *string `pulumi:"thresholdMetricId"` + // Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. + TreatMissingData *string `pulumi:"treatMissingData"` + // The unit for the alarm's associated metric. + Unit *string `pulumi:"unit"` +} + +type MetricAlarmState struct { + // Indicates whether or not actions should be executed during any changes to the alarm's state. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrInput + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + AlarmActions pulumi.ArrayInput + // The description for the alarm. + AlarmDescription pulumi.StringPtrInput + // The ARN of the CloudWatch Metric Alarm. + Arn pulumi.StringPtrInput + // The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Either of the following is supported: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanThreshold`, `LessThanOrEqualToThreshold`. Additionally, the values `LessThanLowerOrGreaterThanUpperThreshold`, `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used only for alarms based on anomaly detection models. + ComparisonOperator pulumi.StringPtrInput + // The number of datapoints that must be breaching to trigger the alarm. + DatapointsToAlarm pulumi.IntPtrInput + // The dimensions for the alarm's associated metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions pulumi.StringMapInput + // Used only for alarms based on percentiles. + // If you specify `ignore`, the alarm state will not change during periods with too few data points to be statistically significant. + // If you specify `evaluate` or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. + // The following values are supported: `ignore`, and `evaluate`. + EvaluateLowSampleCountPercentiles pulumi.StringPtrInput + // The number of periods over which data is compared to the specified threshold. + EvaluationPeriods pulumi.IntPtrInput + // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + ExtendedStatistic pulumi.StringPtrInput + // The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + InsufficientDataActions pulumi.ArrayInput + // The name for the alarm's associated metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName pulumi.StringPtrInput + // Enables you to create an alarm based on a metric math expression. You may specify at most 20. + MetricQueries MetricAlarmMetricQueryArrayInput + // The descriptive name for the alarm. This name must be unique within the user's AWS account + Name pulumi.StringPtrInput + // The namespace for the alarm's associated metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace pulumi.StringPtrInput + // The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + OkActions pulumi.ArrayInput + // The period in seconds over which the specified `statistic` is applied. + // Valid values are `10`, `30`, or any multiple of `60`. + Period pulumi.IntPtrInput + // The statistic to apply to the alarm's associated metric. + // Either of the following is supported: `SampleCount`, `Average`, `Sum`, `Minimum`, `Maximum` + Statistic pulumi.StringPtrInput + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** If you specify at least one `metricQuery`, you may not specify a `metricName`, `namespace`, `period` or `statistic`. If you do not specify a `metricQuery`, you must specify each of these (although you may use `extendedStatistic` instead of `statistic`). + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. + Threshold pulumi.Float64PtrInput + // If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. + ThresholdMetricId pulumi.StringPtrInput + // Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. + TreatMissingData pulumi.StringPtrInput + // The unit for the alarm's associated metric. + Unit pulumi.StringPtrInput +} + +func (MetricAlarmState) ElementType() reflect.Type { + return reflect.TypeOf((*metricAlarmState)(nil)).Elem() +} + +type metricAlarmArgs struct { + // Indicates whether or not actions should be executed during any changes to the alarm's state. Defaults to `true`. + ActionsEnabled *bool `pulumi:"actionsEnabled"` + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + AlarmActions []interface{} `pulumi:"alarmActions"` + // The description for the alarm. + AlarmDescription *string `pulumi:"alarmDescription"` + // The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Either of the following is supported: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanThreshold`, `LessThanOrEqualToThreshold`. Additionally, the values `LessThanLowerOrGreaterThanUpperThreshold`, `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used only for alarms based on anomaly detection models. + ComparisonOperator string `pulumi:"comparisonOperator"` + // The number of datapoints that must be breaching to trigger the alarm. + DatapointsToAlarm *int `pulumi:"datapointsToAlarm"` + // The dimensions for the alarm's associated metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions map[string]string `pulumi:"dimensions"` + // Used only for alarms based on percentiles. + // If you specify `ignore`, the alarm state will not change during periods with too few data points to be statistically significant. + // If you specify `evaluate` or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. + // The following values are supported: `ignore`, and `evaluate`. + EvaluateLowSampleCountPercentiles *string `pulumi:"evaluateLowSampleCountPercentiles"` + // The number of periods over which data is compared to the specified threshold. + EvaluationPeriods int `pulumi:"evaluationPeriods"` + // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + ExtendedStatistic *string `pulumi:"extendedStatistic"` + // The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + InsufficientDataActions []interface{} `pulumi:"insufficientDataActions"` + // The name for the alarm's associated metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName *string `pulumi:"metricName"` + // Enables you to create an alarm based on a metric math expression. You may specify at most 20. + MetricQueries []MetricAlarmMetricQuery `pulumi:"metricQueries"` + // The descriptive name for the alarm. This name must be unique within the user's AWS account + Name *string `pulumi:"name"` + // The namespace for the alarm's associated metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace *string `pulumi:"namespace"` + // The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + OkActions []interface{} `pulumi:"okActions"` + // The period in seconds over which the specified `statistic` is applied. + // Valid values are `10`, `30`, or any multiple of `60`. + Period *int `pulumi:"period"` + // The statistic to apply to the alarm's associated metric. + // Either of the following is supported: `SampleCount`, `Average`, `Sum`, `Minimum`, `Maximum` + Statistic *string `pulumi:"statistic"` + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** If you specify at least one `metricQuery`, you may not specify a `metricName`, `namespace`, `period` or `statistic`. If you do not specify a `metricQuery`, you must specify each of these (although you may use `extendedStatistic` instead of `statistic`). + Tags map[string]string `pulumi:"tags"` + // The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. + Threshold *float64 `pulumi:"threshold"` + // If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. + ThresholdMetricId *string `pulumi:"thresholdMetricId"` + // Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. + TreatMissingData *string `pulumi:"treatMissingData"` + // The unit for the alarm's associated metric. + Unit *string `pulumi:"unit"` +} + +// The set of arguments for constructing a MetricAlarm resource. +type MetricAlarmArgs struct { + // Indicates whether or not actions should be executed during any changes to the alarm's state. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrInput + // The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + AlarmActions pulumi.ArrayInput + // The description for the alarm. + AlarmDescription pulumi.StringPtrInput + // The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Either of the following is supported: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanThreshold`, `LessThanOrEqualToThreshold`. Additionally, the values `LessThanLowerOrGreaterThanUpperThreshold`, `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used only for alarms based on anomaly detection models. + ComparisonOperator pulumi.StringInput + // The number of datapoints that must be breaching to trigger the alarm. + DatapointsToAlarm pulumi.IntPtrInput + // The dimensions for the alarm's associated metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions pulumi.StringMapInput + // Used only for alarms based on percentiles. + // If you specify `ignore`, the alarm state will not change during periods with too few data points to be statistically significant. + // If you specify `evaluate` or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. + // The following values are supported: `ignore`, and `evaluate`. + EvaluateLowSampleCountPercentiles pulumi.StringPtrInput + // The number of periods over which data is compared to the specified threshold. + EvaluationPeriods pulumi.IntInput + // The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + ExtendedStatistic pulumi.StringPtrInput + // The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + InsufficientDataActions pulumi.ArrayInput + // The name for the alarm's associated metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName pulumi.StringPtrInput + // Enables you to create an alarm based on a metric math expression. You may specify at most 20. + MetricQueries MetricAlarmMetricQueryArrayInput + // The descriptive name for the alarm. This name must be unique within the user's AWS account + Name pulumi.StringPtrInput + // The namespace for the alarm's associated metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace pulumi.StringPtrInput + // The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + OkActions pulumi.ArrayInput + // The period in seconds over which the specified `statistic` is applied. + // Valid values are `10`, `30`, or any multiple of `60`. + Period pulumi.IntPtrInput + // The statistic to apply to the alarm's associated metric. + // Either of the following is supported: `SampleCount`, `Average`, `Sum`, `Minimum`, `Maximum` + Statistic pulumi.StringPtrInput + // A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** If you specify at least one `metricQuery`, you may not specify a `metricName`, `namespace`, `period` or `statistic`. If you do not specify a `metricQuery`, you must specify each of these (although you may use `extendedStatistic` instead of `statistic`). + Tags pulumi.StringMapInput + // The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. + Threshold pulumi.Float64PtrInput + // If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. + ThresholdMetricId pulumi.StringPtrInput + // Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. + TreatMissingData pulumi.StringPtrInput + // The unit for the alarm's associated metric. + Unit pulumi.StringPtrInput +} + +func (MetricAlarmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*metricAlarmArgs)(nil)).Elem() +} + +type MetricAlarmInput interface { + pulumi.Input + + ToMetricAlarmOutput() MetricAlarmOutput + ToMetricAlarmOutputWithContext(ctx context.Context) MetricAlarmOutput +} + +func (*MetricAlarm) ElementType() reflect.Type { + return reflect.TypeOf((**MetricAlarm)(nil)).Elem() +} + +func (i *MetricAlarm) ToMetricAlarmOutput() MetricAlarmOutput { + return i.ToMetricAlarmOutputWithContext(context.Background()) +} + +func (i *MetricAlarm) ToMetricAlarmOutputWithContext(ctx context.Context) MetricAlarmOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmOutput) +} + +// MetricAlarmArrayInput is an input type that accepts MetricAlarmArray and MetricAlarmArrayOutput values. +// You can construct a concrete instance of `MetricAlarmArrayInput` via: +// +// MetricAlarmArray{ MetricAlarmArgs{...} } +type MetricAlarmArrayInput interface { + pulumi.Input + + ToMetricAlarmArrayOutput() MetricAlarmArrayOutput + ToMetricAlarmArrayOutputWithContext(context.Context) MetricAlarmArrayOutput +} + +type MetricAlarmArray []MetricAlarmInput + +func (MetricAlarmArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MetricAlarm)(nil)).Elem() +} + +func (i MetricAlarmArray) ToMetricAlarmArrayOutput() MetricAlarmArrayOutput { + return i.ToMetricAlarmArrayOutputWithContext(context.Background()) +} + +func (i MetricAlarmArray) ToMetricAlarmArrayOutputWithContext(ctx context.Context) MetricAlarmArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmArrayOutput) +} + +// MetricAlarmMapInput is an input type that accepts MetricAlarmMap and MetricAlarmMapOutput values. +// You can construct a concrete instance of `MetricAlarmMapInput` via: +// +// MetricAlarmMap{ "key": MetricAlarmArgs{...} } +type MetricAlarmMapInput interface { + pulumi.Input + + ToMetricAlarmMapOutput() MetricAlarmMapOutput + ToMetricAlarmMapOutputWithContext(context.Context) MetricAlarmMapOutput +} + +type MetricAlarmMap map[string]MetricAlarmInput + +func (MetricAlarmMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MetricAlarm)(nil)).Elem() +} + +func (i MetricAlarmMap) ToMetricAlarmMapOutput() MetricAlarmMapOutput { + return i.ToMetricAlarmMapOutputWithContext(context.Background()) +} + +func (i MetricAlarmMap) ToMetricAlarmMapOutputWithContext(ctx context.Context) MetricAlarmMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmMapOutput) +} + +type MetricAlarmOutput struct{ *pulumi.OutputState } + +func (MetricAlarmOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MetricAlarm)(nil)).Elem() +} + +func (o MetricAlarmOutput) ToMetricAlarmOutput() MetricAlarmOutput { + return o +} + +func (o MetricAlarmOutput) ToMetricAlarmOutputWithContext(ctx context.Context) MetricAlarmOutput { + return o +} + +// Indicates whether or not actions should be executed during any changes to the alarm's state. Defaults to `true`. +func (o MetricAlarmOutput) ActionsEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.BoolPtrOutput { return v.ActionsEnabled }).(pulumi.BoolPtrOutput) +} + +// The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). +func (o MetricAlarmOutput) AlarmActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringArrayOutput { return v.AlarmActions }).(pulumi.StringArrayOutput) +} + +// The description for the alarm. +func (o MetricAlarmOutput) AlarmDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.AlarmDescription }).(pulumi.StringPtrOutput) +} + +// The ARN of the CloudWatch Metric Alarm. +func (o MetricAlarmOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand. Either of the following is supported: `GreaterThanOrEqualToThreshold`, `GreaterThanThreshold`, `LessThanThreshold`, `LessThanOrEqualToThreshold`. Additionally, the values `LessThanLowerOrGreaterThanUpperThreshold`, `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used only for alarms based on anomaly detection models. +func (o MetricAlarmOutput) ComparisonOperator() pulumi.StringOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringOutput { return v.ComparisonOperator }).(pulumi.StringOutput) +} + +// The number of datapoints that must be breaching to trigger the alarm. +func (o MetricAlarmOutput) DatapointsToAlarm() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.IntPtrOutput { return v.DatapointsToAlarm }).(pulumi.IntPtrOutput) +} + +// The dimensions for the alarm's associated metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringMapOutput { return v.Dimensions }).(pulumi.StringMapOutput) +} + +// Used only for alarms based on percentiles. +// If you specify `ignore`, the alarm state will not change during periods with too few data points to be statistically significant. +// If you specify `evaluate` or omit this parameter, the alarm will always be evaluated and possibly change state no matter how many data points are available. +// The following values are supported: `ignore`, and `evaluate`. +func (o MetricAlarmOutput) EvaluateLowSampleCountPercentiles() pulumi.StringOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringOutput { return v.EvaluateLowSampleCountPercentiles }).(pulumi.StringOutput) +} + +// The number of periods over which data is compared to the specified threshold. +func (o MetricAlarmOutput) EvaluationPeriods() pulumi.IntOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.IntOutput { return v.EvaluationPeriods }).(pulumi.IntOutput) +} + +// The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. +func (o MetricAlarmOutput) ExtendedStatistic() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.ExtendedStatistic }).(pulumi.StringPtrOutput) +} + +// The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). +func (o MetricAlarmOutput) InsufficientDataActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringArrayOutput { return v.InsufficientDataActions }).(pulumi.StringArrayOutput) +} + +// The name for the alarm's associated metric. +// See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.MetricName }).(pulumi.StringPtrOutput) +} + +// Enables you to create an alarm based on a metric math expression. You may specify at most 20. +func (o MetricAlarmOutput) MetricQueries() MetricAlarmMetricQueryArrayOutput { + return o.ApplyT(func(v *MetricAlarm) MetricAlarmMetricQueryArrayOutput { return v.MetricQueries }).(MetricAlarmMetricQueryArrayOutput) +} + +// The descriptive name for the alarm. This name must be unique within the user's AWS account +func (o MetricAlarmOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The namespace for the alarm's associated metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). +// See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). +func (o MetricAlarmOutput) OkActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringArrayOutput { return v.OkActions }).(pulumi.StringArrayOutput) +} + +// The period in seconds over which the specified `statistic` is applied. +// Valid values are `10`, `30`, or any multiple of `60`. +func (o MetricAlarmOutput) Period() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.IntPtrOutput { return v.Period }).(pulumi.IntPtrOutput) +} + +// The statistic to apply to the alarm's associated metric. +// Either of the following is supported: `SampleCount`, `Average`, `Sum`, `Minimum`, `Maximum` +func (o MetricAlarmOutput) Statistic() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.Statistic }).(pulumi.StringPtrOutput) +} + +// A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +// > **NOTE:** If you specify at least one `metricQuery`, you may not specify a `metricName`, `namespace`, `period` or `statistic`. If you do not specify a `metricQuery`, you must specify each of these (although you may use `extendedStatistic` instead of `statistic`). +func (o MetricAlarmOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o MetricAlarmOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. +func (o MetricAlarmOutput) Threshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.Float64PtrOutput { return v.Threshold }).(pulumi.Float64PtrOutput) +} + +// If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. +func (o MetricAlarmOutput) ThresholdMetricId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.ThresholdMetricId }).(pulumi.StringPtrOutput) +} + +// Sets how this alarm is to handle missing data points. The following values are supported: `missing`, `ignore`, `breaching` and `notBreaching`. Defaults to `missing`. +func (o MetricAlarmOutput) TreatMissingData() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.TreatMissingData }).(pulumi.StringPtrOutput) +} + +// The unit for the alarm's associated metric. +func (o MetricAlarmOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarm) pulumi.StringPtrOutput { return v.Unit }).(pulumi.StringPtrOutput) +} + +type MetricAlarmArrayOutput struct{ *pulumi.OutputState } + +func (MetricAlarmArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MetricAlarm)(nil)).Elem() +} + +func (o MetricAlarmArrayOutput) ToMetricAlarmArrayOutput() MetricAlarmArrayOutput { + return o +} + +func (o MetricAlarmArrayOutput) ToMetricAlarmArrayOutputWithContext(ctx context.Context) MetricAlarmArrayOutput { + return o +} + +func (o MetricAlarmArrayOutput) Index(i pulumi.IntInput) MetricAlarmOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MetricAlarm { + return vs[0].([]*MetricAlarm)[vs[1].(int)] + }).(MetricAlarmOutput) +} + +type MetricAlarmMapOutput struct{ *pulumi.OutputState } + +func (MetricAlarmMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MetricAlarm)(nil)).Elem() +} + +func (o MetricAlarmMapOutput) ToMetricAlarmMapOutput() MetricAlarmMapOutput { + return o +} + +func (o MetricAlarmMapOutput) ToMetricAlarmMapOutputWithContext(ctx context.Context) MetricAlarmMapOutput { + return o +} + +func (o MetricAlarmMapOutput) MapIndex(k pulumi.StringInput) MetricAlarmOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MetricAlarm { + return vs[0].(map[string]*MetricAlarm)[vs[1].(string)] + }).(MetricAlarmOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmInput)(nil)).Elem(), &MetricAlarm{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmArrayInput)(nil)).Elem(), MetricAlarmArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmMapInput)(nil)).Elem(), MetricAlarmMap{}) + pulumi.RegisterOutputType(MetricAlarmOutput{}) + pulumi.RegisterOutputType(MetricAlarmArrayOutput{}) + pulumi.RegisterOutputType(MetricAlarmMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricStream.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricStream.go new file mode 100644 index 000000000..8946b5873 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/metricStream.go @@ -0,0 +1,678 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Metric Stream resource. +// +// ## Example Usage +// ### Filters +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// streamsAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "streams.metrics.cloudwatch.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// metricStreamToFirehoseRole, err := iam.NewRole(ctx, "metricStreamToFirehoseRole", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(streamsAssumeRole.Json), +// }) +// if err != nil { +// return err +// } +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// firehoseAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "firehose.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// firehoseToS3Role, err := iam.NewRole(ctx, "firehoseToS3Role", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(firehoseAssumeRole.Json), +// }) +// if err != nil { +// return err +// } +// s3Stream, err := kinesis.NewFirehoseDeliveryStream(ctx, "s3Stream", &kinesis.FirehoseDeliveryStreamArgs{ +// Destination: pulumi.String("extended_s3"), +// ExtendedS3Configuration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{ +// RoleArn: firehoseToS3Role.Arn, +// BucketArn: bucket.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = cloudwatch.NewMetricStream(ctx, "main", &cloudwatch.MetricStreamArgs{ +// RoleArn: metricStreamToFirehoseRole.Arn, +// FirehoseArn: s3Stream.Arn, +// OutputFormat: pulumi.String("json"), +// IncludeFilters: cloudwatch.MetricStreamIncludeFilterArray{ +// &cloudwatch.MetricStreamIncludeFilterArgs{ +// Namespace: pulumi.String("AWS/EC2"), +// MetricNames: pulumi.StringArray{ +// pulumi.String("CPUUtilization"), +// pulumi.String("NetworkOut"), +// }, +// }, +// &cloudwatch.MetricStreamIncludeFilterArgs{ +// Namespace: pulumi.String("AWS/EBS"), +// MetricNames: pulumi.StringArray{}, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// metricStreamToFirehosePolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("firehose:PutRecord"), +// pulumi.String("firehose:PutRecordBatch"), +// }, +// Resources: pulumi.StringArray{ +// s3Stream.Arn, +// }, +// }, +// }, +// }, nil) +// _, err = iam.NewRolePolicy(ctx, "metricStreamToFirehoseRolePolicy", &iam.RolePolicyArgs{ +// Role: metricStreamToFirehoseRole.ID(), +// Policy: metricStreamToFirehosePolicyDocument.ApplyT(func(metricStreamToFirehosePolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &metricStreamToFirehosePolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "bucketAcl", &s3.BucketAclV2Args{ +// Bucket: bucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// firehoseToS3PolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:AbortMultipartUpload"), +// pulumi.String("s3:GetBucketLocation"), +// pulumi.String("s3:GetObject"), +// pulumi.String("s3:ListBucket"), +// pulumi.String("s3:ListBucketMultipartUploads"), +// pulumi.String("s3:PutObject"), +// }, +// Resources: pulumi.StringArray{ +// bucket.Arn, +// bucket.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// }, +// }, nil) +// _, err = iam.NewRolePolicy(ctx, "firehoseToS3RolePolicy", &iam.RolePolicyArgs{ +// Role: firehoseToS3Role.ID(), +// Policy: firehoseToS3PolicyDocument.ApplyT(func(firehoseToS3PolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &firehoseToS3PolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Additional Statistics +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewMetricStream(ctx, "main", &cloudwatch.MetricStreamArgs{ +// RoleArn: pulumi.Any(aws_iam_role.Metric_stream_to_firehose.Arn), +// FirehoseArn: pulumi.Any(aws_kinesis_firehose_delivery_stream.S3_stream.Arn), +// OutputFormat: pulumi.String("json"), +// StatisticsConfigurations: cloudwatch.MetricStreamStatisticsConfigurationArray{ +// &cloudwatch.MetricStreamStatisticsConfigurationArgs{ +// AdditionalStatistics: pulumi.StringArray{ +// pulumi.String("p1"), +// pulumi.String("tm99"), +// }, +// IncludeMetrics: cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArray{ +// &cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs{ +// MetricName: pulumi.String("CPUUtilization"), +// Namespace: pulumi.String("AWS/EC2"), +// }, +// }, +// }, +// &cloudwatch.MetricStreamStatisticsConfigurationArgs{ +// AdditionalStatistics: pulumi.StringArray{ +// pulumi.String("TS(50.5:)"), +// }, +// IncludeMetrics: cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArray{ +// &cloudwatch.MetricStreamStatisticsConfigurationIncludeMetricArgs{ +// MetricName: pulumi.String("CPUUtilization"), +// Namespace: pulumi.String("AWS/EC2"), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch metric streams using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/metricStream:MetricStream sample sample-stream-name +// +// ``` +type MetricStream struct { + pulumi.CustomResourceState + + // ARN of the metric stream. + Arn pulumi.StringOutput `pulumi:"arn"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was created. + CreationDate pulumi.StringOutput `pulumi:"creationDate"` + // List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with `includeFilter`. + ExcludeFilters MetricStreamExcludeFilterArrayOutput `pulumi:"excludeFilters"` + // ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. + FirehoseArn pulumi.StringOutput `pulumi:"firehoseArn"` + // List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with `excludeFilter`. + IncludeFilters MetricStreamIncludeFilterArrayOutput `pulumi:"includeFilters"` + // If you are creating a metric stream in a monitoring account, specify true to include metrics from source accounts that are linked to this monitoring account, in the metric stream. The default is false. For more information about linking accounts, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + IncludeLinkedAccountsMetrics pulumi.BoolPtrOutput `pulumi:"includeLinkedAccountsMetrics"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was last updated. + LastUpdateDate pulumi.StringOutput `pulumi:"lastUpdateDate"` + // Friendly name of the metric stream. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // Output format for the stream. Possible values are `json` and `opentelemetry0.7`. For more information about output formats, see [Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html). + // + // The following arguments are optional: + OutputFormat pulumi.StringOutput `pulumi:"outputFormat"` + // ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see [Trust between CloudWatch and Kinesis Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html). + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + // State of the metric stream. Possible values are `running` and `stopped`. + State pulumi.StringOutput `pulumi:"state"` + // For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `outputFormat`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. + StatisticsConfigurations MetricStreamStatisticsConfigurationArrayOutput `pulumi:"statisticsConfigurations"` + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewMetricStream registers a new resource with the given unique name, arguments, and options. +func NewMetricStream(ctx *pulumi.Context, + name string, args *MetricStreamArgs, opts ...pulumi.ResourceOption) (*MetricStream, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.FirehoseArn == nil { + return nil, errors.New("invalid value for required argument 'FirehoseArn'") + } + if args.OutputFormat == nil { + return nil, errors.New("invalid value for required argument 'OutputFormat'") + } + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource MetricStream + err := ctx.RegisterResource("aws:cloudwatch/metricStream:MetricStream", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMetricStream gets an existing MetricStream resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMetricStream(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MetricStreamState, opts ...pulumi.ResourceOption) (*MetricStream, error) { + var resource MetricStream + err := ctx.ReadResource("aws:cloudwatch/metricStream:MetricStream", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MetricStream resources. +type metricStreamState struct { + // ARN of the metric stream. + Arn *string `pulumi:"arn"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was created. + CreationDate *string `pulumi:"creationDate"` + // List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with `includeFilter`. + ExcludeFilters []MetricStreamExcludeFilter `pulumi:"excludeFilters"` + // ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. + FirehoseArn *string `pulumi:"firehoseArn"` + // List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with `excludeFilter`. + IncludeFilters []MetricStreamIncludeFilter `pulumi:"includeFilters"` + // If you are creating a metric stream in a monitoring account, specify true to include metrics from source accounts that are linked to this monitoring account, in the metric stream. The default is false. For more information about linking accounts, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + IncludeLinkedAccountsMetrics *bool `pulumi:"includeLinkedAccountsMetrics"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was last updated. + LastUpdateDate *string `pulumi:"lastUpdateDate"` + // Friendly name of the metric stream. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. + Name *string `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Output format for the stream. Possible values are `json` and `opentelemetry0.7`. For more information about output formats, see [Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html). + // + // The following arguments are optional: + OutputFormat *string `pulumi:"outputFormat"` + // ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see [Trust between CloudWatch and Kinesis Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html). + RoleArn *string `pulumi:"roleArn"` + // State of the metric stream. Possible values are `running` and `stopped`. + State *string `pulumi:"state"` + // For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `outputFormat`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. + StatisticsConfigurations []MetricStreamStatisticsConfiguration `pulumi:"statisticsConfigurations"` + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type MetricStreamState struct { + // ARN of the metric stream. + Arn pulumi.StringPtrInput + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was created. + CreationDate pulumi.StringPtrInput + // List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with `includeFilter`. + ExcludeFilters MetricStreamExcludeFilterArrayInput + // ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. + FirehoseArn pulumi.StringPtrInput + // List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with `excludeFilter`. + IncludeFilters MetricStreamIncludeFilterArrayInput + // If you are creating a metric stream in a monitoring account, specify true to include metrics from source accounts that are linked to this monitoring account, in the metric stream. The default is false. For more information about linking accounts, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + IncludeLinkedAccountsMetrics pulumi.BoolPtrInput + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was last updated. + LastUpdateDate pulumi.StringPtrInput + // Friendly name of the metric stream. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. + Name pulumi.StringPtrInput + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Output format for the stream. Possible values are `json` and `opentelemetry0.7`. For more information about output formats, see [Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html). + // + // The following arguments are optional: + OutputFormat pulumi.StringPtrInput + // ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see [Trust between CloudWatch and Kinesis Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html). + RoleArn pulumi.StringPtrInput + // State of the metric stream. Possible values are `running` and `stopped`. + State pulumi.StringPtrInput + // For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `outputFormat`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. + StatisticsConfigurations MetricStreamStatisticsConfigurationArrayInput + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (MetricStreamState) ElementType() reflect.Type { + return reflect.TypeOf((*metricStreamState)(nil)).Elem() +} + +type metricStreamArgs struct { + // List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with `includeFilter`. + ExcludeFilters []MetricStreamExcludeFilter `pulumi:"excludeFilters"` + // ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. + FirehoseArn string `pulumi:"firehoseArn"` + // List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with `excludeFilter`. + IncludeFilters []MetricStreamIncludeFilter `pulumi:"includeFilters"` + // If you are creating a metric stream in a monitoring account, specify true to include metrics from source accounts that are linked to this monitoring account, in the metric stream. The default is false. For more information about linking accounts, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + IncludeLinkedAccountsMetrics *bool `pulumi:"includeLinkedAccountsMetrics"` + // Friendly name of the metric stream. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. + Name *string `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Output format for the stream. Possible values are `json` and `opentelemetry0.7`. For more information about output formats, see [Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html). + // + // The following arguments are optional: + OutputFormat string `pulumi:"outputFormat"` + // ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see [Trust between CloudWatch and Kinesis Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html). + RoleArn string `pulumi:"roleArn"` + // For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `outputFormat`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. + StatisticsConfigurations []MetricStreamStatisticsConfiguration `pulumi:"statisticsConfigurations"` + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a MetricStream resource. +type MetricStreamArgs struct { + // List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with `includeFilter`. + ExcludeFilters MetricStreamExcludeFilterArrayInput + // ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. + FirehoseArn pulumi.StringInput + // List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with `excludeFilter`. + IncludeFilters MetricStreamIncludeFilterArrayInput + // If you are creating a metric stream in a monitoring account, specify true to include metrics from source accounts that are linked to this monitoring account, in the metric stream. The default is false. For more information about linking accounts, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). + IncludeLinkedAccountsMetrics pulumi.BoolPtrInput + // Friendly name of the metric stream. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. + Name pulumi.StringPtrInput + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Output format for the stream. Possible values are `json` and `opentelemetry0.7`. For more information about output formats, see [Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html). + // + // The following arguments are optional: + OutputFormat pulumi.StringInput + // ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see [Trust between CloudWatch and Kinesis Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html). + RoleArn pulumi.StringInput + // For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `outputFormat`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. + StatisticsConfigurations MetricStreamStatisticsConfigurationArrayInput + // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (MetricStreamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*metricStreamArgs)(nil)).Elem() +} + +type MetricStreamInput interface { + pulumi.Input + + ToMetricStreamOutput() MetricStreamOutput + ToMetricStreamOutputWithContext(ctx context.Context) MetricStreamOutput +} + +func (*MetricStream) ElementType() reflect.Type { + return reflect.TypeOf((**MetricStream)(nil)).Elem() +} + +func (i *MetricStream) ToMetricStreamOutput() MetricStreamOutput { + return i.ToMetricStreamOutputWithContext(context.Background()) +} + +func (i *MetricStream) ToMetricStreamOutputWithContext(ctx context.Context) MetricStreamOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamOutput) +} + +// MetricStreamArrayInput is an input type that accepts MetricStreamArray and MetricStreamArrayOutput values. +// You can construct a concrete instance of `MetricStreamArrayInput` via: +// +// MetricStreamArray{ MetricStreamArgs{...} } +type MetricStreamArrayInput interface { + pulumi.Input + + ToMetricStreamArrayOutput() MetricStreamArrayOutput + ToMetricStreamArrayOutputWithContext(context.Context) MetricStreamArrayOutput +} + +type MetricStreamArray []MetricStreamInput + +func (MetricStreamArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MetricStream)(nil)).Elem() +} + +func (i MetricStreamArray) ToMetricStreamArrayOutput() MetricStreamArrayOutput { + return i.ToMetricStreamArrayOutputWithContext(context.Background()) +} + +func (i MetricStreamArray) ToMetricStreamArrayOutputWithContext(ctx context.Context) MetricStreamArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamArrayOutput) +} + +// MetricStreamMapInput is an input type that accepts MetricStreamMap and MetricStreamMapOutput values. +// You can construct a concrete instance of `MetricStreamMapInput` via: +// +// MetricStreamMap{ "key": MetricStreamArgs{...} } +type MetricStreamMapInput interface { + pulumi.Input + + ToMetricStreamMapOutput() MetricStreamMapOutput + ToMetricStreamMapOutputWithContext(context.Context) MetricStreamMapOutput +} + +type MetricStreamMap map[string]MetricStreamInput + +func (MetricStreamMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MetricStream)(nil)).Elem() +} + +func (i MetricStreamMap) ToMetricStreamMapOutput() MetricStreamMapOutput { + return i.ToMetricStreamMapOutputWithContext(context.Background()) +} + +func (i MetricStreamMap) ToMetricStreamMapOutputWithContext(ctx context.Context) MetricStreamMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamMapOutput) +} + +type MetricStreamOutput struct{ *pulumi.OutputState } + +func (MetricStreamOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MetricStream)(nil)).Elem() +} + +func (o MetricStreamOutput) ToMetricStreamOutput() MetricStreamOutput { + return o +} + +func (o MetricStreamOutput) ToMetricStreamOutputWithContext(ctx context.Context) MetricStreamOutput { + return o +} + +// ARN of the metric stream. +func (o MetricStreamOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was created. +func (o MetricStreamOutput) CreationDate() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.CreationDate }).(pulumi.StringOutput) +} + +// List of exclusive metric filters. If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces and the conditional metric names that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is excluded. Conflicts with `includeFilter`. +func (o MetricStreamOutput) ExcludeFilters() MetricStreamExcludeFilterArrayOutput { + return o.ApplyT(func(v *MetricStream) MetricStreamExcludeFilterArrayOutput { return v.ExcludeFilters }).(MetricStreamExcludeFilterArrayOutput) +} + +// ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. +func (o MetricStreamOutput) FirehoseArn() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.FirehoseArn }).(pulumi.StringOutput) +} + +// List of inclusive metric filters. If you specify this parameter, the stream sends only the conditional metric names from the metric namespaces that you specify here. If you don't specify metric names or provide empty metric names whole metric namespace is included. Conflicts with `excludeFilter`. +func (o MetricStreamOutput) IncludeFilters() MetricStreamIncludeFilterArrayOutput { + return o.ApplyT(func(v *MetricStream) MetricStreamIncludeFilterArrayOutput { return v.IncludeFilters }).(MetricStreamIncludeFilterArrayOutput) +} + +// If you are creating a metric stream in a monitoring account, specify true to include metrics from source accounts that are linked to this monitoring account, in the metric stream. The default is false. For more information about linking accounts, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). +func (o MetricStreamOutput) IncludeLinkedAccountsMetrics() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *MetricStream) pulumi.BoolPtrOutput { return v.IncludeLinkedAccountsMetrics }).(pulumi.BoolPtrOutput) +} + +// Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the metric stream was last updated. +func (o MetricStreamOutput) LastUpdateDate() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.LastUpdateDate }).(pulumi.StringOutput) +} + +// Friendly name of the metric stream. If omitted, the provider will assign a random, unique name. Conflicts with `namePrefix`. +func (o MetricStreamOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. +func (o MetricStreamOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// Output format for the stream. Possible values are `json` and `opentelemetry0.7`. For more information about output formats, see [Metric streams output formats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html). +// +// The following arguments are optional: +func (o MetricStreamOutput) OutputFormat() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.OutputFormat }).(pulumi.StringOutput) +} + +// ARN of the IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. For more information about role permissions, see [Trust between CloudWatch and Kinesis Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html). +func (o MetricStreamOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +// State of the metric stream. Possible values are `running` and `stopped`. +func (o MetricStreamOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's `outputFormat`. If the OutputFormat is `json`, you can stream any additional statistic that is supported by CloudWatch, listed in [CloudWatch statistics definitions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html). If the OutputFormat is `opentelemetry0.7`, you can stream percentile statistics (p99 etc.). See details below. +func (o MetricStreamOutput) StatisticsConfigurations() MetricStreamStatisticsConfigurationArrayOutput { + return o.ApplyT(func(v *MetricStream) MetricStreamStatisticsConfigurationArrayOutput { + return v.StatisticsConfigurations + }).(MetricStreamStatisticsConfigurationArrayOutput) +} + +// Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o MetricStreamOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o MetricStreamOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *MetricStream) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type MetricStreamArrayOutput struct{ *pulumi.OutputState } + +func (MetricStreamArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MetricStream)(nil)).Elem() +} + +func (o MetricStreamArrayOutput) ToMetricStreamArrayOutput() MetricStreamArrayOutput { + return o +} + +func (o MetricStreamArrayOutput) ToMetricStreamArrayOutputWithContext(ctx context.Context) MetricStreamArrayOutput { + return o +} + +func (o MetricStreamArrayOutput) Index(i pulumi.IntInput) MetricStreamOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MetricStream { + return vs[0].([]*MetricStream)[vs[1].(int)] + }).(MetricStreamOutput) +} + +type MetricStreamMapOutput struct{ *pulumi.OutputState } + +func (MetricStreamMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MetricStream)(nil)).Elem() +} + +func (o MetricStreamMapOutput) ToMetricStreamMapOutput() MetricStreamMapOutput { + return o +} + +func (o MetricStreamMapOutput) ToMetricStreamMapOutputWithContext(ctx context.Context) MetricStreamMapOutput { + return o +} + +func (o MetricStreamMapOutput) MapIndex(k pulumi.StringInput) MetricStreamOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MetricStream { + return vs[0].(map[string]*MetricStream)[vs[1].(string)] + }).(MetricStreamOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamInput)(nil)).Elem(), &MetricStream{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamArrayInput)(nil)).Elem(), MetricStreamArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamMapInput)(nil)).Elem(), MetricStreamMap{}) + pulumi.RegisterOutputType(MetricStreamOutput{}) + pulumi.RegisterOutputType(MetricStreamArrayOutput{}) + pulumi.RegisterOutputType(MetricStreamMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/pulumiTypes.go new file mode 100644 index 000000000..e4ee58426 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/pulumiTypes.go @@ -0,0 +1,8583 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type CompositeAlarmActionsSuppressor struct { + // Can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm. + Alarm string `pulumi:"alarm"` + // The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the `ALARM` state. After this time, the composite alarm performs its actions. + ExtensionPeriod int `pulumi:"extensionPeriod"` + // The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the `ALARM` state. After this time, the composite alarm performs its actions. + WaitPeriod int `pulumi:"waitPeriod"` +} + +// CompositeAlarmActionsSuppressorInput is an input type that accepts CompositeAlarmActionsSuppressorArgs and CompositeAlarmActionsSuppressorOutput values. +// You can construct a concrete instance of `CompositeAlarmActionsSuppressorInput` via: +// +// CompositeAlarmActionsSuppressorArgs{...} +type CompositeAlarmActionsSuppressorInput interface { + pulumi.Input + + ToCompositeAlarmActionsSuppressorOutput() CompositeAlarmActionsSuppressorOutput + ToCompositeAlarmActionsSuppressorOutputWithContext(context.Context) CompositeAlarmActionsSuppressorOutput +} + +type CompositeAlarmActionsSuppressorArgs struct { + // Can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm. + Alarm pulumi.StringInput `pulumi:"alarm"` + // The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the `ALARM` state. After this time, the composite alarm performs its actions. + ExtensionPeriod pulumi.IntInput `pulumi:"extensionPeriod"` + // The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the `ALARM` state. After this time, the composite alarm performs its actions. + WaitPeriod pulumi.IntInput `pulumi:"waitPeriod"` +} + +func (CompositeAlarmActionsSuppressorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CompositeAlarmActionsSuppressor)(nil)).Elem() +} + +func (i CompositeAlarmActionsSuppressorArgs) ToCompositeAlarmActionsSuppressorOutput() CompositeAlarmActionsSuppressorOutput { + return i.ToCompositeAlarmActionsSuppressorOutputWithContext(context.Background()) +} + +func (i CompositeAlarmActionsSuppressorArgs) ToCompositeAlarmActionsSuppressorOutputWithContext(ctx context.Context) CompositeAlarmActionsSuppressorOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmActionsSuppressorOutput) +} + +func (i CompositeAlarmActionsSuppressorArgs) ToCompositeAlarmActionsSuppressorPtrOutput() CompositeAlarmActionsSuppressorPtrOutput { + return i.ToCompositeAlarmActionsSuppressorPtrOutputWithContext(context.Background()) +} + +func (i CompositeAlarmActionsSuppressorArgs) ToCompositeAlarmActionsSuppressorPtrOutputWithContext(ctx context.Context) CompositeAlarmActionsSuppressorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmActionsSuppressorOutput).ToCompositeAlarmActionsSuppressorPtrOutputWithContext(ctx) +} + +// CompositeAlarmActionsSuppressorPtrInput is an input type that accepts CompositeAlarmActionsSuppressorArgs, CompositeAlarmActionsSuppressorPtr and CompositeAlarmActionsSuppressorPtrOutput values. +// You can construct a concrete instance of `CompositeAlarmActionsSuppressorPtrInput` via: +// +// CompositeAlarmActionsSuppressorArgs{...} +// +// or: +// +// nil +type CompositeAlarmActionsSuppressorPtrInput interface { + pulumi.Input + + ToCompositeAlarmActionsSuppressorPtrOutput() CompositeAlarmActionsSuppressorPtrOutput + ToCompositeAlarmActionsSuppressorPtrOutputWithContext(context.Context) CompositeAlarmActionsSuppressorPtrOutput +} + +type compositeAlarmActionsSuppressorPtrType CompositeAlarmActionsSuppressorArgs + +func CompositeAlarmActionsSuppressorPtr(v *CompositeAlarmActionsSuppressorArgs) CompositeAlarmActionsSuppressorPtrInput { + return (*compositeAlarmActionsSuppressorPtrType)(v) +} + +func (*compositeAlarmActionsSuppressorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CompositeAlarmActionsSuppressor)(nil)).Elem() +} + +func (i *compositeAlarmActionsSuppressorPtrType) ToCompositeAlarmActionsSuppressorPtrOutput() CompositeAlarmActionsSuppressorPtrOutput { + return i.ToCompositeAlarmActionsSuppressorPtrOutputWithContext(context.Background()) +} + +func (i *compositeAlarmActionsSuppressorPtrType) ToCompositeAlarmActionsSuppressorPtrOutputWithContext(ctx context.Context) CompositeAlarmActionsSuppressorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmActionsSuppressorPtrOutput) +} + +type CompositeAlarmActionsSuppressorOutput struct{ *pulumi.OutputState } + +func (CompositeAlarmActionsSuppressorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CompositeAlarmActionsSuppressor)(nil)).Elem() +} + +func (o CompositeAlarmActionsSuppressorOutput) ToCompositeAlarmActionsSuppressorOutput() CompositeAlarmActionsSuppressorOutput { + return o +} + +func (o CompositeAlarmActionsSuppressorOutput) ToCompositeAlarmActionsSuppressorOutputWithContext(ctx context.Context) CompositeAlarmActionsSuppressorOutput { + return o +} + +func (o CompositeAlarmActionsSuppressorOutput) ToCompositeAlarmActionsSuppressorPtrOutput() CompositeAlarmActionsSuppressorPtrOutput { + return o.ToCompositeAlarmActionsSuppressorPtrOutputWithContext(context.Background()) +} + +func (o CompositeAlarmActionsSuppressorOutput) ToCompositeAlarmActionsSuppressorPtrOutputWithContext(ctx context.Context) CompositeAlarmActionsSuppressorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CompositeAlarmActionsSuppressor) *CompositeAlarmActionsSuppressor { + return &v + }).(CompositeAlarmActionsSuppressorPtrOutput) +} + +// Can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm. +func (o CompositeAlarmActionsSuppressorOutput) Alarm() pulumi.StringOutput { + return o.ApplyT(func(v CompositeAlarmActionsSuppressor) string { return v.Alarm }).(pulumi.StringOutput) +} + +// The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the `ALARM` state. After this time, the composite alarm performs its actions. +func (o CompositeAlarmActionsSuppressorOutput) ExtensionPeriod() pulumi.IntOutput { + return o.ApplyT(func(v CompositeAlarmActionsSuppressor) int { return v.ExtensionPeriod }).(pulumi.IntOutput) +} + +// The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the `ALARM` state. After this time, the composite alarm performs its actions. +func (o CompositeAlarmActionsSuppressorOutput) WaitPeriod() pulumi.IntOutput { + return o.ApplyT(func(v CompositeAlarmActionsSuppressor) int { return v.WaitPeriod }).(pulumi.IntOutput) +} + +type CompositeAlarmActionsSuppressorPtrOutput struct{ *pulumi.OutputState } + +func (CompositeAlarmActionsSuppressorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CompositeAlarmActionsSuppressor)(nil)).Elem() +} + +func (o CompositeAlarmActionsSuppressorPtrOutput) ToCompositeAlarmActionsSuppressorPtrOutput() CompositeAlarmActionsSuppressorPtrOutput { + return o +} + +func (o CompositeAlarmActionsSuppressorPtrOutput) ToCompositeAlarmActionsSuppressorPtrOutputWithContext(ctx context.Context) CompositeAlarmActionsSuppressorPtrOutput { + return o +} + +func (o CompositeAlarmActionsSuppressorPtrOutput) Elem() CompositeAlarmActionsSuppressorOutput { + return o.ApplyT(func(v *CompositeAlarmActionsSuppressor) CompositeAlarmActionsSuppressor { + if v != nil { + return *v + } + var ret CompositeAlarmActionsSuppressor + return ret + }).(CompositeAlarmActionsSuppressorOutput) +} + +// Can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm. +func (o CompositeAlarmActionsSuppressorPtrOutput) Alarm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CompositeAlarmActionsSuppressor) *string { + if v == nil { + return nil + } + return &v.Alarm + }).(pulumi.StringPtrOutput) +} + +// The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the `ALARM` state. After this time, the composite alarm performs its actions. +func (o CompositeAlarmActionsSuppressorPtrOutput) ExtensionPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CompositeAlarmActionsSuppressor) *int { + if v == nil { + return nil + } + return &v.ExtensionPeriod + }).(pulumi.IntPtrOutput) +} + +// The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the `ALARM` state. After this time, the composite alarm performs its actions. +func (o CompositeAlarmActionsSuppressorPtrOutput) WaitPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CompositeAlarmActionsSuppressor) *int { + if v == nil { + return nil + } + return &v.WaitPeriod + }).(pulumi.IntPtrOutput) +} + +type EventConnectionAuthParameters struct { + // Parameters used for API_KEY authorization. An API key to include in the header for each authentication request. A maximum of 1 are allowed. Conflicts with `basic` and `oauth`. Documented below. + ApiKey *EventConnectionAuthParametersApiKey `pulumi:"apiKey"` + // Parameters used for BASIC authorization. A maximum of 1 are allowed. Conflicts with `apiKey` and `oauth`. Documented below. + Basic *EventConnectionAuthParametersBasic `pulumi:"basic"` + // Invocation Http Parameters are additional credentials used to sign each Invocation of the ApiDestination created from this Connection. If the ApiDestination Rule Target has additional HttpParameters, the values will be merged together, with the Connection Invocation Http Parameters taking precedence. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. + InvocationHttpParameters *EventConnectionAuthParametersInvocationHttpParameters `pulumi:"invocationHttpParameters"` + // Parameters used for OAUTH_CLIENT_CREDENTIALS authorization. A maximum of 1 are allowed. Conflicts with `basic` and `apiKey`. Documented below. + Oauth *EventConnectionAuthParametersOauth `pulumi:"oauth"` +} + +// EventConnectionAuthParametersInput is an input type that accepts EventConnectionAuthParametersArgs and EventConnectionAuthParametersOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInput` via: +// +// EventConnectionAuthParametersArgs{...} +type EventConnectionAuthParametersInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOutput() EventConnectionAuthParametersOutput + ToEventConnectionAuthParametersOutputWithContext(context.Context) EventConnectionAuthParametersOutput +} + +type EventConnectionAuthParametersArgs struct { + // Parameters used for API_KEY authorization. An API key to include in the header for each authentication request. A maximum of 1 are allowed. Conflicts with `basic` and `oauth`. Documented below. + ApiKey EventConnectionAuthParametersApiKeyPtrInput `pulumi:"apiKey"` + // Parameters used for BASIC authorization. A maximum of 1 are allowed. Conflicts with `apiKey` and `oauth`. Documented below. + Basic EventConnectionAuthParametersBasicPtrInput `pulumi:"basic"` + // Invocation Http Parameters are additional credentials used to sign each Invocation of the ApiDestination created from this Connection. If the ApiDestination Rule Target has additional HttpParameters, the values will be merged together, with the Connection Invocation Http Parameters taking precedence. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. + InvocationHttpParameters EventConnectionAuthParametersInvocationHttpParametersPtrInput `pulumi:"invocationHttpParameters"` + // Parameters used for OAUTH_CLIENT_CREDENTIALS authorization. A maximum of 1 are allowed. Conflicts with `basic` and `apiKey`. Documented below. + Oauth EventConnectionAuthParametersOauthPtrInput `pulumi:"oauth"` +} + +func (EventConnectionAuthParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParameters)(nil)).Elem() +} + +func (i EventConnectionAuthParametersArgs) ToEventConnectionAuthParametersOutput() EventConnectionAuthParametersOutput { + return i.ToEventConnectionAuthParametersOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersArgs) ToEventConnectionAuthParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOutput) +} + +func (i EventConnectionAuthParametersArgs) ToEventConnectionAuthParametersPtrOutput() EventConnectionAuthParametersPtrOutput { + return i.ToEventConnectionAuthParametersPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersArgs) ToEventConnectionAuthParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOutput).ToEventConnectionAuthParametersPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersPtrInput is an input type that accepts EventConnectionAuthParametersArgs, EventConnectionAuthParametersPtr and EventConnectionAuthParametersPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersPtrInput` via: +// +// EventConnectionAuthParametersArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersPtrOutput() EventConnectionAuthParametersPtrOutput + ToEventConnectionAuthParametersPtrOutputWithContext(context.Context) EventConnectionAuthParametersPtrOutput +} + +type eventConnectionAuthParametersPtrType EventConnectionAuthParametersArgs + +func EventConnectionAuthParametersPtr(v *EventConnectionAuthParametersArgs) EventConnectionAuthParametersPtrInput { + return (*eventConnectionAuthParametersPtrType)(v) +} + +func (*eventConnectionAuthParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParameters)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersPtrType) ToEventConnectionAuthParametersPtrOutput() EventConnectionAuthParametersPtrOutput { + return i.ToEventConnectionAuthParametersPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersPtrType) ToEventConnectionAuthParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersPtrOutput) +} + +type EventConnectionAuthParametersOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOutput) ToEventConnectionAuthParametersOutput() EventConnectionAuthParametersOutput { + return o +} + +func (o EventConnectionAuthParametersOutput) ToEventConnectionAuthParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersOutput { + return o +} + +func (o EventConnectionAuthParametersOutput) ToEventConnectionAuthParametersPtrOutput() EventConnectionAuthParametersPtrOutput { + return o.ToEventConnectionAuthParametersPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersOutput) ToEventConnectionAuthParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParameters) *EventConnectionAuthParameters { + return &v + }).(EventConnectionAuthParametersPtrOutput) +} + +// Parameters used for API_KEY authorization. An API key to include in the header for each authentication request. A maximum of 1 are allowed. Conflicts with `basic` and `oauth`. Documented below. +func (o EventConnectionAuthParametersOutput) ApiKey() EventConnectionAuthParametersApiKeyPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParameters) *EventConnectionAuthParametersApiKey { return v.ApiKey }).(EventConnectionAuthParametersApiKeyPtrOutput) +} + +// Parameters used for BASIC authorization. A maximum of 1 are allowed. Conflicts with `apiKey` and `oauth`. Documented below. +func (o EventConnectionAuthParametersOutput) Basic() EventConnectionAuthParametersBasicPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParameters) *EventConnectionAuthParametersBasic { return v.Basic }).(EventConnectionAuthParametersBasicPtrOutput) +} + +// Invocation Http Parameters are additional credentials used to sign each Invocation of the ApiDestination created from this Connection. If the ApiDestination Rule Target has additional HttpParameters, the values will be merged together, with the Connection Invocation Http Parameters taking precedence. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. +func (o EventConnectionAuthParametersOutput) InvocationHttpParameters() EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParameters) *EventConnectionAuthParametersInvocationHttpParameters { + return v.InvocationHttpParameters + }).(EventConnectionAuthParametersInvocationHttpParametersPtrOutput) +} + +// Parameters used for OAUTH_CLIENT_CREDENTIALS authorization. A maximum of 1 are allowed. Conflicts with `basic` and `apiKey`. Documented below. +func (o EventConnectionAuthParametersOutput) Oauth() EventConnectionAuthParametersOauthPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParameters) *EventConnectionAuthParametersOauth { return v.Oauth }).(EventConnectionAuthParametersOauthPtrOutput) +} + +type EventConnectionAuthParametersPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersPtrOutput) ToEventConnectionAuthParametersPtrOutput() EventConnectionAuthParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersPtrOutput) ToEventConnectionAuthParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersPtrOutput) Elem() EventConnectionAuthParametersOutput { + return o.ApplyT(func(v *EventConnectionAuthParameters) EventConnectionAuthParameters { + if v != nil { + return *v + } + var ret EventConnectionAuthParameters + return ret + }).(EventConnectionAuthParametersOutput) +} + +// Parameters used for API_KEY authorization. An API key to include in the header for each authentication request. A maximum of 1 are allowed. Conflicts with `basic` and `oauth`. Documented below. +func (o EventConnectionAuthParametersPtrOutput) ApiKey() EventConnectionAuthParametersApiKeyPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParameters) *EventConnectionAuthParametersApiKey { + if v == nil { + return nil + } + return v.ApiKey + }).(EventConnectionAuthParametersApiKeyPtrOutput) +} + +// Parameters used for BASIC authorization. A maximum of 1 are allowed. Conflicts with `apiKey` and `oauth`. Documented below. +func (o EventConnectionAuthParametersPtrOutput) Basic() EventConnectionAuthParametersBasicPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParameters) *EventConnectionAuthParametersBasic { + if v == nil { + return nil + } + return v.Basic + }).(EventConnectionAuthParametersBasicPtrOutput) +} + +// Invocation Http Parameters are additional credentials used to sign each Invocation of the ApiDestination created from this Connection. If the ApiDestination Rule Target has additional HttpParameters, the values will be merged together, with the Connection Invocation Http Parameters taking precedence. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. +func (o EventConnectionAuthParametersPtrOutput) InvocationHttpParameters() EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParameters) *EventConnectionAuthParametersInvocationHttpParameters { + if v == nil { + return nil + } + return v.InvocationHttpParameters + }).(EventConnectionAuthParametersInvocationHttpParametersPtrOutput) +} + +// Parameters used for OAUTH_CLIENT_CREDENTIALS authorization. A maximum of 1 are allowed. Conflicts with `basic` and `apiKey`. Documented below. +func (o EventConnectionAuthParametersPtrOutput) Oauth() EventConnectionAuthParametersOauthPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParameters) *EventConnectionAuthParametersOauth { + if v == nil { + return nil + } + return v.Oauth + }).(EventConnectionAuthParametersOauthPtrOutput) +} + +type EventConnectionAuthParametersApiKey struct { + // Header Name. + Key string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value string `pulumi:"value"` +} + +// EventConnectionAuthParametersApiKeyInput is an input type that accepts EventConnectionAuthParametersApiKeyArgs and EventConnectionAuthParametersApiKeyOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersApiKeyInput` via: +// +// EventConnectionAuthParametersApiKeyArgs{...} +type EventConnectionAuthParametersApiKeyInput interface { + pulumi.Input + + ToEventConnectionAuthParametersApiKeyOutput() EventConnectionAuthParametersApiKeyOutput + ToEventConnectionAuthParametersApiKeyOutputWithContext(context.Context) EventConnectionAuthParametersApiKeyOutput +} + +type EventConnectionAuthParametersApiKeyArgs struct { + // Header Name. + Key pulumi.StringInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersApiKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersApiKey)(nil)).Elem() +} + +func (i EventConnectionAuthParametersApiKeyArgs) ToEventConnectionAuthParametersApiKeyOutput() EventConnectionAuthParametersApiKeyOutput { + return i.ToEventConnectionAuthParametersApiKeyOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersApiKeyArgs) ToEventConnectionAuthParametersApiKeyOutputWithContext(ctx context.Context) EventConnectionAuthParametersApiKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersApiKeyOutput) +} + +func (i EventConnectionAuthParametersApiKeyArgs) ToEventConnectionAuthParametersApiKeyPtrOutput() EventConnectionAuthParametersApiKeyPtrOutput { + return i.ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersApiKeyArgs) ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersApiKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersApiKeyOutput).ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersApiKeyPtrInput is an input type that accepts EventConnectionAuthParametersApiKeyArgs, EventConnectionAuthParametersApiKeyPtr and EventConnectionAuthParametersApiKeyPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersApiKeyPtrInput` via: +// +// EventConnectionAuthParametersApiKeyArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersApiKeyPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersApiKeyPtrOutput() EventConnectionAuthParametersApiKeyPtrOutput + ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(context.Context) EventConnectionAuthParametersApiKeyPtrOutput +} + +type eventConnectionAuthParametersApiKeyPtrType EventConnectionAuthParametersApiKeyArgs + +func EventConnectionAuthParametersApiKeyPtr(v *EventConnectionAuthParametersApiKeyArgs) EventConnectionAuthParametersApiKeyPtrInput { + return (*eventConnectionAuthParametersApiKeyPtrType)(v) +} + +func (*eventConnectionAuthParametersApiKeyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersApiKey)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersApiKeyPtrType) ToEventConnectionAuthParametersApiKeyPtrOutput() EventConnectionAuthParametersApiKeyPtrOutput { + return i.ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersApiKeyPtrType) ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersApiKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersApiKeyPtrOutput) +} + +type EventConnectionAuthParametersApiKeyOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersApiKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersApiKey)(nil)).Elem() +} + +func (o EventConnectionAuthParametersApiKeyOutput) ToEventConnectionAuthParametersApiKeyOutput() EventConnectionAuthParametersApiKeyOutput { + return o +} + +func (o EventConnectionAuthParametersApiKeyOutput) ToEventConnectionAuthParametersApiKeyOutputWithContext(ctx context.Context) EventConnectionAuthParametersApiKeyOutput { + return o +} + +func (o EventConnectionAuthParametersApiKeyOutput) ToEventConnectionAuthParametersApiKeyPtrOutput() EventConnectionAuthParametersApiKeyPtrOutput { + return o.ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersApiKeyOutput) ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersApiKeyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParametersApiKey) *EventConnectionAuthParametersApiKey { + return &v + }).(EventConnectionAuthParametersApiKeyPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersApiKeyOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersApiKey) string { return v.Key }).(pulumi.StringOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersApiKeyOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersApiKey) string { return v.Value }).(pulumi.StringOutput) +} + +type EventConnectionAuthParametersApiKeyPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersApiKeyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersApiKey)(nil)).Elem() +} + +func (o EventConnectionAuthParametersApiKeyPtrOutput) ToEventConnectionAuthParametersApiKeyPtrOutput() EventConnectionAuthParametersApiKeyPtrOutput { + return o +} + +func (o EventConnectionAuthParametersApiKeyPtrOutput) ToEventConnectionAuthParametersApiKeyPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersApiKeyPtrOutput { + return o +} + +func (o EventConnectionAuthParametersApiKeyPtrOutput) Elem() EventConnectionAuthParametersApiKeyOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersApiKey) EventConnectionAuthParametersApiKey { + if v != nil { + return *v + } + var ret EventConnectionAuthParametersApiKey + return ret + }).(EventConnectionAuthParametersApiKeyOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersApiKeyPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersApiKey) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersApiKeyPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersApiKey) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersBasic struct { + // A password for the authorization. Created and stored in AWS Secrets Manager. + Password string `pulumi:"password"` + // A username for the authorization. + Username string `pulumi:"username"` +} + +// EventConnectionAuthParametersBasicInput is an input type that accepts EventConnectionAuthParametersBasicArgs and EventConnectionAuthParametersBasicOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersBasicInput` via: +// +// EventConnectionAuthParametersBasicArgs{...} +type EventConnectionAuthParametersBasicInput interface { + pulumi.Input + + ToEventConnectionAuthParametersBasicOutput() EventConnectionAuthParametersBasicOutput + ToEventConnectionAuthParametersBasicOutputWithContext(context.Context) EventConnectionAuthParametersBasicOutput +} + +type EventConnectionAuthParametersBasicArgs struct { + // A password for the authorization. Created and stored in AWS Secrets Manager. + Password pulumi.StringInput `pulumi:"password"` + // A username for the authorization. + Username pulumi.StringInput `pulumi:"username"` +} + +func (EventConnectionAuthParametersBasicArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersBasic)(nil)).Elem() +} + +func (i EventConnectionAuthParametersBasicArgs) ToEventConnectionAuthParametersBasicOutput() EventConnectionAuthParametersBasicOutput { + return i.ToEventConnectionAuthParametersBasicOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersBasicArgs) ToEventConnectionAuthParametersBasicOutputWithContext(ctx context.Context) EventConnectionAuthParametersBasicOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersBasicOutput) +} + +func (i EventConnectionAuthParametersBasicArgs) ToEventConnectionAuthParametersBasicPtrOutput() EventConnectionAuthParametersBasicPtrOutput { + return i.ToEventConnectionAuthParametersBasicPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersBasicArgs) ToEventConnectionAuthParametersBasicPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersBasicPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersBasicOutput).ToEventConnectionAuthParametersBasicPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersBasicPtrInput is an input type that accepts EventConnectionAuthParametersBasicArgs, EventConnectionAuthParametersBasicPtr and EventConnectionAuthParametersBasicPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersBasicPtrInput` via: +// +// EventConnectionAuthParametersBasicArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersBasicPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersBasicPtrOutput() EventConnectionAuthParametersBasicPtrOutput + ToEventConnectionAuthParametersBasicPtrOutputWithContext(context.Context) EventConnectionAuthParametersBasicPtrOutput +} + +type eventConnectionAuthParametersBasicPtrType EventConnectionAuthParametersBasicArgs + +func EventConnectionAuthParametersBasicPtr(v *EventConnectionAuthParametersBasicArgs) EventConnectionAuthParametersBasicPtrInput { + return (*eventConnectionAuthParametersBasicPtrType)(v) +} + +func (*eventConnectionAuthParametersBasicPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersBasic)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersBasicPtrType) ToEventConnectionAuthParametersBasicPtrOutput() EventConnectionAuthParametersBasicPtrOutput { + return i.ToEventConnectionAuthParametersBasicPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersBasicPtrType) ToEventConnectionAuthParametersBasicPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersBasicPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersBasicPtrOutput) +} + +type EventConnectionAuthParametersBasicOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersBasicOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersBasic)(nil)).Elem() +} + +func (o EventConnectionAuthParametersBasicOutput) ToEventConnectionAuthParametersBasicOutput() EventConnectionAuthParametersBasicOutput { + return o +} + +func (o EventConnectionAuthParametersBasicOutput) ToEventConnectionAuthParametersBasicOutputWithContext(ctx context.Context) EventConnectionAuthParametersBasicOutput { + return o +} + +func (o EventConnectionAuthParametersBasicOutput) ToEventConnectionAuthParametersBasicPtrOutput() EventConnectionAuthParametersBasicPtrOutput { + return o.ToEventConnectionAuthParametersBasicPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersBasicOutput) ToEventConnectionAuthParametersBasicPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersBasicPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParametersBasic) *EventConnectionAuthParametersBasic { + return &v + }).(EventConnectionAuthParametersBasicPtrOutput) +} + +// A password for the authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersBasicOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersBasic) string { return v.Password }).(pulumi.StringOutput) +} + +// A username for the authorization. +func (o EventConnectionAuthParametersBasicOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersBasic) string { return v.Username }).(pulumi.StringOutput) +} + +type EventConnectionAuthParametersBasicPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersBasicPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersBasic)(nil)).Elem() +} + +func (o EventConnectionAuthParametersBasicPtrOutput) ToEventConnectionAuthParametersBasicPtrOutput() EventConnectionAuthParametersBasicPtrOutput { + return o +} + +func (o EventConnectionAuthParametersBasicPtrOutput) ToEventConnectionAuthParametersBasicPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersBasicPtrOutput { + return o +} + +func (o EventConnectionAuthParametersBasicPtrOutput) Elem() EventConnectionAuthParametersBasicOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersBasic) EventConnectionAuthParametersBasic { + if v != nil { + return *v + } + var ret EventConnectionAuthParametersBasic + return ret + }).(EventConnectionAuthParametersBasicOutput) +} + +// A password for the authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersBasicPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersBasic) *string { + if v == nil { + return nil + } + return &v.Password + }).(pulumi.StringPtrOutput) +} + +// A username for the authorization. +func (o EventConnectionAuthParametersBasicPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersBasic) *string { + if v == nil { + return nil + } + return &v.Username + }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersInvocationHttpParameters struct { + // Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Bodies []EventConnectionAuthParametersInvocationHttpParametersBody `pulumi:"bodies"` + // Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Headers []EventConnectionAuthParametersInvocationHttpParametersHeader `pulumi:"headers"` + // Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + QueryStrings []EventConnectionAuthParametersInvocationHttpParametersQueryString `pulumi:"queryStrings"` +} + +// EventConnectionAuthParametersInvocationHttpParametersInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersArgs and EventConnectionAuthParametersInvocationHttpParametersOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersArgs{...} +type EventConnectionAuthParametersInvocationHttpParametersInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersOutput() EventConnectionAuthParametersInvocationHttpParametersOutput + ToEventConnectionAuthParametersInvocationHttpParametersOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersArgs struct { + // Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Bodies EventConnectionAuthParametersInvocationHttpParametersBodyArrayInput `pulumi:"bodies"` + // Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Headers EventConnectionAuthParametersInvocationHttpParametersHeaderArrayInput `pulumi:"headers"` + // Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + QueryStrings EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayInput `pulumi:"queryStrings"` +} + +func (EventConnectionAuthParametersInvocationHttpParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParameters)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersArgs) ToEventConnectionAuthParametersInvocationHttpParametersOutput() EventConnectionAuthParametersInvocationHttpParametersOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersArgs) ToEventConnectionAuthParametersInvocationHttpParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersOutput) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersArgs) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutput() EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersArgs) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersOutput).ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersInvocationHttpParametersPtrInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersArgs, EventConnectionAuthParametersInvocationHttpParametersPtr and EventConnectionAuthParametersInvocationHttpParametersPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersPtrInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersInvocationHttpParametersPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersPtrOutput() EventConnectionAuthParametersInvocationHttpParametersPtrOutput + ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersPtrOutput +} + +type eventConnectionAuthParametersInvocationHttpParametersPtrType EventConnectionAuthParametersInvocationHttpParametersArgs + +func EventConnectionAuthParametersInvocationHttpParametersPtr(v *EventConnectionAuthParametersInvocationHttpParametersArgs) EventConnectionAuthParametersInvocationHttpParametersPtrInput { + return (*eventConnectionAuthParametersInvocationHttpParametersPtrType)(v) +} + +func (*eventConnectionAuthParametersInvocationHttpParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersInvocationHttpParameters)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersInvocationHttpParametersPtrType) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutput() EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersInvocationHttpParametersPtrType) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersPtrOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) ToEventConnectionAuthParametersInvocationHttpParametersOutput() EventConnectionAuthParametersInvocationHttpParametersOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) ToEventConnectionAuthParametersInvocationHttpParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutput() EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return o.ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParametersInvocationHttpParameters) *EventConnectionAuthParametersInvocationHttpParameters { + return &v + }).(EventConnectionAuthParametersInvocationHttpParametersPtrOutput) +} + +// Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) Bodies() EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParameters) []EventConnectionAuthParametersInvocationHttpParametersBody { + return v.Bodies + }).(EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) +} + +// Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) Headers() EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParameters) []EventConnectionAuthParametersInvocationHttpParametersHeader { + return v.Headers + }).(EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) +} + +// Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersInvocationHttpParametersOutput) QueryStrings() EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParameters) []EventConnectionAuthParametersInvocationHttpParametersQueryString { + return v.QueryStrings + }).(EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersInvocationHttpParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersPtrOutput) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutput() EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersPtrOutput) ToEventConnectionAuthParametersInvocationHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersPtrOutput) Elem() EventConnectionAuthParametersInvocationHttpParametersOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersInvocationHttpParameters) EventConnectionAuthParametersInvocationHttpParameters { + if v != nil { + return *v + } + var ret EventConnectionAuthParametersInvocationHttpParameters + return ret + }).(EventConnectionAuthParametersInvocationHttpParametersOutput) +} + +// Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersInvocationHttpParametersPtrOutput) Bodies() EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersInvocationHttpParameters) []EventConnectionAuthParametersInvocationHttpParametersBody { + if v == nil { + return nil + } + return v.Bodies + }).(EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) +} + +// Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersInvocationHttpParametersPtrOutput) Headers() EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersInvocationHttpParameters) []EventConnectionAuthParametersInvocationHttpParametersHeader { + if v == nil { + return nil + } + return v.Headers + }).(EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) +} + +// Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersInvocationHttpParametersPtrOutput) QueryStrings() EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersInvocationHttpParameters) []EventConnectionAuthParametersInvocationHttpParametersQueryString { + if v == nil { + return nil + } + return v.QueryStrings + }).(EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersBody struct { + // Specified whether the value is secret. + IsValueSecret *bool `pulumi:"isValueSecret"` + // Header Name. + Key *string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value *string `pulumi:"value"` +} + +// EventConnectionAuthParametersInvocationHttpParametersBodyInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersBodyArgs and EventConnectionAuthParametersInvocationHttpParametersBodyOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersBodyInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersBodyArgs{...} +type EventConnectionAuthParametersInvocationHttpParametersBodyInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersBodyOutput() EventConnectionAuthParametersInvocationHttpParametersBodyOutput + ToEventConnectionAuthParametersInvocationHttpParametersBodyOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersBodyOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersBodyArgs struct { + // Specified whether the value is secret. + IsValueSecret pulumi.BoolPtrInput `pulumi:"isValueSecret"` + // Header Name. + Key pulumi.StringPtrInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersInvocationHttpParametersBodyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersBody)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersBodyArgs) ToEventConnectionAuthParametersInvocationHttpParametersBodyOutput() EventConnectionAuthParametersInvocationHttpParametersBodyOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersBodyOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersBodyArgs) ToEventConnectionAuthParametersInvocationHttpParametersBodyOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersBodyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersBodyOutput) +} + +// EventConnectionAuthParametersInvocationHttpParametersBodyArrayInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersBodyArray and EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersBodyArrayInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersBodyArray{ EventConnectionAuthParametersInvocationHttpParametersBodyArgs{...} } +type EventConnectionAuthParametersInvocationHttpParametersBodyArrayInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput() EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput + ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersBodyArray []EventConnectionAuthParametersInvocationHttpParametersBodyInput + +func (EventConnectionAuthParametersInvocationHttpParametersBodyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersInvocationHttpParametersBody)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersBodyArray) ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput() EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersBodyArray) ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersBodyOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersBodyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersBody)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersBodyOutput) ToEventConnectionAuthParametersInvocationHttpParametersBodyOutput() EventConnectionAuthParametersInvocationHttpParametersBodyOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersBodyOutput) ToEventConnectionAuthParametersInvocationHttpParametersBodyOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersBodyOutput { + return o +} + +// Specified whether the value is secret. +func (o EventConnectionAuthParametersInvocationHttpParametersBodyOutput) IsValueSecret() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersBody) *bool { return v.IsValueSecret }).(pulumi.BoolPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersInvocationHttpParametersBodyOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersBody) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersInvocationHttpParametersBodyOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersBody) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersInvocationHttpParametersBody)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput() EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) ToEventConnectionAuthParametersInvocationHttpParametersBodyArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput) Index(i pulumi.IntInput) EventConnectionAuthParametersInvocationHttpParametersBodyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventConnectionAuthParametersInvocationHttpParametersBody { + return vs[0].([]EventConnectionAuthParametersInvocationHttpParametersBody)[vs[1].(int)] + }).(EventConnectionAuthParametersInvocationHttpParametersBodyOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersHeader struct { + // Specified whether the value is secret. + IsValueSecret *bool `pulumi:"isValueSecret"` + // Header Name. + Key *string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value *string `pulumi:"value"` +} + +// EventConnectionAuthParametersInvocationHttpParametersHeaderInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersHeaderArgs and EventConnectionAuthParametersInvocationHttpParametersHeaderOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersHeaderInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersHeaderArgs{...} +type EventConnectionAuthParametersInvocationHttpParametersHeaderInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutput() EventConnectionAuthParametersInvocationHttpParametersHeaderOutput + ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersHeaderOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersHeaderArgs struct { + // Specified whether the value is secret. + IsValueSecret pulumi.BoolPtrInput `pulumi:"isValueSecret"` + // Header Name. + Key pulumi.StringPtrInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersInvocationHttpParametersHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersHeader)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersHeaderArgs) ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutput() EventConnectionAuthParametersInvocationHttpParametersHeaderOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersHeaderArgs) ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) +} + +// EventConnectionAuthParametersInvocationHttpParametersHeaderArrayInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersHeaderArray and EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersHeaderArrayInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersHeaderArray{ EventConnectionAuthParametersInvocationHttpParametersHeaderArgs{...} } +type EventConnectionAuthParametersInvocationHttpParametersHeaderArrayInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput() EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput + ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersHeaderArray []EventConnectionAuthParametersInvocationHttpParametersHeaderInput + +func (EventConnectionAuthParametersInvocationHttpParametersHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersInvocationHttpParametersHeader)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersHeaderArray) ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput() EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersHeaderArray) ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersHeaderOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersHeader)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutput() EventConnectionAuthParametersInvocationHttpParametersHeaderOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) ToEventConnectionAuthParametersInvocationHttpParametersHeaderOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersHeaderOutput { + return o +} + +// Specified whether the value is secret. +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) IsValueSecret() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersHeader) *bool { return v.IsValueSecret }).(pulumi.BoolPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersHeader) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersInvocationHttpParametersHeader)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput() EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) ToEventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput) Index(i pulumi.IntInput) EventConnectionAuthParametersInvocationHttpParametersHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventConnectionAuthParametersInvocationHttpParametersHeader { + return vs[0].([]EventConnectionAuthParametersInvocationHttpParametersHeader)[vs[1].(int)] + }).(EventConnectionAuthParametersInvocationHttpParametersHeaderOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersQueryString struct { + // Specified whether the value is secret. + IsValueSecret *bool `pulumi:"isValueSecret"` + // Header Name. + Key *string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value *string `pulumi:"value"` +} + +// EventConnectionAuthParametersInvocationHttpParametersQueryStringInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs and EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersQueryStringInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs{...} +type EventConnectionAuthParametersInvocationHttpParametersQueryStringInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutput() EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput + ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs struct { + // Specified whether the value is secret. + IsValueSecret pulumi.BoolPtrInput `pulumi:"isValueSecret"` + // Header Name. + Key pulumi.StringPtrInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersQueryString)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutput() EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) +} + +// EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayInput is an input type that accepts EventConnectionAuthParametersInvocationHttpParametersQueryStringArray and EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayInput` via: +// +// EventConnectionAuthParametersInvocationHttpParametersQueryStringArray{ EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs{...} } +type EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayInput interface { + pulumi.Input + + ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput() EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput + ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutputWithContext(context.Context) EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput +} + +type EventConnectionAuthParametersInvocationHttpParametersQueryStringArray []EventConnectionAuthParametersInvocationHttpParametersQueryStringInput + +func (EventConnectionAuthParametersInvocationHttpParametersQueryStringArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersInvocationHttpParametersQueryString)(nil)).Elem() +} + +func (i EventConnectionAuthParametersInvocationHttpParametersQueryStringArray) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput() EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput { + return i.ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersInvocationHttpParametersQueryStringArray) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersQueryString)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutput() EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput { + return o +} + +// Specified whether the value is secret. +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) IsValueSecret() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersQueryString) *bool { return v.IsValueSecret }).(pulumi.BoolPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersQueryString) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersInvocationHttpParametersQueryString) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersInvocationHttpParametersQueryString)(nil)).Elem() +} + +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput() EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) ToEventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput { + return o +} + +func (o EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput) Index(i pulumi.IntInput) EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventConnectionAuthParametersInvocationHttpParametersQueryString { + return vs[0].([]EventConnectionAuthParametersInvocationHttpParametersQueryString)[vs[1].(int)] + }).(EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput) +} + +type EventConnectionAuthParametersOauth struct { + // The URL to the authorization endpoint. + AuthorizationEndpoint string `pulumi:"authorizationEndpoint"` + // Contains the client parameters for OAuth authorization. Contains the following two parameters. + ClientParameters *EventConnectionAuthParametersOauthClientParameters `pulumi:"clientParameters"` + // A password for the authorization. Created and stored in AWS Secrets Manager. + HttpMethod string `pulumi:"httpMethod"` + // OAuth Http Parameters are additional credentials used to sign the request to the authorization endpoint to exchange the OAuth Client information for an access token. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. + OauthHttpParameters EventConnectionAuthParametersOauthOauthHttpParameters `pulumi:"oauthHttpParameters"` +} + +// EventConnectionAuthParametersOauthInput is an input type that accepts EventConnectionAuthParametersOauthArgs and EventConnectionAuthParametersOauthOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthInput` via: +// +// EventConnectionAuthParametersOauthArgs{...} +type EventConnectionAuthParametersOauthInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOutput() EventConnectionAuthParametersOauthOutput + ToEventConnectionAuthParametersOauthOutputWithContext(context.Context) EventConnectionAuthParametersOauthOutput +} + +type EventConnectionAuthParametersOauthArgs struct { + // The URL to the authorization endpoint. + AuthorizationEndpoint pulumi.StringInput `pulumi:"authorizationEndpoint"` + // Contains the client parameters for OAuth authorization. Contains the following two parameters. + ClientParameters EventConnectionAuthParametersOauthClientParametersPtrInput `pulumi:"clientParameters"` + // A password for the authorization. Created and stored in AWS Secrets Manager. + HttpMethod pulumi.StringInput `pulumi:"httpMethod"` + // OAuth Http Parameters are additional credentials used to sign the request to the authorization endpoint to exchange the OAuth Client information for an access token. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. + OauthHttpParameters EventConnectionAuthParametersOauthOauthHttpParametersInput `pulumi:"oauthHttpParameters"` +} + +func (EventConnectionAuthParametersOauthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauth)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthArgs) ToEventConnectionAuthParametersOauthOutput() EventConnectionAuthParametersOauthOutput { + return i.ToEventConnectionAuthParametersOauthOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthArgs) ToEventConnectionAuthParametersOauthOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOutput) +} + +func (i EventConnectionAuthParametersOauthArgs) ToEventConnectionAuthParametersOauthPtrOutput() EventConnectionAuthParametersOauthPtrOutput { + return i.ToEventConnectionAuthParametersOauthPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthArgs) ToEventConnectionAuthParametersOauthPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOutput).ToEventConnectionAuthParametersOauthPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersOauthPtrInput is an input type that accepts EventConnectionAuthParametersOauthArgs, EventConnectionAuthParametersOauthPtr and EventConnectionAuthParametersOauthPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthPtrInput` via: +// +// EventConnectionAuthParametersOauthArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersOauthPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthPtrOutput() EventConnectionAuthParametersOauthPtrOutput + ToEventConnectionAuthParametersOauthPtrOutputWithContext(context.Context) EventConnectionAuthParametersOauthPtrOutput +} + +type eventConnectionAuthParametersOauthPtrType EventConnectionAuthParametersOauthArgs + +func EventConnectionAuthParametersOauthPtr(v *EventConnectionAuthParametersOauthArgs) EventConnectionAuthParametersOauthPtrInput { + return (*eventConnectionAuthParametersOauthPtrType)(v) +} + +func (*eventConnectionAuthParametersOauthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersOauth)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersOauthPtrType) ToEventConnectionAuthParametersOauthPtrOutput() EventConnectionAuthParametersOauthPtrOutput { + return i.ToEventConnectionAuthParametersOauthPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersOauthPtrType) ToEventConnectionAuthParametersOauthPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthPtrOutput) +} + +type EventConnectionAuthParametersOauthOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauth)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOutput) ToEventConnectionAuthParametersOauthOutput() EventConnectionAuthParametersOauthOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOutput) ToEventConnectionAuthParametersOauthOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOutput) ToEventConnectionAuthParametersOauthPtrOutput() EventConnectionAuthParametersOauthPtrOutput { + return o.ToEventConnectionAuthParametersOauthPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersOauthOutput) ToEventConnectionAuthParametersOauthPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParametersOauth) *EventConnectionAuthParametersOauth { + return &v + }).(EventConnectionAuthParametersOauthPtrOutput) +} + +// The URL to the authorization endpoint. +func (o EventConnectionAuthParametersOauthOutput) AuthorizationEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauth) string { return v.AuthorizationEndpoint }).(pulumi.StringOutput) +} + +// Contains the client parameters for OAuth authorization. Contains the following two parameters. +func (o EventConnectionAuthParametersOauthOutput) ClientParameters() EventConnectionAuthParametersOauthClientParametersPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauth) *EventConnectionAuthParametersOauthClientParameters { + return v.ClientParameters + }).(EventConnectionAuthParametersOauthClientParametersPtrOutput) +} + +// A password for the authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthOutput) HttpMethod() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauth) string { return v.HttpMethod }).(pulumi.StringOutput) +} + +// OAuth Http Parameters are additional credentials used to sign the request to the authorization endpoint to exchange the OAuth Client information for an access token. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. +func (o EventConnectionAuthParametersOauthOutput) OauthHttpParameters() EventConnectionAuthParametersOauthOauthHttpParametersOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauth) EventConnectionAuthParametersOauthOauthHttpParameters { + return v.OauthHttpParameters + }).(EventConnectionAuthParametersOauthOauthHttpParametersOutput) +} + +type EventConnectionAuthParametersOauthPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersOauth)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthPtrOutput) ToEventConnectionAuthParametersOauthPtrOutput() EventConnectionAuthParametersOauthPtrOutput { + return o +} + +func (o EventConnectionAuthParametersOauthPtrOutput) ToEventConnectionAuthParametersOauthPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthPtrOutput { + return o +} + +func (o EventConnectionAuthParametersOauthPtrOutput) Elem() EventConnectionAuthParametersOauthOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauth) EventConnectionAuthParametersOauth { + if v != nil { + return *v + } + var ret EventConnectionAuthParametersOauth + return ret + }).(EventConnectionAuthParametersOauthOutput) +} + +// The URL to the authorization endpoint. +func (o EventConnectionAuthParametersOauthPtrOutput) AuthorizationEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauth) *string { + if v == nil { + return nil + } + return &v.AuthorizationEndpoint + }).(pulumi.StringPtrOutput) +} + +// Contains the client parameters for OAuth authorization. Contains the following two parameters. +func (o EventConnectionAuthParametersOauthPtrOutput) ClientParameters() EventConnectionAuthParametersOauthClientParametersPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauth) *EventConnectionAuthParametersOauthClientParameters { + if v == nil { + return nil + } + return v.ClientParameters + }).(EventConnectionAuthParametersOauthClientParametersPtrOutput) +} + +// A password for the authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthPtrOutput) HttpMethod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauth) *string { + if v == nil { + return nil + } + return &v.HttpMethod + }).(pulumi.StringPtrOutput) +} + +// OAuth Http Parameters are additional credentials used to sign the request to the authorization endpoint to exchange the OAuth Client information for an access token. Secret values are stored and managed by AWS Secrets Manager. A maximum of 1 are allowed. Documented below. +func (o EventConnectionAuthParametersOauthPtrOutput) OauthHttpParameters() EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauth) *EventConnectionAuthParametersOauthOauthHttpParameters { + if v == nil { + return nil + } + return &v.OauthHttpParameters + }).(EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) +} + +type EventConnectionAuthParametersOauthClientParameters struct { + // The client ID for the credentials to use for authorization. Created and stored in AWS Secrets Manager. + ClientId string `pulumi:"clientId"` + // The client secret for the credentials to use for authorization. Created and stored in AWS Secrets Manager. + ClientSecret string `pulumi:"clientSecret"` +} + +// EventConnectionAuthParametersOauthClientParametersInput is an input type that accepts EventConnectionAuthParametersOauthClientParametersArgs and EventConnectionAuthParametersOauthClientParametersOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthClientParametersInput` via: +// +// EventConnectionAuthParametersOauthClientParametersArgs{...} +type EventConnectionAuthParametersOauthClientParametersInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthClientParametersOutput() EventConnectionAuthParametersOauthClientParametersOutput + ToEventConnectionAuthParametersOauthClientParametersOutputWithContext(context.Context) EventConnectionAuthParametersOauthClientParametersOutput +} + +type EventConnectionAuthParametersOauthClientParametersArgs struct { + // The client ID for the credentials to use for authorization. Created and stored in AWS Secrets Manager. + ClientId pulumi.StringInput `pulumi:"clientId"` + // The client secret for the credentials to use for authorization. Created and stored in AWS Secrets Manager. + ClientSecret pulumi.StringInput `pulumi:"clientSecret"` +} + +func (EventConnectionAuthParametersOauthClientParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthClientParameters)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthClientParametersArgs) ToEventConnectionAuthParametersOauthClientParametersOutput() EventConnectionAuthParametersOauthClientParametersOutput { + return i.ToEventConnectionAuthParametersOauthClientParametersOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthClientParametersArgs) ToEventConnectionAuthParametersOauthClientParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthClientParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthClientParametersOutput) +} + +func (i EventConnectionAuthParametersOauthClientParametersArgs) ToEventConnectionAuthParametersOauthClientParametersPtrOutput() EventConnectionAuthParametersOauthClientParametersPtrOutput { + return i.ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthClientParametersArgs) ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthClientParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthClientParametersOutput).ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersOauthClientParametersPtrInput is an input type that accepts EventConnectionAuthParametersOauthClientParametersArgs, EventConnectionAuthParametersOauthClientParametersPtr and EventConnectionAuthParametersOauthClientParametersPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthClientParametersPtrInput` via: +// +// EventConnectionAuthParametersOauthClientParametersArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersOauthClientParametersPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthClientParametersPtrOutput() EventConnectionAuthParametersOauthClientParametersPtrOutput + ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(context.Context) EventConnectionAuthParametersOauthClientParametersPtrOutput +} + +type eventConnectionAuthParametersOauthClientParametersPtrType EventConnectionAuthParametersOauthClientParametersArgs + +func EventConnectionAuthParametersOauthClientParametersPtr(v *EventConnectionAuthParametersOauthClientParametersArgs) EventConnectionAuthParametersOauthClientParametersPtrInput { + return (*eventConnectionAuthParametersOauthClientParametersPtrType)(v) +} + +func (*eventConnectionAuthParametersOauthClientParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersOauthClientParameters)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersOauthClientParametersPtrType) ToEventConnectionAuthParametersOauthClientParametersPtrOutput() EventConnectionAuthParametersOauthClientParametersPtrOutput { + return i.ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersOauthClientParametersPtrType) ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthClientParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthClientParametersPtrOutput) +} + +type EventConnectionAuthParametersOauthClientParametersOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthClientParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthClientParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthClientParametersOutput) ToEventConnectionAuthParametersOauthClientParametersOutput() EventConnectionAuthParametersOauthClientParametersOutput { + return o +} + +func (o EventConnectionAuthParametersOauthClientParametersOutput) ToEventConnectionAuthParametersOauthClientParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthClientParametersOutput { + return o +} + +func (o EventConnectionAuthParametersOauthClientParametersOutput) ToEventConnectionAuthParametersOauthClientParametersPtrOutput() EventConnectionAuthParametersOauthClientParametersPtrOutput { + return o.ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersOauthClientParametersOutput) ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthClientParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParametersOauthClientParameters) *EventConnectionAuthParametersOauthClientParameters { + return &v + }).(EventConnectionAuthParametersOauthClientParametersPtrOutput) +} + +// The client ID for the credentials to use for authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthClientParametersOutput) ClientId() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthClientParameters) string { return v.ClientId }).(pulumi.StringOutput) +} + +// The client secret for the credentials to use for authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthClientParametersOutput) ClientSecret() pulumi.StringOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthClientParameters) string { return v.ClientSecret }).(pulumi.StringOutput) +} + +type EventConnectionAuthParametersOauthClientParametersPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthClientParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersOauthClientParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthClientParametersPtrOutput) ToEventConnectionAuthParametersOauthClientParametersPtrOutput() EventConnectionAuthParametersOauthClientParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersOauthClientParametersPtrOutput) ToEventConnectionAuthParametersOauthClientParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthClientParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersOauthClientParametersPtrOutput) Elem() EventConnectionAuthParametersOauthClientParametersOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthClientParameters) EventConnectionAuthParametersOauthClientParameters { + if v != nil { + return *v + } + var ret EventConnectionAuthParametersOauthClientParameters + return ret + }).(EventConnectionAuthParametersOauthClientParametersOutput) +} + +// The client ID for the credentials to use for authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthClientParametersPtrOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthClientParameters) *string { + if v == nil { + return nil + } + return &v.ClientId + }).(pulumi.StringPtrOutput) +} + +// The client secret for the credentials to use for authorization. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthClientParametersPtrOutput) ClientSecret() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthClientParameters) *string { + if v == nil { + return nil + } + return &v.ClientSecret + }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParameters struct { + // Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Bodies []EventConnectionAuthParametersOauthOauthHttpParametersBody `pulumi:"bodies"` + // Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Headers []EventConnectionAuthParametersOauthOauthHttpParametersHeader `pulumi:"headers"` + // Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + QueryStrings []EventConnectionAuthParametersOauthOauthHttpParametersQueryString `pulumi:"queryStrings"` +} + +// EventConnectionAuthParametersOauthOauthHttpParametersInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersArgs and EventConnectionAuthParametersOauthOauthHttpParametersOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersArgs{...} +type EventConnectionAuthParametersOauthOauthHttpParametersInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersOutput() EventConnectionAuthParametersOauthOauthHttpParametersOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersArgs struct { + // Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Bodies EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayInput `pulumi:"bodies"` + // Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + Headers EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayInput `pulumi:"headers"` + // Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: + QueryStrings EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayInput `pulumi:"queryStrings"` +} + +func (EventConnectionAuthParametersOauthOauthHttpParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParameters)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersOutput() EventConnectionAuthParametersOauthOauthHttpParametersOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersOutput) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutput() EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersOutput).ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(ctx) +} + +// EventConnectionAuthParametersOauthOauthHttpParametersPtrInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersArgs, EventConnectionAuthParametersOauthOauthHttpParametersPtr and EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersPtrInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersArgs{...} +// +// or: +// +// nil +type EventConnectionAuthParametersOauthOauthHttpParametersPtrInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutput() EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput +} + +type eventConnectionAuthParametersOauthOauthHttpParametersPtrType EventConnectionAuthParametersOauthOauthHttpParametersArgs + +func EventConnectionAuthParametersOauthOauthHttpParametersPtr(v *EventConnectionAuthParametersOauthOauthHttpParametersArgs) EventConnectionAuthParametersOauthOauthHttpParametersPtrInput { + return (*eventConnectionAuthParametersOauthOauthHttpParametersPtrType)(v) +} + +func (*eventConnectionAuthParametersOauthOauthHttpParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersOauthOauthHttpParameters)(nil)).Elem() +} + +func (i *eventConnectionAuthParametersOauthOauthHttpParametersPtrType) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutput() EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(context.Background()) +} + +func (i *eventConnectionAuthParametersOauthOauthHttpParametersPtrType) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersOutput() EventConnectionAuthParametersOauthOauthHttpParametersOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutput() EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return o.ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(context.Background()) +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventConnectionAuthParametersOauthOauthHttpParameters) *EventConnectionAuthParametersOauthOauthHttpParameters { + return &v + }).(EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) +} + +// Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) Bodies() EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParameters) []EventConnectionAuthParametersOauthOauthHttpParametersBody { + return v.Bodies + }).(EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) +} + +// Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) Headers() EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParameters) []EventConnectionAuthParametersOauthOauthHttpParametersHeader { + return v.Headers + }).(EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) +} + +// Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersOauthOauthHttpParametersOutput) QueryStrings() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParameters) []EventConnectionAuthParametersOauthOauthHttpParametersQueryString { + return v.QueryStrings + }).(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventConnectionAuthParametersOauthOauthHttpParameters)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutput() EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersPtrOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) Elem() EventConnectionAuthParametersOauthOauthHttpParametersOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthOauthHttpParameters) EventConnectionAuthParametersOauthOauthHttpParameters { + if v != nil { + return *v + } + var ret EventConnectionAuthParametersOauthOauthHttpParameters + return ret + }).(EventConnectionAuthParametersOauthOauthHttpParametersOutput) +} + +// Contains additional body string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) Bodies() EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthOauthHttpParameters) []EventConnectionAuthParametersOauthOauthHttpParametersBody { + if v == nil { + return nil + } + return v.Bodies + }).(EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) +} + +// Contains additional header parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) Headers() EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthOauthHttpParameters) []EventConnectionAuthParametersOauthOauthHttpParametersHeader { + if v == nil { + return nil + } + return v.Headers + }).(EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) +} + +// Contains additional query string parameters for the connection. You can include up to 100 additional body string parameters per request. Each additional parameter counts towards the event payload size, which cannot exceed 64 KB. Each parameter can contain the following: +func (o EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput) QueryStrings() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput { + return o.ApplyT(func(v *EventConnectionAuthParametersOauthOauthHttpParameters) []EventConnectionAuthParametersOauthOauthHttpParametersQueryString { + if v == nil { + return nil + } + return v.QueryStrings + }).(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersBody struct { + // Specified whether the value is secret. + IsValueSecret *bool `pulumi:"isValueSecret"` + // Header Name. + Key *string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value *string `pulumi:"value"` +} + +// EventConnectionAuthParametersOauthOauthHttpParametersBodyInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs and EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersBodyInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs{...} +type EventConnectionAuthParametersOauthOauthHttpParametersBodyInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutput() EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs struct { + // Specified whether the value is secret. + IsValueSecret pulumi.BoolPtrInput `pulumi:"isValueSecret"` + // Header Name. + Key pulumi.StringPtrInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersBody)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutput() EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) +} + +// EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersBodyArray and EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersBodyArray{ EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs{...} } +type EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersBodyArray []EventConnectionAuthParametersOauthOauthHttpParametersBodyInput + +func (EventConnectionAuthParametersOauthOauthHttpParametersBodyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersOauthOauthHttpParametersBody)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersBodyArray) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersBodyArray) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersBody)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutput() EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput { + return o +} + +// Specified whether the value is secret. +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) IsValueSecret() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersBody) *bool { return v.IsValueSecret }).(pulumi.BoolPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersBody) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersBody) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersOauthOauthHttpParametersBody)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput) Index(i pulumi.IntInput) EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventConnectionAuthParametersOauthOauthHttpParametersBody { + return vs[0].([]EventConnectionAuthParametersOauthOauthHttpParametersBody)[vs[1].(int)] + }).(EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersHeader struct { + // Specified whether the value is secret. + IsValueSecret *bool `pulumi:"isValueSecret"` + // Header Name. + Key *string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value *string `pulumi:"value"` +} + +// EventConnectionAuthParametersOauthOauthHttpParametersHeaderInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs and EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersHeaderInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs{...} +type EventConnectionAuthParametersOauthOauthHttpParametersHeaderInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput() EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs struct { + // Specified whether the value is secret. + IsValueSecret pulumi.BoolPtrInput `pulumi:"isValueSecret"` + // Header Name. + Key pulumi.StringPtrInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersHeader)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput() EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) +} + +// EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray and EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray{ EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs{...} } +type EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray []EventConnectionAuthParametersOauthOauthHttpParametersHeaderInput + +func (EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersOauthOauthHttpParametersHeader)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersHeader)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput() EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput { + return o +} + +// Specified whether the value is secret. +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) IsValueSecret() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersHeader) *bool { return v.IsValueSecret }).(pulumi.BoolPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersHeader) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersOauthOauthHttpParametersHeader)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput) Index(i pulumi.IntInput) EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventConnectionAuthParametersOauthOauthHttpParametersHeader { + return vs[0].([]EventConnectionAuthParametersOauthOauthHttpParametersHeader)[vs[1].(int)] + }).(EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersQueryString struct { + // Specified whether the value is secret. + IsValueSecret *bool `pulumi:"isValueSecret"` + // Header Name. + Key *string `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value *string `pulumi:"value"` +} + +// EventConnectionAuthParametersOauthOauthHttpParametersQueryStringInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs and EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersQueryStringInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs{...} +type EventConnectionAuthParametersOauthOauthHttpParametersQueryStringInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs struct { + // Specified whether the value is secret. + IsValueSecret pulumi.BoolPtrInput `pulumi:"isValueSecret"` + // Header Name. + Key pulumi.StringPtrInput `pulumi:"key"` + // Header Value. Created and stored in AWS Secrets Manager. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersQueryString)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) +} + +// EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayInput is an input type that accepts EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray and EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput values. +// You can construct a concrete instance of `EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayInput` via: +// +// EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray{ EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs{...} } +type EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayInput interface { + pulumi.Input + + ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput + ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutputWithContext(context.Context) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput +} + +type EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray []EventConnectionAuthParametersOauthOauthHttpParametersQueryStringInput + +func (EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersOauthOauthHttpParametersQueryString)(nil)).Elem() +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput { + return i.ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutputWithContext(context.Background()) +} + +func (i EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersQueryString)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput { + return o +} + +// Specified whether the value is secret. +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) IsValueSecret() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersQueryString) *bool { return v.IsValueSecret }).(pulumi.BoolPtrOutput) +} + +// Header Name. +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersQueryString) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Header Value. Created and stored in AWS Secrets Manager. +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventConnectionAuthParametersOauthOauthHttpParametersQueryString) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput struct{ *pulumi.OutputState } + +func (EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventConnectionAuthParametersOauthOauthHttpParametersQueryString)(nil)).Elem() +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput() EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) ToEventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutputWithContext(ctx context.Context) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput { + return o +} + +func (o EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput) Index(i pulumi.IntInput) EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventConnectionAuthParametersOauthOauthHttpParametersQueryString { + return vs[0].([]EventConnectionAuthParametersOauthOauthHttpParametersQueryString)[vs[1].(int)] + }).(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput) +} + +type EventEndpointEventBus struct { + // The ARN of the event bus the endpoint is associated with. + EventBusArn string `pulumi:"eventBusArn"` +} + +// EventEndpointEventBusInput is an input type that accepts EventEndpointEventBusArgs and EventEndpointEventBusOutput values. +// You can construct a concrete instance of `EventEndpointEventBusInput` via: +// +// EventEndpointEventBusArgs{...} +type EventEndpointEventBusInput interface { + pulumi.Input + + ToEventEndpointEventBusOutput() EventEndpointEventBusOutput + ToEventEndpointEventBusOutputWithContext(context.Context) EventEndpointEventBusOutput +} + +type EventEndpointEventBusArgs struct { + // The ARN of the event bus the endpoint is associated with. + EventBusArn pulumi.StringInput `pulumi:"eventBusArn"` +} + +func (EventEndpointEventBusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointEventBus)(nil)).Elem() +} + +func (i EventEndpointEventBusArgs) ToEventEndpointEventBusOutput() EventEndpointEventBusOutput { + return i.ToEventEndpointEventBusOutputWithContext(context.Background()) +} + +func (i EventEndpointEventBusArgs) ToEventEndpointEventBusOutputWithContext(ctx context.Context) EventEndpointEventBusOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointEventBusOutput) +} + +// EventEndpointEventBusArrayInput is an input type that accepts EventEndpointEventBusArray and EventEndpointEventBusArrayOutput values. +// You can construct a concrete instance of `EventEndpointEventBusArrayInput` via: +// +// EventEndpointEventBusArray{ EventEndpointEventBusArgs{...} } +type EventEndpointEventBusArrayInput interface { + pulumi.Input + + ToEventEndpointEventBusArrayOutput() EventEndpointEventBusArrayOutput + ToEventEndpointEventBusArrayOutputWithContext(context.Context) EventEndpointEventBusArrayOutput +} + +type EventEndpointEventBusArray []EventEndpointEventBusInput + +func (EventEndpointEventBusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventEndpointEventBus)(nil)).Elem() +} + +func (i EventEndpointEventBusArray) ToEventEndpointEventBusArrayOutput() EventEndpointEventBusArrayOutput { + return i.ToEventEndpointEventBusArrayOutputWithContext(context.Background()) +} + +func (i EventEndpointEventBusArray) ToEventEndpointEventBusArrayOutputWithContext(ctx context.Context) EventEndpointEventBusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointEventBusArrayOutput) +} + +type EventEndpointEventBusOutput struct{ *pulumi.OutputState } + +func (EventEndpointEventBusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointEventBus)(nil)).Elem() +} + +func (o EventEndpointEventBusOutput) ToEventEndpointEventBusOutput() EventEndpointEventBusOutput { + return o +} + +func (o EventEndpointEventBusOutput) ToEventEndpointEventBusOutputWithContext(ctx context.Context) EventEndpointEventBusOutput { + return o +} + +// The ARN of the event bus the endpoint is associated with. +func (o EventEndpointEventBusOutput) EventBusArn() pulumi.StringOutput { + return o.ApplyT(func(v EventEndpointEventBus) string { return v.EventBusArn }).(pulumi.StringOutput) +} + +type EventEndpointEventBusArrayOutput struct{ *pulumi.OutputState } + +func (EventEndpointEventBusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventEndpointEventBus)(nil)).Elem() +} + +func (o EventEndpointEventBusArrayOutput) ToEventEndpointEventBusArrayOutput() EventEndpointEventBusArrayOutput { + return o +} + +func (o EventEndpointEventBusArrayOutput) ToEventEndpointEventBusArrayOutputWithContext(ctx context.Context) EventEndpointEventBusArrayOutput { + return o +} + +func (o EventEndpointEventBusArrayOutput) Index(i pulumi.IntInput) EventEndpointEventBusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventEndpointEventBus { + return vs[0].([]EventEndpointEventBus)[vs[1].(int)] + }).(EventEndpointEventBusOutput) +} + +type EventEndpointReplicationConfig struct { + // The state of event replication. Valid values: `ENABLED`, `DISABLED`. The default state is `ENABLED`, which means you must supply a `roleArn`. If you don't have a `roleArn` or you don't want event replication enabled, set `state` to `DISABLED`. + State *string `pulumi:"state"` +} + +// EventEndpointReplicationConfigInput is an input type that accepts EventEndpointReplicationConfigArgs and EventEndpointReplicationConfigOutput values. +// You can construct a concrete instance of `EventEndpointReplicationConfigInput` via: +// +// EventEndpointReplicationConfigArgs{...} +type EventEndpointReplicationConfigInput interface { + pulumi.Input + + ToEventEndpointReplicationConfigOutput() EventEndpointReplicationConfigOutput + ToEventEndpointReplicationConfigOutputWithContext(context.Context) EventEndpointReplicationConfigOutput +} + +type EventEndpointReplicationConfigArgs struct { + // The state of event replication. Valid values: `ENABLED`, `DISABLED`. The default state is `ENABLED`, which means you must supply a `roleArn`. If you don't have a `roleArn` or you don't want event replication enabled, set `state` to `DISABLED`. + State pulumi.StringPtrInput `pulumi:"state"` +} + +func (EventEndpointReplicationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointReplicationConfig)(nil)).Elem() +} + +func (i EventEndpointReplicationConfigArgs) ToEventEndpointReplicationConfigOutput() EventEndpointReplicationConfigOutput { + return i.ToEventEndpointReplicationConfigOutputWithContext(context.Background()) +} + +func (i EventEndpointReplicationConfigArgs) ToEventEndpointReplicationConfigOutputWithContext(ctx context.Context) EventEndpointReplicationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointReplicationConfigOutput) +} + +func (i EventEndpointReplicationConfigArgs) ToEventEndpointReplicationConfigPtrOutput() EventEndpointReplicationConfigPtrOutput { + return i.ToEventEndpointReplicationConfigPtrOutputWithContext(context.Background()) +} + +func (i EventEndpointReplicationConfigArgs) ToEventEndpointReplicationConfigPtrOutputWithContext(ctx context.Context) EventEndpointReplicationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointReplicationConfigOutput).ToEventEndpointReplicationConfigPtrOutputWithContext(ctx) +} + +// EventEndpointReplicationConfigPtrInput is an input type that accepts EventEndpointReplicationConfigArgs, EventEndpointReplicationConfigPtr and EventEndpointReplicationConfigPtrOutput values. +// You can construct a concrete instance of `EventEndpointReplicationConfigPtrInput` via: +// +// EventEndpointReplicationConfigArgs{...} +// +// or: +// +// nil +type EventEndpointReplicationConfigPtrInput interface { + pulumi.Input + + ToEventEndpointReplicationConfigPtrOutput() EventEndpointReplicationConfigPtrOutput + ToEventEndpointReplicationConfigPtrOutputWithContext(context.Context) EventEndpointReplicationConfigPtrOutput +} + +type eventEndpointReplicationConfigPtrType EventEndpointReplicationConfigArgs + +func EventEndpointReplicationConfigPtr(v *EventEndpointReplicationConfigArgs) EventEndpointReplicationConfigPtrInput { + return (*eventEndpointReplicationConfigPtrType)(v) +} + +func (*eventEndpointReplicationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointReplicationConfig)(nil)).Elem() +} + +func (i *eventEndpointReplicationConfigPtrType) ToEventEndpointReplicationConfigPtrOutput() EventEndpointReplicationConfigPtrOutput { + return i.ToEventEndpointReplicationConfigPtrOutputWithContext(context.Background()) +} + +func (i *eventEndpointReplicationConfigPtrType) ToEventEndpointReplicationConfigPtrOutputWithContext(ctx context.Context) EventEndpointReplicationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointReplicationConfigPtrOutput) +} + +type EventEndpointReplicationConfigOutput struct{ *pulumi.OutputState } + +func (EventEndpointReplicationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointReplicationConfig)(nil)).Elem() +} + +func (o EventEndpointReplicationConfigOutput) ToEventEndpointReplicationConfigOutput() EventEndpointReplicationConfigOutput { + return o +} + +func (o EventEndpointReplicationConfigOutput) ToEventEndpointReplicationConfigOutputWithContext(ctx context.Context) EventEndpointReplicationConfigOutput { + return o +} + +func (o EventEndpointReplicationConfigOutput) ToEventEndpointReplicationConfigPtrOutput() EventEndpointReplicationConfigPtrOutput { + return o.ToEventEndpointReplicationConfigPtrOutputWithContext(context.Background()) +} + +func (o EventEndpointReplicationConfigOutput) ToEventEndpointReplicationConfigPtrOutputWithContext(ctx context.Context) EventEndpointReplicationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventEndpointReplicationConfig) *EventEndpointReplicationConfig { + return &v + }).(EventEndpointReplicationConfigPtrOutput) +} + +// The state of event replication. Valid values: `ENABLED`, `DISABLED`. The default state is `ENABLED`, which means you must supply a `roleArn`. If you don't have a `roleArn` or you don't want event replication enabled, set `state` to `DISABLED`. +func (o EventEndpointReplicationConfigOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventEndpointReplicationConfig) *string { return v.State }).(pulumi.StringPtrOutput) +} + +type EventEndpointReplicationConfigPtrOutput struct{ *pulumi.OutputState } + +func (EventEndpointReplicationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointReplicationConfig)(nil)).Elem() +} + +func (o EventEndpointReplicationConfigPtrOutput) ToEventEndpointReplicationConfigPtrOutput() EventEndpointReplicationConfigPtrOutput { + return o +} + +func (o EventEndpointReplicationConfigPtrOutput) ToEventEndpointReplicationConfigPtrOutputWithContext(ctx context.Context) EventEndpointReplicationConfigPtrOutput { + return o +} + +func (o EventEndpointReplicationConfigPtrOutput) Elem() EventEndpointReplicationConfigOutput { + return o.ApplyT(func(v *EventEndpointReplicationConfig) EventEndpointReplicationConfig { + if v != nil { + return *v + } + var ret EventEndpointReplicationConfig + return ret + }).(EventEndpointReplicationConfigOutput) +} + +// The state of event replication. Valid values: `ENABLED`, `DISABLED`. The default state is `ENABLED`, which means you must supply a `roleArn`. If you don't have a `roleArn` or you don't want event replication enabled, set `state` to `DISABLED`. +func (o EventEndpointReplicationConfigPtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventEndpointReplicationConfig) *string { + if v == nil { + return nil + } + return v.State + }).(pulumi.StringPtrOutput) +} + +type EventEndpointRoutingConfig struct { + // Parameters used for failover. This includes what triggers failover and what happens when it's triggered. Documented below. + FailoverConfig EventEndpointRoutingConfigFailoverConfig `pulumi:"failoverConfig"` +} + +// EventEndpointRoutingConfigInput is an input type that accepts EventEndpointRoutingConfigArgs and EventEndpointRoutingConfigOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigInput` via: +// +// EventEndpointRoutingConfigArgs{...} +type EventEndpointRoutingConfigInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigOutput() EventEndpointRoutingConfigOutput + ToEventEndpointRoutingConfigOutputWithContext(context.Context) EventEndpointRoutingConfigOutput +} + +type EventEndpointRoutingConfigArgs struct { + // Parameters used for failover. This includes what triggers failover and what happens when it's triggered. Documented below. + FailoverConfig EventEndpointRoutingConfigFailoverConfigInput `pulumi:"failoverConfig"` +} + +func (EventEndpointRoutingConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfig)(nil)).Elem() +} + +func (i EventEndpointRoutingConfigArgs) ToEventEndpointRoutingConfigOutput() EventEndpointRoutingConfigOutput { + return i.ToEventEndpointRoutingConfigOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigArgs) ToEventEndpointRoutingConfigOutputWithContext(ctx context.Context) EventEndpointRoutingConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigOutput) +} + +func (i EventEndpointRoutingConfigArgs) ToEventEndpointRoutingConfigPtrOutput() EventEndpointRoutingConfigPtrOutput { + return i.ToEventEndpointRoutingConfigPtrOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigArgs) ToEventEndpointRoutingConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigOutput).ToEventEndpointRoutingConfigPtrOutputWithContext(ctx) +} + +// EventEndpointRoutingConfigPtrInput is an input type that accepts EventEndpointRoutingConfigArgs, EventEndpointRoutingConfigPtr and EventEndpointRoutingConfigPtrOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigPtrInput` via: +// +// EventEndpointRoutingConfigArgs{...} +// +// or: +// +// nil +type EventEndpointRoutingConfigPtrInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigPtrOutput() EventEndpointRoutingConfigPtrOutput + ToEventEndpointRoutingConfigPtrOutputWithContext(context.Context) EventEndpointRoutingConfigPtrOutput +} + +type eventEndpointRoutingConfigPtrType EventEndpointRoutingConfigArgs + +func EventEndpointRoutingConfigPtr(v *EventEndpointRoutingConfigArgs) EventEndpointRoutingConfigPtrInput { + return (*eventEndpointRoutingConfigPtrType)(v) +} + +func (*eventEndpointRoutingConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfig)(nil)).Elem() +} + +func (i *eventEndpointRoutingConfigPtrType) ToEventEndpointRoutingConfigPtrOutput() EventEndpointRoutingConfigPtrOutput { + return i.ToEventEndpointRoutingConfigPtrOutputWithContext(context.Background()) +} + +func (i *eventEndpointRoutingConfigPtrType) ToEventEndpointRoutingConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigPtrOutput) +} + +type EventEndpointRoutingConfigOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfig)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigOutput) ToEventEndpointRoutingConfigOutput() EventEndpointRoutingConfigOutput { + return o +} + +func (o EventEndpointRoutingConfigOutput) ToEventEndpointRoutingConfigOutputWithContext(ctx context.Context) EventEndpointRoutingConfigOutput { + return o +} + +func (o EventEndpointRoutingConfigOutput) ToEventEndpointRoutingConfigPtrOutput() EventEndpointRoutingConfigPtrOutput { + return o.ToEventEndpointRoutingConfigPtrOutputWithContext(context.Background()) +} + +func (o EventEndpointRoutingConfigOutput) ToEventEndpointRoutingConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventEndpointRoutingConfig) *EventEndpointRoutingConfig { + return &v + }).(EventEndpointRoutingConfigPtrOutput) +} + +// Parameters used for failover. This includes what triggers failover and what happens when it's triggered. Documented below. +func (o EventEndpointRoutingConfigOutput) FailoverConfig() EventEndpointRoutingConfigFailoverConfigOutput { + return o.ApplyT(func(v EventEndpointRoutingConfig) EventEndpointRoutingConfigFailoverConfig { return v.FailoverConfig }).(EventEndpointRoutingConfigFailoverConfigOutput) +} + +type EventEndpointRoutingConfigPtrOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfig)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigPtrOutput) ToEventEndpointRoutingConfigPtrOutput() EventEndpointRoutingConfigPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigPtrOutput) ToEventEndpointRoutingConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigPtrOutput) Elem() EventEndpointRoutingConfigOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfig) EventEndpointRoutingConfig { + if v != nil { + return *v + } + var ret EventEndpointRoutingConfig + return ret + }).(EventEndpointRoutingConfigOutput) +} + +// Parameters used for failover. This includes what triggers failover and what happens when it's triggered. Documented below. +func (o EventEndpointRoutingConfigPtrOutput) FailoverConfig() EventEndpointRoutingConfigFailoverConfigPtrOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfig) *EventEndpointRoutingConfigFailoverConfig { + if v == nil { + return nil + } + return &v.FailoverConfig + }).(EventEndpointRoutingConfigFailoverConfigPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfig struct { + // Parameters used for the primary Region. Documented below. + Primary EventEndpointRoutingConfigFailoverConfigPrimary `pulumi:"primary"` + // Parameters used for the secondary Region, the Region that events are routed to when failover is triggered or event replication is enabled. Documented below. + Secondary EventEndpointRoutingConfigFailoverConfigSecondary `pulumi:"secondary"` +} + +// EventEndpointRoutingConfigFailoverConfigInput is an input type that accepts EventEndpointRoutingConfigFailoverConfigArgs and EventEndpointRoutingConfigFailoverConfigOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigFailoverConfigInput` via: +// +// EventEndpointRoutingConfigFailoverConfigArgs{...} +type EventEndpointRoutingConfigFailoverConfigInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigFailoverConfigOutput() EventEndpointRoutingConfigFailoverConfigOutput + ToEventEndpointRoutingConfigFailoverConfigOutputWithContext(context.Context) EventEndpointRoutingConfigFailoverConfigOutput +} + +type EventEndpointRoutingConfigFailoverConfigArgs struct { + // Parameters used for the primary Region. Documented below. + Primary EventEndpointRoutingConfigFailoverConfigPrimaryInput `pulumi:"primary"` + // Parameters used for the secondary Region, the Region that events are routed to when failover is triggered or event replication is enabled. Documented below. + Secondary EventEndpointRoutingConfigFailoverConfigSecondaryInput `pulumi:"secondary"` +} + +func (EventEndpointRoutingConfigFailoverConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfig)(nil)).Elem() +} + +func (i EventEndpointRoutingConfigFailoverConfigArgs) ToEventEndpointRoutingConfigFailoverConfigOutput() EventEndpointRoutingConfigFailoverConfigOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigFailoverConfigArgs) ToEventEndpointRoutingConfigFailoverConfigOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigOutput) +} + +func (i EventEndpointRoutingConfigFailoverConfigArgs) ToEventEndpointRoutingConfigFailoverConfigPtrOutput() EventEndpointRoutingConfigFailoverConfigPtrOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigFailoverConfigArgs) ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigOutput).ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(ctx) +} + +// EventEndpointRoutingConfigFailoverConfigPtrInput is an input type that accepts EventEndpointRoutingConfigFailoverConfigArgs, EventEndpointRoutingConfigFailoverConfigPtr and EventEndpointRoutingConfigFailoverConfigPtrOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigFailoverConfigPtrInput` via: +// +// EventEndpointRoutingConfigFailoverConfigArgs{...} +// +// or: +// +// nil +type EventEndpointRoutingConfigFailoverConfigPtrInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigFailoverConfigPtrOutput() EventEndpointRoutingConfigFailoverConfigPtrOutput + ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(context.Context) EventEndpointRoutingConfigFailoverConfigPtrOutput +} + +type eventEndpointRoutingConfigFailoverConfigPtrType EventEndpointRoutingConfigFailoverConfigArgs + +func EventEndpointRoutingConfigFailoverConfigPtr(v *EventEndpointRoutingConfigFailoverConfigArgs) EventEndpointRoutingConfigFailoverConfigPtrInput { + return (*eventEndpointRoutingConfigFailoverConfigPtrType)(v) +} + +func (*eventEndpointRoutingConfigFailoverConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfigFailoverConfig)(nil)).Elem() +} + +func (i *eventEndpointRoutingConfigFailoverConfigPtrType) ToEventEndpointRoutingConfigFailoverConfigPtrOutput() EventEndpointRoutingConfigFailoverConfigPtrOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(context.Background()) +} + +func (i *eventEndpointRoutingConfigFailoverConfigPtrType) ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigFailoverConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfig)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigFailoverConfigOutput) ToEventEndpointRoutingConfigFailoverConfigOutput() EventEndpointRoutingConfigFailoverConfigOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigOutput) ToEventEndpointRoutingConfigFailoverConfigOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigOutput) ToEventEndpointRoutingConfigFailoverConfigPtrOutput() EventEndpointRoutingConfigFailoverConfigPtrOutput { + return o.ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(context.Background()) +} + +func (o EventEndpointRoutingConfigFailoverConfigOutput) ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventEndpointRoutingConfigFailoverConfig) *EventEndpointRoutingConfigFailoverConfig { + return &v + }).(EventEndpointRoutingConfigFailoverConfigPtrOutput) +} + +// Parameters used for the primary Region. Documented below. +func (o EventEndpointRoutingConfigFailoverConfigOutput) Primary() EventEndpointRoutingConfigFailoverConfigPrimaryOutput { + return o.ApplyT(func(v EventEndpointRoutingConfigFailoverConfig) EventEndpointRoutingConfigFailoverConfigPrimary { + return v.Primary + }).(EventEndpointRoutingConfigFailoverConfigPrimaryOutput) +} + +// Parameters used for the secondary Region, the Region that events are routed to when failover is triggered or event replication is enabled. Documented below. +func (o EventEndpointRoutingConfigFailoverConfigOutput) Secondary() EventEndpointRoutingConfigFailoverConfigSecondaryOutput { + return o.ApplyT(func(v EventEndpointRoutingConfigFailoverConfig) EventEndpointRoutingConfigFailoverConfigSecondary { + return v.Secondary + }).(EventEndpointRoutingConfigFailoverConfigSecondaryOutput) +} + +type EventEndpointRoutingConfigFailoverConfigPtrOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigFailoverConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfigFailoverConfig)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigFailoverConfigPtrOutput) ToEventEndpointRoutingConfigFailoverConfigPtrOutput() EventEndpointRoutingConfigFailoverConfigPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigPtrOutput) ToEventEndpointRoutingConfigFailoverConfigPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigPtrOutput) Elem() EventEndpointRoutingConfigFailoverConfigOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfig) EventEndpointRoutingConfigFailoverConfig { + if v != nil { + return *v + } + var ret EventEndpointRoutingConfigFailoverConfig + return ret + }).(EventEndpointRoutingConfigFailoverConfigOutput) +} + +// Parameters used for the primary Region. Documented below. +func (o EventEndpointRoutingConfigFailoverConfigPtrOutput) Primary() EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfig) *EventEndpointRoutingConfigFailoverConfigPrimary { + if v == nil { + return nil + } + return &v.Primary + }).(EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) +} + +// Parameters used for the secondary Region, the Region that events are routed to when failover is triggered or event replication is enabled. Documented below. +func (o EventEndpointRoutingConfigFailoverConfigPtrOutput) Secondary() EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfig) *EventEndpointRoutingConfigFailoverConfigSecondary { + if v == nil { + return nil + } + return &v.Secondary + }).(EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigPrimary struct { + // The ARN of the health check used by the endpoint to determine whether failover is triggered. + HealthCheck *string `pulumi:"healthCheck"` +} + +// EventEndpointRoutingConfigFailoverConfigPrimaryInput is an input type that accepts EventEndpointRoutingConfigFailoverConfigPrimaryArgs and EventEndpointRoutingConfigFailoverConfigPrimaryOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigFailoverConfigPrimaryInput` via: +// +// EventEndpointRoutingConfigFailoverConfigPrimaryArgs{...} +type EventEndpointRoutingConfigFailoverConfigPrimaryInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigFailoverConfigPrimaryOutput() EventEndpointRoutingConfigFailoverConfigPrimaryOutput + ToEventEndpointRoutingConfigFailoverConfigPrimaryOutputWithContext(context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryOutput +} + +type EventEndpointRoutingConfigFailoverConfigPrimaryArgs struct { + // The ARN of the health check used by the endpoint to determine whether failover is triggered. + HealthCheck pulumi.StringPtrInput `pulumi:"healthCheck"` +} + +func (EventEndpointRoutingConfigFailoverConfigPrimaryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigPrimary)(nil)).Elem() +} + +func (i EventEndpointRoutingConfigFailoverConfigPrimaryArgs) ToEventEndpointRoutingConfigFailoverConfigPrimaryOutput() EventEndpointRoutingConfigFailoverConfigPrimaryOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigPrimaryOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigFailoverConfigPrimaryArgs) ToEventEndpointRoutingConfigFailoverConfigPrimaryOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigPrimaryOutput) +} + +func (i EventEndpointRoutingConfigFailoverConfigPrimaryArgs) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput() EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigFailoverConfigPrimaryArgs) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigPrimaryOutput).ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(ctx) +} + +// EventEndpointRoutingConfigFailoverConfigPrimaryPtrInput is an input type that accepts EventEndpointRoutingConfigFailoverConfigPrimaryArgs, EventEndpointRoutingConfigFailoverConfigPrimaryPtr and EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigFailoverConfigPrimaryPtrInput` via: +// +// EventEndpointRoutingConfigFailoverConfigPrimaryArgs{...} +// +// or: +// +// nil +type EventEndpointRoutingConfigFailoverConfigPrimaryPtrInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput() EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput + ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput +} + +type eventEndpointRoutingConfigFailoverConfigPrimaryPtrType EventEndpointRoutingConfigFailoverConfigPrimaryArgs + +func EventEndpointRoutingConfigFailoverConfigPrimaryPtr(v *EventEndpointRoutingConfigFailoverConfigPrimaryArgs) EventEndpointRoutingConfigFailoverConfigPrimaryPtrInput { + return (*eventEndpointRoutingConfigFailoverConfigPrimaryPtrType)(v) +} + +func (*eventEndpointRoutingConfigFailoverConfigPrimaryPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfigFailoverConfigPrimary)(nil)).Elem() +} + +func (i *eventEndpointRoutingConfigFailoverConfigPrimaryPtrType) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput() EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(context.Background()) +} + +func (i *eventEndpointRoutingConfigFailoverConfigPrimaryPtrType) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigPrimaryOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigFailoverConfigPrimaryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigPrimary)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryOutput) ToEventEndpointRoutingConfigFailoverConfigPrimaryOutput() EventEndpointRoutingConfigFailoverConfigPrimaryOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryOutput) ToEventEndpointRoutingConfigFailoverConfigPrimaryOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryOutput) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput() EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return o.ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(context.Background()) +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryOutput) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventEndpointRoutingConfigFailoverConfigPrimary) *EventEndpointRoutingConfigFailoverConfigPrimary { + return &v + }).(EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) +} + +// The ARN of the health check used by the endpoint to determine whether failover is triggered. +func (o EventEndpointRoutingConfigFailoverConfigPrimaryOutput) HealthCheck() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventEndpointRoutingConfigFailoverConfigPrimary) *string { return v.HealthCheck }).(pulumi.StringPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfigFailoverConfigPrimary)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput() EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) ToEventEndpointRoutingConfigFailoverConfigPrimaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) Elem() EventEndpointRoutingConfigFailoverConfigPrimaryOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfigPrimary) EventEndpointRoutingConfigFailoverConfigPrimary { + if v != nil { + return *v + } + var ret EventEndpointRoutingConfigFailoverConfigPrimary + return ret + }).(EventEndpointRoutingConfigFailoverConfigPrimaryOutput) +} + +// The ARN of the health check used by the endpoint to determine whether failover is triggered. +func (o EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput) HealthCheck() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfigPrimary) *string { + if v == nil { + return nil + } + return v.HealthCheck + }).(pulumi.StringPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigSecondary struct { + // The name of the secondary Region. + Route *string `pulumi:"route"` +} + +// EventEndpointRoutingConfigFailoverConfigSecondaryInput is an input type that accepts EventEndpointRoutingConfigFailoverConfigSecondaryArgs and EventEndpointRoutingConfigFailoverConfigSecondaryOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigFailoverConfigSecondaryInput` via: +// +// EventEndpointRoutingConfigFailoverConfigSecondaryArgs{...} +type EventEndpointRoutingConfigFailoverConfigSecondaryInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigFailoverConfigSecondaryOutput() EventEndpointRoutingConfigFailoverConfigSecondaryOutput + ToEventEndpointRoutingConfigFailoverConfigSecondaryOutputWithContext(context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryOutput +} + +type EventEndpointRoutingConfigFailoverConfigSecondaryArgs struct { + // The name of the secondary Region. + Route pulumi.StringPtrInput `pulumi:"route"` +} + +func (EventEndpointRoutingConfigFailoverConfigSecondaryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigSecondary)(nil)).Elem() +} + +func (i EventEndpointRoutingConfigFailoverConfigSecondaryArgs) ToEventEndpointRoutingConfigFailoverConfigSecondaryOutput() EventEndpointRoutingConfigFailoverConfigSecondaryOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigSecondaryOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigFailoverConfigSecondaryArgs) ToEventEndpointRoutingConfigFailoverConfigSecondaryOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigSecondaryOutput) +} + +func (i EventEndpointRoutingConfigFailoverConfigSecondaryArgs) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput() EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(context.Background()) +} + +func (i EventEndpointRoutingConfigFailoverConfigSecondaryArgs) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigSecondaryOutput).ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(ctx) +} + +// EventEndpointRoutingConfigFailoverConfigSecondaryPtrInput is an input type that accepts EventEndpointRoutingConfigFailoverConfigSecondaryArgs, EventEndpointRoutingConfigFailoverConfigSecondaryPtr and EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput values. +// You can construct a concrete instance of `EventEndpointRoutingConfigFailoverConfigSecondaryPtrInput` via: +// +// EventEndpointRoutingConfigFailoverConfigSecondaryArgs{...} +// +// or: +// +// nil +type EventEndpointRoutingConfigFailoverConfigSecondaryPtrInput interface { + pulumi.Input + + ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput() EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput + ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput +} + +type eventEndpointRoutingConfigFailoverConfigSecondaryPtrType EventEndpointRoutingConfigFailoverConfigSecondaryArgs + +func EventEndpointRoutingConfigFailoverConfigSecondaryPtr(v *EventEndpointRoutingConfigFailoverConfigSecondaryArgs) EventEndpointRoutingConfigFailoverConfigSecondaryPtrInput { + return (*eventEndpointRoutingConfigFailoverConfigSecondaryPtrType)(v) +} + +func (*eventEndpointRoutingConfigFailoverConfigSecondaryPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfigFailoverConfigSecondary)(nil)).Elem() +} + +func (i *eventEndpointRoutingConfigFailoverConfigSecondaryPtrType) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput() EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return i.ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(context.Background()) +} + +func (i *eventEndpointRoutingConfigFailoverConfigSecondaryPtrType) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigSecondaryOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigFailoverConfigSecondaryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigSecondary)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryOutput) ToEventEndpointRoutingConfigFailoverConfigSecondaryOutput() EventEndpointRoutingConfigFailoverConfigSecondaryOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryOutput) ToEventEndpointRoutingConfigFailoverConfigSecondaryOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryOutput) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput() EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return o.ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(context.Background()) +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryOutput) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventEndpointRoutingConfigFailoverConfigSecondary) *EventEndpointRoutingConfigFailoverConfigSecondary { + return &v + }).(EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) +} + +// The name of the secondary Region. +func (o EventEndpointRoutingConfigFailoverConfigSecondaryOutput) Route() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventEndpointRoutingConfigFailoverConfigSecondary) *string { return v.Route }).(pulumi.StringPtrOutput) +} + +type EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput struct{ *pulumi.OutputState } + +func (EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventEndpointRoutingConfigFailoverConfigSecondary)(nil)).Elem() +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput() EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) ToEventEndpointRoutingConfigFailoverConfigSecondaryPtrOutputWithContext(ctx context.Context) EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput { + return o +} + +func (o EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) Elem() EventEndpointRoutingConfigFailoverConfigSecondaryOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfigSecondary) EventEndpointRoutingConfigFailoverConfigSecondary { + if v != nil { + return *v + } + var ret EventEndpointRoutingConfigFailoverConfigSecondary + return ret + }).(EventEndpointRoutingConfigFailoverConfigSecondaryOutput) +} + +// The name of the secondary Region. +func (o EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput) Route() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventEndpointRoutingConfigFailoverConfigSecondary) *string { + if v == nil { + return nil + } + return v.Route + }).(pulumi.StringPtrOutput) +} + +type EventPermissionCondition struct { + // Key for the condition. Valid values: `aws:PrincipalOrgID`. + Key string `pulumi:"key"` + // Type of condition. Value values: `StringEquals`. + Type string `pulumi:"type"` + // Value for the key. + Value string `pulumi:"value"` +} + +// EventPermissionConditionInput is an input type that accepts EventPermissionConditionArgs and EventPermissionConditionOutput values. +// You can construct a concrete instance of `EventPermissionConditionInput` via: +// +// EventPermissionConditionArgs{...} +type EventPermissionConditionInput interface { + pulumi.Input + + ToEventPermissionConditionOutput() EventPermissionConditionOutput + ToEventPermissionConditionOutputWithContext(context.Context) EventPermissionConditionOutput +} + +type EventPermissionConditionArgs struct { + // Key for the condition. Valid values: `aws:PrincipalOrgID`. + Key pulumi.StringInput `pulumi:"key"` + // Type of condition. Value values: `StringEquals`. + Type pulumi.StringInput `pulumi:"type"` + // Value for the key. + Value pulumi.StringInput `pulumi:"value"` +} + +func (EventPermissionConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventPermissionCondition)(nil)).Elem() +} + +func (i EventPermissionConditionArgs) ToEventPermissionConditionOutput() EventPermissionConditionOutput { + return i.ToEventPermissionConditionOutputWithContext(context.Background()) +} + +func (i EventPermissionConditionArgs) ToEventPermissionConditionOutputWithContext(ctx context.Context) EventPermissionConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventPermissionConditionOutput) +} + +func (i EventPermissionConditionArgs) ToEventPermissionConditionPtrOutput() EventPermissionConditionPtrOutput { + return i.ToEventPermissionConditionPtrOutputWithContext(context.Background()) +} + +func (i EventPermissionConditionArgs) ToEventPermissionConditionPtrOutputWithContext(ctx context.Context) EventPermissionConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventPermissionConditionOutput).ToEventPermissionConditionPtrOutputWithContext(ctx) +} + +// EventPermissionConditionPtrInput is an input type that accepts EventPermissionConditionArgs, EventPermissionConditionPtr and EventPermissionConditionPtrOutput values. +// You can construct a concrete instance of `EventPermissionConditionPtrInput` via: +// +// EventPermissionConditionArgs{...} +// +// or: +// +// nil +type EventPermissionConditionPtrInput interface { + pulumi.Input + + ToEventPermissionConditionPtrOutput() EventPermissionConditionPtrOutput + ToEventPermissionConditionPtrOutputWithContext(context.Context) EventPermissionConditionPtrOutput +} + +type eventPermissionConditionPtrType EventPermissionConditionArgs + +func EventPermissionConditionPtr(v *EventPermissionConditionArgs) EventPermissionConditionPtrInput { + return (*eventPermissionConditionPtrType)(v) +} + +func (*eventPermissionConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventPermissionCondition)(nil)).Elem() +} + +func (i *eventPermissionConditionPtrType) ToEventPermissionConditionPtrOutput() EventPermissionConditionPtrOutput { + return i.ToEventPermissionConditionPtrOutputWithContext(context.Background()) +} + +func (i *eventPermissionConditionPtrType) ToEventPermissionConditionPtrOutputWithContext(ctx context.Context) EventPermissionConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventPermissionConditionPtrOutput) +} + +type EventPermissionConditionOutput struct{ *pulumi.OutputState } + +func (EventPermissionConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventPermissionCondition)(nil)).Elem() +} + +func (o EventPermissionConditionOutput) ToEventPermissionConditionOutput() EventPermissionConditionOutput { + return o +} + +func (o EventPermissionConditionOutput) ToEventPermissionConditionOutputWithContext(ctx context.Context) EventPermissionConditionOutput { + return o +} + +func (o EventPermissionConditionOutput) ToEventPermissionConditionPtrOutput() EventPermissionConditionPtrOutput { + return o.ToEventPermissionConditionPtrOutputWithContext(context.Background()) +} + +func (o EventPermissionConditionOutput) ToEventPermissionConditionPtrOutputWithContext(ctx context.Context) EventPermissionConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventPermissionCondition) *EventPermissionCondition { + return &v + }).(EventPermissionConditionPtrOutput) +} + +// Key for the condition. Valid values: `aws:PrincipalOrgID`. +func (o EventPermissionConditionOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v EventPermissionCondition) string { return v.Key }).(pulumi.StringOutput) +} + +// Type of condition. Value values: `StringEquals`. +func (o EventPermissionConditionOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v EventPermissionCondition) string { return v.Type }).(pulumi.StringOutput) +} + +// Value for the key. +func (o EventPermissionConditionOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v EventPermissionCondition) string { return v.Value }).(pulumi.StringOutput) +} + +type EventPermissionConditionPtrOutput struct{ *pulumi.OutputState } + +func (EventPermissionConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventPermissionCondition)(nil)).Elem() +} + +func (o EventPermissionConditionPtrOutput) ToEventPermissionConditionPtrOutput() EventPermissionConditionPtrOutput { + return o +} + +func (o EventPermissionConditionPtrOutput) ToEventPermissionConditionPtrOutputWithContext(ctx context.Context) EventPermissionConditionPtrOutput { + return o +} + +func (o EventPermissionConditionPtrOutput) Elem() EventPermissionConditionOutput { + return o.ApplyT(func(v *EventPermissionCondition) EventPermissionCondition { + if v != nil { + return *v + } + var ret EventPermissionCondition + return ret + }).(EventPermissionConditionOutput) +} + +// Key for the condition. Valid values: `aws:PrincipalOrgID`. +func (o EventPermissionConditionPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventPermissionCondition) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +// Type of condition. Value values: `StringEquals`. +func (o EventPermissionConditionPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventPermissionCondition) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// Value for the key. +func (o EventPermissionConditionPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventPermissionCondition) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type EventTargetBatchTarget struct { + // The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. + ArraySize *int `pulumi:"arraySize"` + // The number of times to attempt to retry, if the job fails. Valid values are 1 to 10. + JobAttempts *int `pulumi:"jobAttempts"` + // The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist. + JobDefinition string `pulumi:"jobDefinition"` + // The name to use for this execution of the job, if the target is an AWS Batch job. + JobName string `pulumi:"jobName"` +} + +// EventTargetBatchTargetInput is an input type that accepts EventTargetBatchTargetArgs and EventTargetBatchTargetOutput values. +// You can construct a concrete instance of `EventTargetBatchTargetInput` via: +// +// EventTargetBatchTargetArgs{...} +type EventTargetBatchTargetInput interface { + pulumi.Input + + ToEventTargetBatchTargetOutput() EventTargetBatchTargetOutput + ToEventTargetBatchTargetOutputWithContext(context.Context) EventTargetBatchTargetOutput +} + +type EventTargetBatchTargetArgs struct { + // The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. + ArraySize pulumi.IntPtrInput `pulumi:"arraySize"` + // The number of times to attempt to retry, if the job fails. Valid values are 1 to 10. + JobAttempts pulumi.IntPtrInput `pulumi:"jobAttempts"` + // The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist. + JobDefinition pulumi.StringInput `pulumi:"jobDefinition"` + // The name to use for this execution of the job, if the target is an AWS Batch job. + JobName pulumi.StringInput `pulumi:"jobName"` +} + +func (EventTargetBatchTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetBatchTarget)(nil)).Elem() +} + +func (i EventTargetBatchTargetArgs) ToEventTargetBatchTargetOutput() EventTargetBatchTargetOutput { + return i.ToEventTargetBatchTargetOutputWithContext(context.Background()) +} + +func (i EventTargetBatchTargetArgs) ToEventTargetBatchTargetOutputWithContext(ctx context.Context) EventTargetBatchTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetBatchTargetOutput) +} + +func (i EventTargetBatchTargetArgs) ToEventTargetBatchTargetPtrOutput() EventTargetBatchTargetPtrOutput { + return i.ToEventTargetBatchTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetBatchTargetArgs) ToEventTargetBatchTargetPtrOutputWithContext(ctx context.Context) EventTargetBatchTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetBatchTargetOutput).ToEventTargetBatchTargetPtrOutputWithContext(ctx) +} + +// EventTargetBatchTargetPtrInput is an input type that accepts EventTargetBatchTargetArgs, EventTargetBatchTargetPtr and EventTargetBatchTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetBatchTargetPtrInput` via: +// +// EventTargetBatchTargetArgs{...} +// +// or: +// +// nil +type EventTargetBatchTargetPtrInput interface { + pulumi.Input + + ToEventTargetBatchTargetPtrOutput() EventTargetBatchTargetPtrOutput + ToEventTargetBatchTargetPtrOutputWithContext(context.Context) EventTargetBatchTargetPtrOutput +} + +type eventTargetBatchTargetPtrType EventTargetBatchTargetArgs + +func EventTargetBatchTargetPtr(v *EventTargetBatchTargetArgs) EventTargetBatchTargetPtrInput { + return (*eventTargetBatchTargetPtrType)(v) +} + +func (*eventTargetBatchTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetBatchTarget)(nil)).Elem() +} + +func (i *eventTargetBatchTargetPtrType) ToEventTargetBatchTargetPtrOutput() EventTargetBatchTargetPtrOutput { + return i.ToEventTargetBatchTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetBatchTargetPtrType) ToEventTargetBatchTargetPtrOutputWithContext(ctx context.Context) EventTargetBatchTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetBatchTargetPtrOutput) +} + +type EventTargetBatchTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetBatchTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetBatchTarget)(nil)).Elem() +} + +func (o EventTargetBatchTargetOutput) ToEventTargetBatchTargetOutput() EventTargetBatchTargetOutput { + return o +} + +func (o EventTargetBatchTargetOutput) ToEventTargetBatchTargetOutputWithContext(ctx context.Context) EventTargetBatchTargetOutput { + return o +} + +func (o EventTargetBatchTargetOutput) ToEventTargetBatchTargetPtrOutput() EventTargetBatchTargetPtrOutput { + return o.ToEventTargetBatchTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetBatchTargetOutput) ToEventTargetBatchTargetPtrOutputWithContext(ctx context.Context) EventTargetBatchTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetBatchTarget) *EventTargetBatchTarget { + return &v + }).(EventTargetBatchTargetPtrOutput) +} + +// The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. +func (o EventTargetBatchTargetOutput) ArraySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetBatchTarget) *int { return v.ArraySize }).(pulumi.IntPtrOutput) +} + +// The number of times to attempt to retry, if the job fails. Valid values are 1 to 10. +func (o EventTargetBatchTargetOutput) JobAttempts() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetBatchTarget) *int { return v.JobAttempts }).(pulumi.IntPtrOutput) +} + +// The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist. +func (o EventTargetBatchTargetOutput) JobDefinition() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetBatchTarget) string { return v.JobDefinition }).(pulumi.StringOutput) +} + +// The name to use for this execution of the job, if the target is an AWS Batch job. +func (o EventTargetBatchTargetOutput) JobName() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetBatchTarget) string { return v.JobName }).(pulumi.StringOutput) +} + +type EventTargetBatchTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetBatchTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetBatchTarget)(nil)).Elem() +} + +func (o EventTargetBatchTargetPtrOutput) ToEventTargetBatchTargetPtrOutput() EventTargetBatchTargetPtrOutput { + return o +} + +func (o EventTargetBatchTargetPtrOutput) ToEventTargetBatchTargetPtrOutputWithContext(ctx context.Context) EventTargetBatchTargetPtrOutput { + return o +} + +func (o EventTargetBatchTargetPtrOutput) Elem() EventTargetBatchTargetOutput { + return o.ApplyT(func(v *EventTargetBatchTarget) EventTargetBatchTarget { + if v != nil { + return *v + } + var ret EventTargetBatchTarget + return ret + }).(EventTargetBatchTargetOutput) +} + +// The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. +func (o EventTargetBatchTargetPtrOutput) ArraySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventTargetBatchTarget) *int { + if v == nil { + return nil + } + return v.ArraySize + }).(pulumi.IntPtrOutput) +} + +// The number of times to attempt to retry, if the job fails. Valid values are 1 to 10. +func (o EventTargetBatchTargetPtrOutput) JobAttempts() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventTargetBatchTarget) *int { + if v == nil { + return nil + } + return v.JobAttempts + }).(pulumi.IntPtrOutput) +} + +// The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist. +func (o EventTargetBatchTargetPtrOutput) JobDefinition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetBatchTarget) *string { + if v == nil { + return nil + } + return &v.JobDefinition + }).(pulumi.StringPtrOutput) +} + +// The name to use for this execution of the job, if the target is an AWS Batch job. +func (o EventTargetBatchTargetPtrOutput) JobName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetBatchTarget) *string { + if v == nil { + return nil + } + return &v.JobName + }).(pulumi.StringPtrOutput) +} + +type EventTargetDeadLetterConfig struct { + // ARN of the SQS queue specified as the target for the dead-letter queue. + Arn *string `pulumi:"arn"` +} + +// EventTargetDeadLetterConfigInput is an input type that accepts EventTargetDeadLetterConfigArgs and EventTargetDeadLetterConfigOutput values. +// You can construct a concrete instance of `EventTargetDeadLetterConfigInput` via: +// +// EventTargetDeadLetterConfigArgs{...} +type EventTargetDeadLetterConfigInput interface { + pulumi.Input + + ToEventTargetDeadLetterConfigOutput() EventTargetDeadLetterConfigOutput + ToEventTargetDeadLetterConfigOutputWithContext(context.Context) EventTargetDeadLetterConfigOutput +} + +type EventTargetDeadLetterConfigArgs struct { + // ARN of the SQS queue specified as the target for the dead-letter queue. + Arn pulumi.StringPtrInput `pulumi:"arn"` +} + +func (EventTargetDeadLetterConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetDeadLetterConfig)(nil)).Elem() +} + +func (i EventTargetDeadLetterConfigArgs) ToEventTargetDeadLetterConfigOutput() EventTargetDeadLetterConfigOutput { + return i.ToEventTargetDeadLetterConfigOutputWithContext(context.Background()) +} + +func (i EventTargetDeadLetterConfigArgs) ToEventTargetDeadLetterConfigOutputWithContext(ctx context.Context) EventTargetDeadLetterConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetDeadLetterConfigOutput) +} + +func (i EventTargetDeadLetterConfigArgs) ToEventTargetDeadLetterConfigPtrOutput() EventTargetDeadLetterConfigPtrOutput { + return i.ToEventTargetDeadLetterConfigPtrOutputWithContext(context.Background()) +} + +func (i EventTargetDeadLetterConfigArgs) ToEventTargetDeadLetterConfigPtrOutputWithContext(ctx context.Context) EventTargetDeadLetterConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetDeadLetterConfigOutput).ToEventTargetDeadLetterConfigPtrOutputWithContext(ctx) +} + +// EventTargetDeadLetterConfigPtrInput is an input type that accepts EventTargetDeadLetterConfigArgs, EventTargetDeadLetterConfigPtr and EventTargetDeadLetterConfigPtrOutput values. +// You can construct a concrete instance of `EventTargetDeadLetterConfigPtrInput` via: +// +// EventTargetDeadLetterConfigArgs{...} +// +// or: +// +// nil +type EventTargetDeadLetterConfigPtrInput interface { + pulumi.Input + + ToEventTargetDeadLetterConfigPtrOutput() EventTargetDeadLetterConfigPtrOutput + ToEventTargetDeadLetterConfigPtrOutputWithContext(context.Context) EventTargetDeadLetterConfigPtrOutput +} + +type eventTargetDeadLetterConfigPtrType EventTargetDeadLetterConfigArgs + +func EventTargetDeadLetterConfigPtr(v *EventTargetDeadLetterConfigArgs) EventTargetDeadLetterConfigPtrInput { + return (*eventTargetDeadLetterConfigPtrType)(v) +} + +func (*eventTargetDeadLetterConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetDeadLetterConfig)(nil)).Elem() +} + +func (i *eventTargetDeadLetterConfigPtrType) ToEventTargetDeadLetterConfigPtrOutput() EventTargetDeadLetterConfigPtrOutput { + return i.ToEventTargetDeadLetterConfigPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetDeadLetterConfigPtrType) ToEventTargetDeadLetterConfigPtrOutputWithContext(ctx context.Context) EventTargetDeadLetterConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetDeadLetterConfigPtrOutput) +} + +type EventTargetDeadLetterConfigOutput struct{ *pulumi.OutputState } + +func (EventTargetDeadLetterConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetDeadLetterConfig)(nil)).Elem() +} + +func (o EventTargetDeadLetterConfigOutput) ToEventTargetDeadLetterConfigOutput() EventTargetDeadLetterConfigOutput { + return o +} + +func (o EventTargetDeadLetterConfigOutput) ToEventTargetDeadLetterConfigOutputWithContext(ctx context.Context) EventTargetDeadLetterConfigOutput { + return o +} + +func (o EventTargetDeadLetterConfigOutput) ToEventTargetDeadLetterConfigPtrOutput() EventTargetDeadLetterConfigPtrOutput { + return o.ToEventTargetDeadLetterConfigPtrOutputWithContext(context.Background()) +} + +func (o EventTargetDeadLetterConfigOutput) ToEventTargetDeadLetterConfigPtrOutputWithContext(ctx context.Context) EventTargetDeadLetterConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetDeadLetterConfig) *EventTargetDeadLetterConfig { + return &v + }).(EventTargetDeadLetterConfigPtrOutput) +} + +// ARN of the SQS queue specified as the target for the dead-letter queue. +func (o EventTargetDeadLetterConfigOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetDeadLetterConfig) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +type EventTargetDeadLetterConfigPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetDeadLetterConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetDeadLetterConfig)(nil)).Elem() +} + +func (o EventTargetDeadLetterConfigPtrOutput) ToEventTargetDeadLetterConfigPtrOutput() EventTargetDeadLetterConfigPtrOutput { + return o +} + +func (o EventTargetDeadLetterConfigPtrOutput) ToEventTargetDeadLetterConfigPtrOutputWithContext(ctx context.Context) EventTargetDeadLetterConfigPtrOutput { + return o +} + +func (o EventTargetDeadLetterConfigPtrOutput) Elem() EventTargetDeadLetterConfigOutput { + return o.ApplyT(func(v *EventTargetDeadLetterConfig) EventTargetDeadLetterConfig { + if v != nil { + return *v + } + var ret EventTargetDeadLetterConfig + return ret + }).(EventTargetDeadLetterConfigOutput) +} + +// ARN of the SQS queue specified as the target for the dead-letter queue. +func (o EventTargetDeadLetterConfigPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetDeadLetterConfig) *string { + if v == nil { + return nil + } + return v.Arn + }).(pulumi.StringPtrOutput) +} + +type EventTargetEcsTarget struct { + // The capacity provider strategy to use for the task. If a `capacityProviderStrategy` specified, the `launchType` parameter must be omitted. If no `capacityProviderStrategy` or `launchType` is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below. + CapacityProviderStrategies []EventTargetEcsTargetCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + // Specifies whether to enable Amazon ECS managed tags for the task. + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + // Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task. + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + // Specifies an ECS task group for the task. The maximum length is 255 characters. + Group *string `pulumi:"group"` + // Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: `EC2`, `EXTERNAL`, or `FARGATE`. + LaunchType *string `pulumi:"launchType"` + // Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if `launchType` is `FARGATE` because the awsvpc mode is required for Fargate tasks. + NetworkConfiguration *EventTargetEcsTargetNetworkConfiguration `pulumi:"networkConfiguration"` + // An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task. + OrderedPlacementStrategies []EventTargetEcsTargetOrderedPlacementStrategy `pulumi:"orderedPlacementStrategies"` + // An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below. + PlacementConstraints []EventTargetEcsTargetPlacementConstraint `pulumi:"placementConstraints"` + // Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as `1.1.0`. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see [AWS Fargate Platform Versions](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: `TASK_DEFINITION`. + PropagateTags *string `pulumi:"propagateTags"` + // A map of tags to assign to ecs resources. + Tags map[string]string `pulumi:"tags"` + // The number of tasks to create based on the TaskDefinition. Defaults to `1`. + TaskCount *int `pulumi:"taskCount"` + // The ARN of the task definition to use if the event target is an Amazon ECS cluster. + TaskDefinitionArn string `pulumi:"taskDefinitionArn"` +} + +// EventTargetEcsTargetInput is an input type that accepts EventTargetEcsTargetArgs and EventTargetEcsTargetOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetInput` via: +// +// EventTargetEcsTargetArgs{...} +type EventTargetEcsTargetInput interface { + pulumi.Input + + ToEventTargetEcsTargetOutput() EventTargetEcsTargetOutput + ToEventTargetEcsTargetOutputWithContext(context.Context) EventTargetEcsTargetOutput +} + +type EventTargetEcsTargetArgs struct { + // The capacity provider strategy to use for the task. If a `capacityProviderStrategy` specified, the `launchType` parameter must be omitted. If no `capacityProviderStrategy` or `launchType` is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below. + CapacityProviderStrategies EventTargetEcsTargetCapacityProviderStrategyArrayInput `pulumi:"capacityProviderStrategies"` + // Specifies whether to enable Amazon ECS managed tags for the task. + EnableEcsManagedTags pulumi.BoolPtrInput `pulumi:"enableEcsManagedTags"` + // Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task. + EnableExecuteCommand pulumi.BoolPtrInput `pulumi:"enableExecuteCommand"` + // Specifies an ECS task group for the task. The maximum length is 255 characters. + Group pulumi.StringPtrInput `pulumi:"group"` + // Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: `EC2`, `EXTERNAL`, or `FARGATE`. + LaunchType pulumi.StringPtrInput `pulumi:"launchType"` + // Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if `launchType` is `FARGATE` because the awsvpc mode is required for Fargate tasks. + NetworkConfiguration EventTargetEcsTargetNetworkConfigurationPtrInput `pulumi:"networkConfiguration"` + // An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task. + OrderedPlacementStrategies EventTargetEcsTargetOrderedPlacementStrategyArrayInput `pulumi:"orderedPlacementStrategies"` + // An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below. + PlacementConstraints EventTargetEcsTargetPlacementConstraintArrayInput `pulumi:"placementConstraints"` + // Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as `1.1.0`. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see [AWS Fargate Platform Versions](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: `TASK_DEFINITION`. + PropagateTags pulumi.StringPtrInput `pulumi:"propagateTags"` + // A map of tags to assign to ecs resources. + Tags pulumi.StringMapInput `pulumi:"tags"` + // The number of tasks to create based on the TaskDefinition. Defaults to `1`. + TaskCount pulumi.IntPtrInput `pulumi:"taskCount"` + // The ARN of the task definition to use if the event target is an Amazon ECS cluster. + TaskDefinitionArn pulumi.StringInput `pulumi:"taskDefinitionArn"` +} + +func (EventTargetEcsTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTarget)(nil)).Elem() +} + +func (i EventTargetEcsTargetArgs) ToEventTargetEcsTargetOutput() EventTargetEcsTargetOutput { + return i.ToEventTargetEcsTargetOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetArgs) ToEventTargetEcsTargetOutputWithContext(ctx context.Context) EventTargetEcsTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetOutput) +} + +func (i EventTargetEcsTargetArgs) ToEventTargetEcsTargetPtrOutput() EventTargetEcsTargetPtrOutput { + return i.ToEventTargetEcsTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetArgs) ToEventTargetEcsTargetPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetOutput).ToEventTargetEcsTargetPtrOutputWithContext(ctx) +} + +// EventTargetEcsTargetPtrInput is an input type that accepts EventTargetEcsTargetArgs, EventTargetEcsTargetPtr and EventTargetEcsTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetPtrInput` via: +// +// EventTargetEcsTargetArgs{...} +// +// or: +// +// nil +type EventTargetEcsTargetPtrInput interface { + pulumi.Input + + ToEventTargetEcsTargetPtrOutput() EventTargetEcsTargetPtrOutput + ToEventTargetEcsTargetPtrOutputWithContext(context.Context) EventTargetEcsTargetPtrOutput +} + +type eventTargetEcsTargetPtrType EventTargetEcsTargetArgs + +func EventTargetEcsTargetPtr(v *EventTargetEcsTargetArgs) EventTargetEcsTargetPtrInput { + return (*eventTargetEcsTargetPtrType)(v) +} + +func (*eventTargetEcsTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetEcsTarget)(nil)).Elem() +} + +func (i *eventTargetEcsTargetPtrType) ToEventTargetEcsTargetPtrOutput() EventTargetEcsTargetPtrOutput { + return i.ToEventTargetEcsTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetEcsTargetPtrType) ToEventTargetEcsTargetPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetPtrOutput) +} + +type EventTargetEcsTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTarget)(nil)).Elem() +} + +func (o EventTargetEcsTargetOutput) ToEventTargetEcsTargetOutput() EventTargetEcsTargetOutput { + return o +} + +func (o EventTargetEcsTargetOutput) ToEventTargetEcsTargetOutputWithContext(ctx context.Context) EventTargetEcsTargetOutput { + return o +} + +func (o EventTargetEcsTargetOutput) ToEventTargetEcsTargetPtrOutput() EventTargetEcsTargetPtrOutput { + return o.ToEventTargetEcsTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetEcsTargetOutput) ToEventTargetEcsTargetPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetEcsTarget) *EventTargetEcsTarget { + return &v + }).(EventTargetEcsTargetPtrOutput) +} + +// The capacity provider strategy to use for the task. If a `capacityProviderStrategy` specified, the `launchType` parameter must be omitted. If no `capacityProviderStrategy` or `launchType` is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below. +func (o EventTargetEcsTargetOutput) CapacityProviderStrategies() EventTargetEcsTargetCapacityProviderStrategyArrayOutput { + return o.ApplyT(func(v EventTargetEcsTarget) []EventTargetEcsTargetCapacityProviderStrategy { + return v.CapacityProviderStrategies + }).(EventTargetEcsTargetCapacityProviderStrategyArrayOutput) +} + +// Specifies whether to enable Amazon ECS managed tags for the task. +func (o EventTargetEcsTargetOutput) EnableEcsManagedTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *bool { return v.EnableEcsManagedTags }).(pulumi.BoolPtrOutput) +} + +// Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task. +func (o EventTargetEcsTargetOutput) EnableExecuteCommand() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *bool { return v.EnableExecuteCommand }).(pulumi.BoolPtrOutput) +} + +// Specifies an ECS task group for the task. The maximum length is 255 characters. +func (o EventTargetEcsTargetOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +// Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: `EC2`, `EXTERNAL`, or `FARGATE`. +func (o EventTargetEcsTargetOutput) LaunchType() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *string { return v.LaunchType }).(pulumi.StringPtrOutput) +} + +// Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if `launchType` is `FARGATE` because the awsvpc mode is required for Fargate tasks. +func (o EventTargetEcsTargetOutput) NetworkConfiguration() EventTargetEcsTargetNetworkConfigurationPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *EventTargetEcsTargetNetworkConfiguration { return v.NetworkConfiguration }).(EventTargetEcsTargetNetworkConfigurationPtrOutput) +} + +// An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task. +func (o EventTargetEcsTargetOutput) OrderedPlacementStrategies() EventTargetEcsTargetOrderedPlacementStrategyArrayOutput { + return o.ApplyT(func(v EventTargetEcsTarget) []EventTargetEcsTargetOrderedPlacementStrategy { + return v.OrderedPlacementStrategies + }).(EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) +} + +// An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below. +func (o EventTargetEcsTargetOutput) PlacementConstraints() EventTargetEcsTargetPlacementConstraintArrayOutput { + return o.ApplyT(func(v EventTargetEcsTarget) []EventTargetEcsTargetPlacementConstraint { return v.PlacementConstraints }).(EventTargetEcsTargetPlacementConstraintArrayOutput) +} + +// Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as `1.1.0`. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see [AWS Fargate Platform Versions](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +func (o EventTargetEcsTargetOutput) PlatformVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *string { return v.PlatformVersion }).(pulumi.StringPtrOutput) +} + +// Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: `TASK_DEFINITION`. +func (o EventTargetEcsTargetOutput) PropagateTags() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *string { return v.PropagateTags }).(pulumi.StringPtrOutput) +} + +// A map of tags to assign to ecs resources. +func (o EventTargetEcsTargetOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v EventTargetEcsTarget) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// The number of tasks to create based on the TaskDefinition. Defaults to `1`. +func (o EventTargetEcsTargetOutput) TaskCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetEcsTarget) *int { return v.TaskCount }).(pulumi.IntPtrOutput) +} + +// The ARN of the task definition to use if the event target is an Amazon ECS cluster. +func (o EventTargetEcsTargetOutput) TaskDefinitionArn() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetEcsTarget) string { return v.TaskDefinitionArn }).(pulumi.StringOutput) +} + +type EventTargetEcsTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetEcsTarget)(nil)).Elem() +} + +func (o EventTargetEcsTargetPtrOutput) ToEventTargetEcsTargetPtrOutput() EventTargetEcsTargetPtrOutput { + return o +} + +func (o EventTargetEcsTargetPtrOutput) ToEventTargetEcsTargetPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetPtrOutput { + return o +} + +func (o EventTargetEcsTargetPtrOutput) Elem() EventTargetEcsTargetOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) EventTargetEcsTarget { + if v != nil { + return *v + } + var ret EventTargetEcsTarget + return ret + }).(EventTargetEcsTargetOutput) +} + +// The capacity provider strategy to use for the task. If a `capacityProviderStrategy` specified, the `launchType` parameter must be omitted. If no `capacityProviderStrategy` or `launchType` is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below. +func (o EventTargetEcsTargetPtrOutput) CapacityProviderStrategies() EventTargetEcsTargetCapacityProviderStrategyArrayOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) []EventTargetEcsTargetCapacityProviderStrategy { + if v == nil { + return nil + } + return v.CapacityProviderStrategies + }).(EventTargetEcsTargetCapacityProviderStrategyArrayOutput) +} + +// Specifies whether to enable Amazon ECS managed tags for the task. +func (o EventTargetEcsTargetPtrOutput) EnableEcsManagedTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *bool { + if v == nil { + return nil + } + return v.EnableEcsManagedTags + }).(pulumi.BoolPtrOutput) +} + +// Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task. +func (o EventTargetEcsTargetPtrOutput) EnableExecuteCommand() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *bool { + if v == nil { + return nil + } + return v.EnableExecuteCommand + }).(pulumi.BoolPtrOutput) +} + +// Specifies an ECS task group for the task. The maximum length is 255 characters. +func (o EventTargetEcsTargetPtrOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *string { + if v == nil { + return nil + } + return v.Group + }).(pulumi.StringPtrOutput) +} + +// Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: `EC2`, `EXTERNAL`, or `FARGATE`. +func (o EventTargetEcsTargetPtrOutput) LaunchType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *string { + if v == nil { + return nil + } + return v.LaunchType + }).(pulumi.StringPtrOutput) +} + +// Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if `launchType` is `FARGATE` because the awsvpc mode is required for Fargate tasks. +func (o EventTargetEcsTargetPtrOutput) NetworkConfiguration() EventTargetEcsTargetNetworkConfigurationPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *EventTargetEcsTargetNetworkConfiguration { + if v == nil { + return nil + } + return v.NetworkConfiguration + }).(EventTargetEcsTargetNetworkConfigurationPtrOutput) +} + +// An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task. +func (o EventTargetEcsTargetPtrOutput) OrderedPlacementStrategies() EventTargetEcsTargetOrderedPlacementStrategyArrayOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) []EventTargetEcsTargetOrderedPlacementStrategy { + if v == nil { + return nil + } + return v.OrderedPlacementStrategies + }).(EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) +} + +// An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below. +func (o EventTargetEcsTargetPtrOutput) PlacementConstraints() EventTargetEcsTargetPlacementConstraintArrayOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) []EventTargetEcsTargetPlacementConstraint { + if v == nil { + return nil + } + return v.PlacementConstraints + }).(EventTargetEcsTargetPlacementConstraintArrayOutput) +} + +// Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as `1.1.0`. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see [AWS Fargate Platform Versions](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +func (o EventTargetEcsTargetPtrOutput) PlatformVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *string { + if v == nil { + return nil + } + return v.PlatformVersion + }).(pulumi.StringPtrOutput) +} + +// Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: `TASK_DEFINITION`. +func (o EventTargetEcsTargetPtrOutput) PropagateTags() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *string { + if v == nil { + return nil + } + return v.PropagateTags + }).(pulumi.StringPtrOutput) +} + +// A map of tags to assign to ecs resources. +func (o EventTargetEcsTargetPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// The number of tasks to create based on the TaskDefinition. Defaults to `1`. +func (o EventTargetEcsTargetPtrOutput) TaskCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *int { + if v == nil { + return nil + } + return v.TaskCount + }).(pulumi.IntPtrOutput) +} + +// The ARN of the task definition to use if the event target is an Amazon ECS cluster. +func (o EventTargetEcsTargetPtrOutput) TaskDefinitionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTarget) *string { + if v == nil { + return nil + } + return &v.TaskDefinitionArn + }).(pulumi.StringPtrOutput) +} + +type EventTargetEcsTargetCapacityProviderStrategy struct { + // The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. + Base *int `pulumi:"base"` + // Short name of the capacity provider. + CapacityProvider string `pulumi:"capacityProvider"` + // The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. + Weight *int `pulumi:"weight"` +} + +// EventTargetEcsTargetCapacityProviderStrategyInput is an input type that accepts EventTargetEcsTargetCapacityProviderStrategyArgs and EventTargetEcsTargetCapacityProviderStrategyOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetCapacityProviderStrategyInput` via: +// +// EventTargetEcsTargetCapacityProviderStrategyArgs{...} +type EventTargetEcsTargetCapacityProviderStrategyInput interface { + pulumi.Input + + ToEventTargetEcsTargetCapacityProviderStrategyOutput() EventTargetEcsTargetCapacityProviderStrategyOutput + ToEventTargetEcsTargetCapacityProviderStrategyOutputWithContext(context.Context) EventTargetEcsTargetCapacityProviderStrategyOutput +} + +type EventTargetEcsTargetCapacityProviderStrategyArgs struct { + // The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. + Base pulumi.IntPtrInput `pulumi:"base"` + // Short name of the capacity provider. + CapacityProvider pulumi.StringInput `pulumi:"capacityProvider"` + // The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +func (EventTargetEcsTargetCapacityProviderStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetCapacityProviderStrategy)(nil)).Elem() +} + +func (i EventTargetEcsTargetCapacityProviderStrategyArgs) ToEventTargetEcsTargetCapacityProviderStrategyOutput() EventTargetEcsTargetCapacityProviderStrategyOutput { + return i.ToEventTargetEcsTargetCapacityProviderStrategyOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetCapacityProviderStrategyArgs) ToEventTargetEcsTargetCapacityProviderStrategyOutputWithContext(ctx context.Context) EventTargetEcsTargetCapacityProviderStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetCapacityProviderStrategyOutput) +} + +// EventTargetEcsTargetCapacityProviderStrategyArrayInput is an input type that accepts EventTargetEcsTargetCapacityProviderStrategyArray and EventTargetEcsTargetCapacityProviderStrategyArrayOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetCapacityProviderStrategyArrayInput` via: +// +// EventTargetEcsTargetCapacityProviderStrategyArray{ EventTargetEcsTargetCapacityProviderStrategyArgs{...} } +type EventTargetEcsTargetCapacityProviderStrategyArrayInput interface { + pulumi.Input + + ToEventTargetEcsTargetCapacityProviderStrategyArrayOutput() EventTargetEcsTargetCapacityProviderStrategyArrayOutput + ToEventTargetEcsTargetCapacityProviderStrategyArrayOutputWithContext(context.Context) EventTargetEcsTargetCapacityProviderStrategyArrayOutput +} + +type EventTargetEcsTargetCapacityProviderStrategyArray []EventTargetEcsTargetCapacityProviderStrategyInput + +func (EventTargetEcsTargetCapacityProviderStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetEcsTargetCapacityProviderStrategy)(nil)).Elem() +} + +func (i EventTargetEcsTargetCapacityProviderStrategyArray) ToEventTargetEcsTargetCapacityProviderStrategyArrayOutput() EventTargetEcsTargetCapacityProviderStrategyArrayOutput { + return i.ToEventTargetEcsTargetCapacityProviderStrategyArrayOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetCapacityProviderStrategyArray) ToEventTargetEcsTargetCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) EventTargetEcsTargetCapacityProviderStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetCapacityProviderStrategyArrayOutput) +} + +type EventTargetEcsTargetCapacityProviderStrategyOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetCapacityProviderStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetCapacityProviderStrategy)(nil)).Elem() +} + +func (o EventTargetEcsTargetCapacityProviderStrategyOutput) ToEventTargetEcsTargetCapacityProviderStrategyOutput() EventTargetEcsTargetCapacityProviderStrategyOutput { + return o +} + +func (o EventTargetEcsTargetCapacityProviderStrategyOutput) ToEventTargetEcsTargetCapacityProviderStrategyOutputWithContext(ctx context.Context) EventTargetEcsTargetCapacityProviderStrategyOutput { + return o +} + +// The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. +func (o EventTargetEcsTargetCapacityProviderStrategyOutput) Base() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetEcsTargetCapacityProviderStrategy) *int { return v.Base }).(pulumi.IntPtrOutput) +} + +// Short name of the capacity provider. +func (o EventTargetEcsTargetCapacityProviderStrategyOutput) CapacityProvider() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetEcsTargetCapacityProviderStrategy) string { return v.CapacityProvider }).(pulumi.StringOutput) +} + +// The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied. +func (o EventTargetEcsTargetCapacityProviderStrategyOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetEcsTargetCapacityProviderStrategy) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type EventTargetEcsTargetCapacityProviderStrategyArrayOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetCapacityProviderStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetEcsTargetCapacityProviderStrategy)(nil)).Elem() +} + +func (o EventTargetEcsTargetCapacityProviderStrategyArrayOutput) ToEventTargetEcsTargetCapacityProviderStrategyArrayOutput() EventTargetEcsTargetCapacityProviderStrategyArrayOutput { + return o +} + +func (o EventTargetEcsTargetCapacityProviderStrategyArrayOutput) ToEventTargetEcsTargetCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) EventTargetEcsTargetCapacityProviderStrategyArrayOutput { + return o +} + +func (o EventTargetEcsTargetCapacityProviderStrategyArrayOutput) Index(i pulumi.IntInput) EventTargetEcsTargetCapacityProviderStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventTargetEcsTargetCapacityProviderStrategy { + return vs[0].([]EventTargetEcsTargetCapacityProviderStrategy)[vs[1].(int)] + }).(EventTargetEcsTargetCapacityProviderStrategyOutput) +} + +type EventTargetEcsTargetNetworkConfiguration struct { + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Defaults to `false`. + // + // For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + AssignPublicIp *bool `pulumi:"assignPublicIp"` + // The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + SecurityGroups []string `pulumi:"securityGroups"` + // The subnets associated with the task or service. + Subnets []string `pulumi:"subnets"` +} + +// EventTargetEcsTargetNetworkConfigurationInput is an input type that accepts EventTargetEcsTargetNetworkConfigurationArgs and EventTargetEcsTargetNetworkConfigurationOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetNetworkConfigurationInput` via: +// +// EventTargetEcsTargetNetworkConfigurationArgs{...} +type EventTargetEcsTargetNetworkConfigurationInput interface { + pulumi.Input + + ToEventTargetEcsTargetNetworkConfigurationOutput() EventTargetEcsTargetNetworkConfigurationOutput + ToEventTargetEcsTargetNetworkConfigurationOutputWithContext(context.Context) EventTargetEcsTargetNetworkConfigurationOutput +} + +type EventTargetEcsTargetNetworkConfigurationArgs struct { + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Defaults to `false`. + // + // For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + AssignPublicIp pulumi.BoolPtrInput `pulumi:"assignPublicIp"` + // The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"` + // The subnets associated with the task or service. + Subnets pulumi.StringArrayInput `pulumi:"subnets"` +} + +func (EventTargetEcsTargetNetworkConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetNetworkConfiguration)(nil)).Elem() +} + +func (i EventTargetEcsTargetNetworkConfigurationArgs) ToEventTargetEcsTargetNetworkConfigurationOutput() EventTargetEcsTargetNetworkConfigurationOutput { + return i.ToEventTargetEcsTargetNetworkConfigurationOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetNetworkConfigurationArgs) ToEventTargetEcsTargetNetworkConfigurationOutputWithContext(ctx context.Context) EventTargetEcsTargetNetworkConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetNetworkConfigurationOutput) +} + +func (i EventTargetEcsTargetNetworkConfigurationArgs) ToEventTargetEcsTargetNetworkConfigurationPtrOutput() EventTargetEcsTargetNetworkConfigurationPtrOutput { + return i.ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetNetworkConfigurationArgs) ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetNetworkConfigurationOutput).ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(ctx) +} + +// EventTargetEcsTargetNetworkConfigurationPtrInput is an input type that accepts EventTargetEcsTargetNetworkConfigurationArgs, EventTargetEcsTargetNetworkConfigurationPtr and EventTargetEcsTargetNetworkConfigurationPtrOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetNetworkConfigurationPtrInput` via: +// +// EventTargetEcsTargetNetworkConfigurationArgs{...} +// +// or: +// +// nil +type EventTargetEcsTargetNetworkConfigurationPtrInput interface { + pulumi.Input + + ToEventTargetEcsTargetNetworkConfigurationPtrOutput() EventTargetEcsTargetNetworkConfigurationPtrOutput + ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(context.Context) EventTargetEcsTargetNetworkConfigurationPtrOutput +} + +type eventTargetEcsTargetNetworkConfigurationPtrType EventTargetEcsTargetNetworkConfigurationArgs + +func EventTargetEcsTargetNetworkConfigurationPtr(v *EventTargetEcsTargetNetworkConfigurationArgs) EventTargetEcsTargetNetworkConfigurationPtrInput { + return (*eventTargetEcsTargetNetworkConfigurationPtrType)(v) +} + +func (*eventTargetEcsTargetNetworkConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetEcsTargetNetworkConfiguration)(nil)).Elem() +} + +func (i *eventTargetEcsTargetNetworkConfigurationPtrType) ToEventTargetEcsTargetNetworkConfigurationPtrOutput() EventTargetEcsTargetNetworkConfigurationPtrOutput { + return i.ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetEcsTargetNetworkConfigurationPtrType) ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetNetworkConfigurationPtrOutput) +} + +type EventTargetEcsTargetNetworkConfigurationOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetNetworkConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetNetworkConfiguration)(nil)).Elem() +} + +func (o EventTargetEcsTargetNetworkConfigurationOutput) ToEventTargetEcsTargetNetworkConfigurationOutput() EventTargetEcsTargetNetworkConfigurationOutput { + return o +} + +func (o EventTargetEcsTargetNetworkConfigurationOutput) ToEventTargetEcsTargetNetworkConfigurationOutputWithContext(ctx context.Context) EventTargetEcsTargetNetworkConfigurationOutput { + return o +} + +func (o EventTargetEcsTargetNetworkConfigurationOutput) ToEventTargetEcsTargetNetworkConfigurationPtrOutput() EventTargetEcsTargetNetworkConfigurationPtrOutput { + return o.ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (o EventTargetEcsTargetNetworkConfigurationOutput) ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetNetworkConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetEcsTargetNetworkConfiguration) *EventTargetEcsTargetNetworkConfiguration { + return &v + }).(EventTargetEcsTargetNetworkConfigurationPtrOutput) +} + +// Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Defaults to `false`. +// +// For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) +func (o EventTargetEcsTargetNetworkConfigurationOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventTargetEcsTargetNetworkConfiguration) *bool { return v.AssignPublicIp }).(pulumi.BoolPtrOutput) +} + +// The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. +func (o EventTargetEcsTargetNetworkConfigurationOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v EventTargetEcsTargetNetworkConfiguration) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) +} + +// The subnets associated with the task or service. +func (o EventTargetEcsTargetNetworkConfigurationOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v EventTargetEcsTargetNetworkConfiguration) []string { return v.Subnets }).(pulumi.StringArrayOutput) +} + +type EventTargetEcsTargetNetworkConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetNetworkConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetEcsTargetNetworkConfiguration)(nil)).Elem() +} + +func (o EventTargetEcsTargetNetworkConfigurationPtrOutput) ToEventTargetEcsTargetNetworkConfigurationPtrOutput() EventTargetEcsTargetNetworkConfigurationPtrOutput { + return o +} + +func (o EventTargetEcsTargetNetworkConfigurationPtrOutput) ToEventTargetEcsTargetNetworkConfigurationPtrOutputWithContext(ctx context.Context) EventTargetEcsTargetNetworkConfigurationPtrOutput { + return o +} + +func (o EventTargetEcsTargetNetworkConfigurationPtrOutput) Elem() EventTargetEcsTargetNetworkConfigurationOutput { + return o.ApplyT(func(v *EventTargetEcsTargetNetworkConfiguration) EventTargetEcsTargetNetworkConfiguration { + if v != nil { + return *v + } + var ret EventTargetEcsTargetNetworkConfiguration + return ret + }).(EventTargetEcsTargetNetworkConfigurationOutput) +} + +// Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Defaults to `false`. +// +// For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) +func (o EventTargetEcsTargetNetworkConfigurationPtrOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EventTargetEcsTargetNetworkConfiguration) *bool { + if v == nil { + return nil + } + return v.AssignPublicIp + }).(pulumi.BoolPtrOutput) +} + +// The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. +func (o EventTargetEcsTargetNetworkConfigurationPtrOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *EventTargetEcsTargetNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.SecurityGroups + }).(pulumi.StringArrayOutput) +} + +// The subnets associated with the task or service. +func (o EventTargetEcsTargetNetworkConfigurationPtrOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v *EventTargetEcsTargetNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.Subnets + }).(pulumi.StringArrayOutput) +} + +type EventTargetEcsTargetOrderedPlacementStrategy struct { + // The field to apply the placement strategy against. For the `spread` placement strategy, valid values are `instanceId` (or `host`, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as `attribute:ecs.availability-zone`. For the `binpack` placement strategy, valid values are `cpu` and `memory`. For the `random` placement strategy, this field is not used. For more information, see [Amazon ECS task placement strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html). + Field *string `pulumi:"field"` + // Type of placement strategy. The only valid values at this time are `binpack`, `random` and `spread`. + Type string `pulumi:"type"` +} + +// EventTargetEcsTargetOrderedPlacementStrategyInput is an input type that accepts EventTargetEcsTargetOrderedPlacementStrategyArgs and EventTargetEcsTargetOrderedPlacementStrategyOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetOrderedPlacementStrategyInput` via: +// +// EventTargetEcsTargetOrderedPlacementStrategyArgs{...} +type EventTargetEcsTargetOrderedPlacementStrategyInput interface { + pulumi.Input + + ToEventTargetEcsTargetOrderedPlacementStrategyOutput() EventTargetEcsTargetOrderedPlacementStrategyOutput + ToEventTargetEcsTargetOrderedPlacementStrategyOutputWithContext(context.Context) EventTargetEcsTargetOrderedPlacementStrategyOutput +} + +type EventTargetEcsTargetOrderedPlacementStrategyArgs struct { + // The field to apply the placement strategy against. For the `spread` placement strategy, valid values are `instanceId` (or `host`, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as `attribute:ecs.availability-zone`. For the `binpack` placement strategy, valid values are `cpu` and `memory`. For the `random` placement strategy, this field is not used. For more information, see [Amazon ECS task placement strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html). + Field pulumi.StringPtrInput `pulumi:"field"` + // Type of placement strategy. The only valid values at this time are `binpack`, `random` and `spread`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (EventTargetEcsTargetOrderedPlacementStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetOrderedPlacementStrategy)(nil)).Elem() +} + +func (i EventTargetEcsTargetOrderedPlacementStrategyArgs) ToEventTargetEcsTargetOrderedPlacementStrategyOutput() EventTargetEcsTargetOrderedPlacementStrategyOutput { + return i.ToEventTargetEcsTargetOrderedPlacementStrategyOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetOrderedPlacementStrategyArgs) ToEventTargetEcsTargetOrderedPlacementStrategyOutputWithContext(ctx context.Context) EventTargetEcsTargetOrderedPlacementStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetOrderedPlacementStrategyOutput) +} + +// EventTargetEcsTargetOrderedPlacementStrategyArrayInput is an input type that accepts EventTargetEcsTargetOrderedPlacementStrategyArray and EventTargetEcsTargetOrderedPlacementStrategyArrayOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetOrderedPlacementStrategyArrayInput` via: +// +// EventTargetEcsTargetOrderedPlacementStrategyArray{ EventTargetEcsTargetOrderedPlacementStrategyArgs{...} } +type EventTargetEcsTargetOrderedPlacementStrategyArrayInput interface { + pulumi.Input + + ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutput() EventTargetEcsTargetOrderedPlacementStrategyArrayOutput + ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutputWithContext(context.Context) EventTargetEcsTargetOrderedPlacementStrategyArrayOutput +} + +type EventTargetEcsTargetOrderedPlacementStrategyArray []EventTargetEcsTargetOrderedPlacementStrategyInput + +func (EventTargetEcsTargetOrderedPlacementStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetEcsTargetOrderedPlacementStrategy)(nil)).Elem() +} + +func (i EventTargetEcsTargetOrderedPlacementStrategyArray) ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutput() EventTargetEcsTargetOrderedPlacementStrategyArrayOutput { + return i.ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetOrderedPlacementStrategyArray) ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutputWithContext(ctx context.Context) EventTargetEcsTargetOrderedPlacementStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) +} + +type EventTargetEcsTargetOrderedPlacementStrategyOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetOrderedPlacementStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetOrderedPlacementStrategy)(nil)).Elem() +} + +func (o EventTargetEcsTargetOrderedPlacementStrategyOutput) ToEventTargetEcsTargetOrderedPlacementStrategyOutput() EventTargetEcsTargetOrderedPlacementStrategyOutput { + return o +} + +func (o EventTargetEcsTargetOrderedPlacementStrategyOutput) ToEventTargetEcsTargetOrderedPlacementStrategyOutputWithContext(ctx context.Context) EventTargetEcsTargetOrderedPlacementStrategyOutput { + return o +} + +// The field to apply the placement strategy against. For the `spread` placement strategy, valid values are `instanceId` (or `host`, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as `attribute:ecs.availability-zone`. For the `binpack` placement strategy, valid values are `cpu` and `memory`. For the `random` placement strategy, this field is not used. For more information, see [Amazon ECS task placement strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html). +func (o EventTargetEcsTargetOrderedPlacementStrategyOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetEcsTargetOrderedPlacementStrategy) *string { return v.Field }).(pulumi.StringPtrOutput) +} + +// Type of placement strategy. The only valid values at this time are `binpack`, `random` and `spread`. +func (o EventTargetEcsTargetOrderedPlacementStrategyOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetEcsTargetOrderedPlacementStrategy) string { return v.Type }).(pulumi.StringOutput) +} + +type EventTargetEcsTargetOrderedPlacementStrategyArrayOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetEcsTargetOrderedPlacementStrategy)(nil)).Elem() +} + +func (o EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutput() EventTargetEcsTargetOrderedPlacementStrategyArrayOutput { + return o +} + +func (o EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) ToEventTargetEcsTargetOrderedPlacementStrategyArrayOutputWithContext(ctx context.Context) EventTargetEcsTargetOrderedPlacementStrategyArrayOutput { + return o +} + +func (o EventTargetEcsTargetOrderedPlacementStrategyArrayOutput) Index(i pulumi.IntInput) EventTargetEcsTargetOrderedPlacementStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventTargetEcsTargetOrderedPlacementStrategy { + return vs[0].([]EventTargetEcsTargetOrderedPlacementStrategy)[vs[1].(int)] + }).(EventTargetEcsTargetOrderedPlacementStrategyOutput) +} + +type EventTargetEcsTargetPlacementConstraint struct { + // Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). + Expression *string `pulumi:"expression"` + // Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. + Type string `pulumi:"type"` +} + +// EventTargetEcsTargetPlacementConstraintInput is an input type that accepts EventTargetEcsTargetPlacementConstraintArgs and EventTargetEcsTargetPlacementConstraintOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetPlacementConstraintInput` via: +// +// EventTargetEcsTargetPlacementConstraintArgs{...} +type EventTargetEcsTargetPlacementConstraintInput interface { + pulumi.Input + + ToEventTargetEcsTargetPlacementConstraintOutput() EventTargetEcsTargetPlacementConstraintOutput + ToEventTargetEcsTargetPlacementConstraintOutputWithContext(context.Context) EventTargetEcsTargetPlacementConstraintOutput +} + +type EventTargetEcsTargetPlacementConstraintArgs struct { + // Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). + Expression pulumi.StringPtrInput `pulumi:"expression"` + // Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (EventTargetEcsTargetPlacementConstraintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetPlacementConstraint)(nil)).Elem() +} + +func (i EventTargetEcsTargetPlacementConstraintArgs) ToEventTargetEcsTargetPlacementConstraintOutput() EventTargetEcsTargetPlacementConstraintOutput { + return i.ToEventTargetEcsTargetPlacementConstraintOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetPlacementConstraintArgs) ToEventTargetEcsTargetPlacementConstraintOutputWithContext(ctx context.Context) EventTargetEcsTargetPlacementConstraintOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetPlacementConstraintOutput) +} + +// EventTargetEcsTargetPlacementConstraintArrayInput is an input type that accepts EventTargetEcsTargetPlacementConstraintArray and EventTargetEcsTargetPlacementConstraintArrayOutput values. +// You can construct a concrete instance of `EventTargetEcsTargetPlacementConstraintArrayInput` via: +// +// EventTargetEcsTargetPlacementConstraintArray{ EventTargetEcsTargetPlacementConstraintArgs{...} } +type EventTargetEcsTargetPlacementConstraintArrayInput interface { + pulumi.Input + + ToEventTargetEcsTargetPlacementConstraintArrayOutput() EventTargetEcsTargetPlacementConstraintArrayOutput + ToEventTargetEcsTargetPlacementConstraintArrayOutputWithContext(context.Context) EventTargetEcsTargetPlacementConstraintArrayOutput +} + +type EventTargetEcsTargetPlacementConstraintArray []EventTargetEcsTargetPlacementConstraintInput + +func (EventTargetEcsTargetPlacementConstraintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetEcsTargetPlacementConstraint)(nil)).Elem() +} + +func (i EventTargetEcsTargetPlacementConstraintArray) ToEventTargetEcsTargetPlacementConstraintArrayOutput() EventTargetEcsTargetPlacementConstraintArrayOutput { + return i.ToEventTargetEcsTargetPlacementConstraintArrayOutputWithContext(context.Background()) +} + +func (i EventTargetEcsTargetPlacementConstraintArray) ToEventTargetEcsTargetPlacementConstraintArrayOutputWithContext(ctx context.Context) EventTargetEcsTargetPlacementConstraintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetEcsTargetPlacementConstraintArrayOutput) +} + +type EventTargetEcsTargetPlacementConstraintOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetPlacementConstraintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetEcsTargetPlacementConstraint)(nil)).Elem() +} + +func (o EventTargetEcsTargetPlacementConstraintOutput) ToEventTargetEcsTargetPlacementConstraintOutput() EventTargetEcsTargetPlacementConstraintOutput { + return o +} + +func (o EventTargetEcsTargetPlacementConstraintOutput) ToEventTargetEcsTargetPlacementConstraintOutputWithContext(ctx context.Context) EventTargetEcsTargetPlacementConstraintOutput { + return o +} + +// Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). +func (o EventTargetEcsTargetPlacementConstraintOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetEcsTargetPlacementConstraint) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. +func (o EventTargetEcsTargetPlacementConstraintOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetEcsTargetPlacementConstraint) string { return v.Type }).(pulumi.StringOutput) +} + +type EventTargetEcsTargetPlacementConstraintArrayOutput struct{ *pulumi.OutputState } + +func (EventTargetEcsTargetPlacementConstraintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetEcsTargetPlacementConstraint)(nil)).Elem() +} + +func (o EventTargetEcsTargetPlacementConstraintArrayOutput) ToEventTargetEcsTargetPlacementConstraintArrayOutput() EventTargetEcsTargetPlacementConstraintArrayOutput { + return o +} + +func (o EventTargetEcsTargetPlacementConstraintArrayOutput) ToEventTargetEcsTargetPlacementConstraintArrayOutputWithContext(ctx context.Context) EventTargetEcsTargetPlacementConstraintArrayOutput { + return o +} + +func (o EventTargetEcsTargetPlacementConstraintArrayOutput) Index(i pulumi.IntInput) EventTargetEcsTargetPlacementConstraintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventTargetEcsTargetPlacementConstraint { + return vs[0].([]EventTargetEcsTargetPlacementConstraint)[vs[1].(int)] + }).(EventTargetEcsTargetPlacementConstraintOutput) +} + +type EventTargetHttpTarget struct { + // Enables you to specify HTTP headers to add to the request. + HeaderParameters map[string]string `pulumi:"headerParameters"` + // The list of values that correspond sequentially to any path variables in your endpoint ARN (for example `arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*`). + PathParameterValues []string `pulumi:"pathParameterValues"` + // Represents keys/values of query string parameters that are appended to the invoked endpoint. + QueryStringParameters map[string]string `pulumi:"queryStringParameters"` +} + +// EventTargetHttpTargetInput is an input type that accepts EventTargetHttpTargetArgs and EventTargetHttpTargetOutput values. +// You can construct a concrete instance of `EventTargetHttpTargetInput` via: +// +// EventTargetHttpTargetArgs{...} +type EventTargetHttpTargetInput interface { + pulumi.Input + + ToEventTargetHttpTargetOutput() EventTargetHttpTargetOutput + ToEventTargetHttpTargetOutputWithContext(context.Context) EventTargetHttpTargetOutput +} + +type EventTargetHttpTargetArgs struct { + // Enables you to specify HTTP headers to add to the request. + HeaderParameters pulumi.StringMapInput `pulumi:"headerParameters"` + // The list of values that correspond sequentially to any path variables in your endpoint ARN (for example `arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*`). + PathParameterValues pulumi.StringArrayInput `pulumi:"pathParameterValues"` + // Represents keys/values of query string parameters that are appended to the invoked endpoint. + QueryStringParameters pulumi.StringMapInput `pulumi:"queryStringParameters"` +} + +func (EventTargetHttpTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetHttpTarget)(nil)).Elem() +} + +func (i EventTargetHttpTargetArgs) ToEventTargetHttpTargetOutput() EventTargetHttpTargetOutput { + return i.ToEventTargetHttpTargetOutputWithContext(context.Background()) +} + +func (i EventTargetHttpTargetArgs) ToEventTargetHttpTargetOutputWithContext(ctx context.Context) EventTargetHttpTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetHttpTargetOutput) +} + +func (i EventTargetHttpTargetArgs) ToEventTargetHttpTargetPtrOutput() EventTargetHttpTargetPtrOutput { + return i.ToEventTargetHttpTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetHttpTargetArgs) ToEventTargetHttpTargetPtrOutputWithContext(ctx context.Context) EventTargetHttpTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetHttpTargetOutput).ToEventTargetHttpTargetPtrOutputWithContext(ctx) +} + +// EventTargetHttpTargetPtrInput is an input type that accepts EventTargetHttpTargetArgs, EventTargetHttpTargetPtr and EventTargetHttpTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetHttpTargetPtrInput` via: +// +// EventTargetHttpTargetArgs{...} +// +// or: +// +// nil +type EventTargetHttpTargetPtrInput interface { + pulumi.Input + + ToEventTargetHttpTargetPtrOutput() EventTargetHttpTargetPtrOutput + ToEventTargetHttpTargetPtrOutputWithContext(context.Context) EventTargetHttpTargetPtrOutput +} + +type eventTargetHttpTargetPtrType EventTargetHttpTargetArgs + +func EventTargetHttpTargetPtr(v *EventTargetHttpTargetArgs) EventTargetHttpTargetPtrInput { + return (*eventTargetHttpTargetPtrType)(v) +} + +func (*eventTargetHttpTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetHttpTarget)(nil)).Elem() +} + +func (i *eventTargetHttpTargetPtrType) ToEventTargetHttpTargetPtrOutput() EventTargetHttpTargetPtrOutput { + return i.ToEventTargetHttpTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetHttpTargetPtrType) ToEventTargetHttpTargetPtrOutputWithContext(ctx context.Context) EventTargetHttpTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetHttpTargetPtrOutput) +} + +type EventTargetHttpTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetHttpTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetHttpTarget)(nil)).Elem() +} + +func (o EventTargetHttpTargetOutput) ToEventTargetHttpTargetOutput() EventTargetHttpTargetOutput { + return o +} + +func (o EventTargetHttpTargetOutput) ToEventTargetHttpTargetOutputWithContext(ctx context.Context) EventTargetHttpTargetOutput { + return o +} + +func (o EventTargetHttpTargetOutput) ToEventTargetHttpTargetPtrOutput() EventTargetHttpTargetPtrOutput { + return o.ToEventTargetHttpTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetHttpTargetOutput) ToEventTargetHttpTargetPtrOutputWithContext(ctx context.Context) EventTargetHttpTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetHttpTarget) *EventTargetHttpTarget { + return &v + }).(EventTargetHttpTargetPtrOutput) +} + +// Enables you to specify HTTP headers to add to the request. +func (o EventTargetHttpTargetOutput) HeaderParameters() pulumi.StringMapOutput { + return o.ApplyT(func(v EventTargetHttpTarget) map[string]string { return v.HeaderParameters }).(pulumi.StringMapOutput) +} + +// The list of values that correspond sequentially to any path variables in your endpoint ARN (for example `arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*`). +func (o EventTargetHttpTargetOutput) PathParameterValues() pulumi.StringArrayOutput { + return o.ApplyT(func(v EventTargetHttpTarget) []string { return v.PathParameterValues }).(pulumi.StringArrayOutput) +} + +// Represents keys/values of query string parameters that are appended to the invoked endpoint. +func (o EventTargetHttpTargetOutput) QueryStringParameters() pulumi.StringMapOutput { + return o.ApplyT(func(v EventTargetHttpTarget) map[string]string { return v.QueryStringParameters }).(pulumi.StringMapOutput) +} + +type EventTargetHttpTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetHttpTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetHttpTarget)(nil)).Elem() +} + +func (o EventTargetHttpTargetPtrOutput) ToEventTargetHttpTargetPtrOutput() EventTargetHttpTargetPtrOutput { + return o +} + +func (o EventTargetHttpTargetPtrOutput) ToEventTargetHttpTargetPtrOutputWithContext(ctx context.Context) EventTargetHttpTargetPtrOutput { + return o +} + +func (o EventTargetHttpTargetPtrOutput) Elem() EventTargetHttpTargetOutput { + return o.ApplyT(func(v *EventTargetHttpTarget) EventTargetHttpTarget { + if v != nil { + return *v + } + var ret EventTargetHttpTarget + return ret + }).(EventTargetHttpTargetOutput) +} + +// Enables you to specify HTTP headers to add to the request. +func (o EventTargetHttpTargetPtrOutput) HeaderParameters() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventTargetHttpTarget) map[string]string { + if v == nil { + return nil + } + return v.HeaderParameters + }).(pulumi.StringMapOutput) +} + +// The list of values that correspond sequentially to any path variables in your endpoint ARN (for example `arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*`). +func (o EventTargetHttpTargetPtrOutput) PathParameterValues() pulumi.StringArrayOutput { + return o.ApplyT(func(v *EventTargetHttpTarget) []string { + if v == nil { + return nil + } + return v.PathParameterValues + }).(pulumi.StringArrayOutput) +} + +// Represents keys/values of query string parameters that are appended to the invoked endpoint. +func (o EventTargetHttpTargetPtrOutput) QueryStringParameters() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventTargetHttpTarget) map[string]string { + if v == nil { + return nil + } + return v.QueryStringParameters + }).(pulumi.StringMapOutput) +} + +type EventTargetInputTransformer struct { + // Key value pairs specified in the form of JSONPath (for example, time = $.time) + // * You can have as many as 100 key-value pairs. + // * You must use JSON dot notation, not bracket notation. + // * The keys can't start with "AWS". + InputPaths map[string]string `pulumi:"inputPaths"` + // Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes. + InputTemplate string `pulumi:"inputTemplate"` +} + +// EventTargetInputTransformerInput is an input type that accepts EventTargetInputTransformerArgs and EventTargetInputTransformerOutput values. +// You can construct a concrete instance of `EventTargetInputTransformerInput` via: +// +// EventTargetInputTransformerArgs{...} +type EventTargetInputTransformerInput interface { + pulumi.Input + + ToEventTargetInputTransformerOutput() EventTargetInputTransformerOutput + ToEventTargetInputTransformerOutputWithContext(context.Context) EventTargetInputTransformerOutput +} + +type EventTargetInputTransformerArgs struct { + // Key value pairs specified in the form of JSONPath (for example, time = $.time) + // * You can have as many as 100 key-value pairs. + // * You must use JSON dot notation, not bracket notation. + // * The keys can't start with "AWS". + InputPaths pulumi.StringMapInput `pulumi:"inputPaths"` + // Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes. + InputTemplate pulumi.StringInput `pulumi:"inputTemplate"` +} + +func (EventTargetInputTransformerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetInputTransformer)(nil)).Elem() +} + +func (i EventTargetInputTransformerArgs) ToEventTargetInputTransformerOutput() EventTargetInputTransformerOutput { + return i.ToEventTargetInputTransformerOutputWithContext(context.Background()) +} + +func (i EventTargetInputTransformerArgs) ToEventTargetInputTransformerOutputWithContext(ctx context.Context) EventTargetInputTransformerOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetInputTransformerOutput) +} + +func (i EventTargetInputTransformerArgs) ToEventTargetInputTransformerPtrOutput() EventTargetInputTransformerPtrOutput { + return i.ToEventTargetInputTransformerPtrOutputWithContext(context.Background()) +} + +func (i EventTargetInputTransformerArgs) ToEventTargetInputTransformerPtrOutputWithContext(ctx context.Context) EventTargetInputTransformerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetInputTransformerOutput).ToEventTargetInputTransformerPtrOutputWithContext(ctx) +} + +// EventTargetInputTransformerPtrInput is an input type that accepts EventTargetInputTransformerArgs, EventTargetInputTransformerPtr and EventTargetInputTransformerPtrOutput values. +// You can construct a concrete instance of `EventTargetInputTransformerPtrInput` via: +// +// EventTargetInputTransformerArgs{...} +// +// or: +// +// nil +type EventTargetInputTransformerPtrInput interface { + pulumi.Input + + ToEventTargetInputTransformerPtrOutput() EventTargetInputTransformerPtrOutput + ToEventTargetInputTransformerPtrOutputWithContext(context.Context) EventTargetInputTransformerPtrOutput +} + +type eventTargetInputTransformerPtrType EventTargetInputTransformerArgs + +func EventTargetInputTransformerPtr(v *EventTargetInputTransformerArgs) EventTargetInputTransformerPtrInput { + return (*eventTargetInputTransformerPtrType)(v) +} + +func (*eventTargetInputTransformerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetInputTransformer)(nil)).Elem() +} + +func (i *eventTargetInputTransformerPtrType) ToEventTargetInputTransformerPtrOutput() EventTargetInputTransformerPtrOutput { + return i.ToEventTargetInputTransformerPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetInputTransformerPtrType) ToEventTargetInputTransformerPtrOutputWithContext(ctx context.Context) EventTargetInputTransformerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetInputTransformerPtrOutput) +} + +type EventTargetInputTransformerOutput struct{ *pulumi.OutputState } + +func (EventTargetInputTransformerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetInputTransformer)(nil)).Elem() +} + +func (o EventTargetInputTransformerOutput) ToEventTargetInputTransformerOutput() EventTargetInputTransformerOutput { + return o +} + +func (o EventTargetInputTransformerOutput) ToEventTargetInputTransformerOutputWithContext(ctx context.Context) EventTargetInputTransformerOutput { + return o +} + +func (o EventTargetInputTransformerOutput) ToEventTargetInputTransformerPtrOutput() EventTargetInputTransformerPtrOutput { + return o.ToEventTargetInputTransformerPtrOutputWithContext(context.Background()) +} + +func (o EventTargetInputTransformerOutput) ToEventTargetInputTransformerPtrOutputWithContext(ctx context.Context) EventTargetInputTransformerPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetInputTransformer) *EventTargetInputTransformer { + return &v + }).(EventTargetInputTransformerPtrOutput) +} + +// Key value pairs specified in the form of JSONPath (for example, time = $.time) +// * You can have as many as 100 key-value pairs. +// * You must use JSON dot notation, not bracket notation. +// * The keys can't start with "AWS". +func (o EventTargetInputTransformerOutput) InputPaths() pulumi.StringMapOutput { + return o.ApplyT(func(v EventTargetInputTransformer) map[string]string { return v.InputPaths }).(pulumi.StringMapOutput) +} + +// Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes. +func (o EventTargetInputTransformerOutput) InputTemplate() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetInputTransformer) string { return v.InputTemplate }).(pulumi.StringOutput) +} + +type EventTargetInputTransformerPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetInputTransformerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetInputTransformer)(nil)).Elem() +} + +func (o EventTargetInputTransformerPtrOutput) ToEventTargetInputTransformerPtrOutput() EventTargetInputTransformerPtrOutput { + return o +} + +func (o EventTargetInputTransformerPtrOutput) ToEventTargetInputTransformerPtrOutputWithContext(ctx context.Context) EventTargetInputTransformerPtrOutput { + return o +} + +func (o EventTargetInputTransformerPtrOutput) Elem() EventTargetInputTransformerOutput { + return o.ApplyT(func(v *EventTargetInputTransformer) EventTargetInputTransformer { + if v != nil { + return *v + } + var ret EventTargetInputTransformer + return ret + }).(EventTargetInputTransformerOutput) +} + +// Key value pairs specified in the form of JSONPath (for example, time = $.time) +// * You can have as many as 100 key-value pairs. +// * You must use JSON dot notation, not bracket notation. +// * The keys can't start with "AWS". +func (o EventTargetInputTransformerPtrOutput) InputPaths() pulumi.StringMapOutput { + return o.ApplyT(func(v *EventTargetInputTransformer) map[string]string { + if v == nil { + return nil + } + return v.InputPaths + }).(pulumi.StringMapOutput) +} + +// Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes. +func (o EventTargetInputTransformerPtrOutput) InputTemplate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetInputTransformer) *string { + if v == nil { + return nil + } + return &v.InputTemplate + }).(pulumi.StringPtrOutput) +} + +type EventTargetKinesisTarget struct { + // The JSON path to be extracted from the event and used as the partition key. + PartitionKeyPath *string `pulumi:"partitionKeyPath"` +} + +// EventTargetKinesisTargetInput is an input type that accepts EventTargetKinesisTargetArgs and EventTargetKinesisTargetOutput values. +// You can construct a concrete instance of `EventTargetKinesisTargetInput` via: +// +// EventTargetKinesisTargetArgs{...} +type EventTargetKinesisTargetInput interface { + pulumi.Input + + ToEventTargetKinesisTargetOutput() EventTargetKinesisTargetOutput + ToEventTargetKinesisTargetOutputWithContext(context.Context) EventTargetKinesisTargetOutput +} + +type EventTargetKinesisTargetArgs struct { + // The JSON path to be extracted from the event and used as the partition key. + PartitionKeyPath pulumi.StringPtrInput `pulumi:"partitionKeyPath"` +} + +func (EventTargetKinesisTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetKinesisTarget)(nil)).Elem() +} + +func (i EventTargetKinesisTargetArgs) ToEventTargetKinesisTargetOutput() EventTargetKinesisTargetOutput { + return i.ToEventTargetKinesisTargetOutputWithContext(context.Background()) +} + +func (i EventTargetKinesisTargetArgs) ToEventTargetKinesisTargetOutputWithContext(ctx context.Context) EventTargetKinesisTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetKinesisTargetOutput) +} + +func (i EventTargetKinesisTargetArgs) ToEventTargetKinesisTargetPtrOutput() EventTargetKinesisTargetPtrOutput { + return i.ToEventTargetKinesisTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetKinesisTargetArgs) ToEventTargetKinesisTargetPtrOutputWithContext(ctx context.Context) EventTargetKinesisTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetKinesisTargetOutput).ToEventTargetKinesisTargetPtrOutputWithContext(ctx) +} + +// EventTargetKinesisTargetPtrInput is an input type that accepts EventTargetKinesisTargetArgs, EventTargetKinesisTargetPtr and EventTargetKinesisTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetKinesisTargetPtrInput` via: +// +// EventTargetKinesisTargetArgs{...} +// +// or: +// +// nil +type EventTargetKinesisTargetPtrInput interface { + pulumi.Input + + ToEventTargetKinesisTargetPtrOutput() EventTargetKinesisTargetPtrOutput + ToEventTargetKinesisTargetPtrOutputWithContext(context.Context) EventTargetKinesisTargetPtrOutput +} + +type eventTargetKinesisTargetPtrType EventTargetKinesisTargetArgs + +func EventTargetKinesisTargetPtr(v *EventTargetKinesisTargetArgs) EventTargetKinesisTargetPtrInput { + return (*eventTargetKinesisTargetPtrType)(v) +} + +func (*eventTargetKinesisTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetKinesisTarget)(nil)).Elem() +} + +func (i *eventTargetKinesisTargetPtrType) ToEventTargetKinesisTargetPtrOutput() EventTargetKinesisTargetPtrOutput { + return i.ToEventTargetKinesisTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetKinesisTargetPtrType) ToEventTargetKinesisTargetPtrOutputWithContext(ctx context.Context) EventTargetKinesisTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetKinesisTargetPtrOutput) +} + +type EventTargetKinesisTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetKinesisTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetKinesisTarget)(nil)).Elem() +} + +func (o EventTargetKinesisTargetOutput) ToEventTargetKinesisTargetOutput() EventTargetKinesisTargetOutput { + return o +} + +func (o EventTargetKinesisTargetOutput) ToEventTargetKinesisTargetOutputWithContext(ctx context.Context) EventTargetKinesisTargetOutput { + return o +} + +func (o EventTargetKinesisTargetOutput) ToEventTargetKinesisTargetPtrOutput() EventTargetKinesisTargetPtrOutput { + return o.ToEventTargetKinesisTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetKinesisTargetOutput) ToEventTargetKinesisTargetPtrOutputWithContext(ctx context.Context) EventTargetKinesisTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetKinesisTarget) *EventTargetKinesisTarget { + return &v + }).(EventTargetKinesisTargetPtrOutput) +} + +// The JSON path to be extracted from the event and used as the partition key. +func (o EventTargetKinesisTargetOutput) PartitionKeyPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetKinesisTarget) *string { return v.PartitionKeyPath }).(pulumi.StringPtrOutput) +} + +type EventTargetKinesisTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetKinesisTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetKinesisTarget)(nil)).Elem() +} + +func (o EventTargetKinesisTargetPtrOutput) ToEventTargetKinesisTargetPtrOutput() EventTargetKinesisTargetPtrOutput { + return o +} + +func (o EventTargetKinesisTargetPtrOutput) ToEventTargetKinesisTargetPtrOutputWithContext(ctx context.Context) EventTargetKinesisTargetPtrOutput { + return o +} + +func (o EventTargetKinesisTargetPtrOutput) Elem() EventTargetKinesisTargetOutput { + return o.ApplyT(func(v *EventTargetKinesisTarget) EventTargetKinesisTarget { + if v != nil { + return *v + } + var ret EventTargetKinesisTarget + return ret + }).(EventTargetKinesisTargetOutput) +} + +// The JSON path to be extracted from the event and used as the partition key. +func (o EventTargetKinesisTargetPtrOutput) PartitionKeyPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetKinesisTarget) *string { + if v == nil { + return nil + } + return v.PartitionKeyPath + }).(pulumi.StringPtrOutput) +} + +type EventTargetRedshiftTarget struct { + // The name of the database. + Database string `pulumi:"database"` + // The database user name. + DbUser *string `pulumi:"dbUser"` + // The name or ARN of the secret that enables access to the database. + SecretsManagerArn *string `pulumi:"secretsManagerArn"` + // The SQL statement text to run. + Sql *string `pulumi:"sql"` + // The name of the SQL statement. + StatementName *string `pulumi:"statementName"` + // Indicates whether to send an event back to EventBridge after the SQL statement runs. + WithEvent *bool `pulumi:"withEvent"` +} + +// EventTargetRedshiftTargetInput is an input type that accepts EventTargetRedshiftTargetArgs and EventTargetRedshiftTargetOutput values. +// You can construct a concrete instance of `EventTargetRedshiftTargetInput` via: +// +// EventTargetRedshiftTargetArgs{...} +type EventTargetRedshiftTargetInput interface { + pulumi.Input + + ToEventTargetRedshiftTargetOutput() EventTargetRedshiftTargetOutput + ToEventTargetRedshiftTargetOutputWithContext(context.Context) EventTargetRedshiftTargetOutput +} + +type EventTargetRedshiftTargetArgs struct { + // The name of the database. + Database pulumi.StringInput `pulumi:"database"` + // The database user name. + DbUser pulumi.StringPtrInput `pulumi:"dbUser"` + // The name or ARN of the secret that enables access to the database. + SecretsManagerArn pulumi.StringPtrInput `pulumi:"secretsManagerArn"` + // The SQL statement text to run. + Sql pulumi.StringPtrInput `pulumi:"sql"` + // The name of the SQL statement. + StatementName pulumi.StringPtrInput `pulumi:"statementName"` + // Indicates whether to send an event back to EventBridge after the SQL statement runs. + WithEvent pulumi.BoolPtrInput `pulumi:"withEvent"` +} + +func (EventTargetRedshiftTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetRedshiftTarget)(nil)).Elem() +} + +func (i EventTargetRedshiftTargetArgs) ToEventTargetRedshiftTargetOutput() EventTargetRedshiftTargetOutput { + return i.ToEventTargetRedshiftTargetOutputWithContext(context.Background()) +} + +func (i EventTargetRedshiftTargetArgs) ToEventTargetRedshiftTargetOutputWithContext(ctx context.Context) EventTargetRedshiftTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRedshiftTargetOutput) +} + +func (i EventTargetRedshiftTargetArgs) ToEventTargetRedshiftTargetPtrOutput() EventTargetRedshiftTargetPtrOutput { + return i.ToEventTargetRedshiftTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetRedshiftTargetArgs) ToEventTargetRedshiftTargetPtrOutputWithContext(ctx context.Context) EventTargetRedshiftTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRedshiftTargetOutput).ToEventTargetRedshiftTargetPtrOutputWithContext(ctx) +} + +// EventTargetRedshiftTargetPtrInput is an input type that accepts EventTargetRedshiftTargetArgs, EventTargetRedshiftTargetPtr and EventTargetRedshiftTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetRedshiftTargetPtrInput` via: +// +// EventTargetRedshiftTargetArgs{...} +// +// or: +// +// nil +type EventTargetRedshiftTargetPtrInput interface { + pulumi.Input + + ToEventTargetRedshiftTargetPtrOutput() EventTargetRedshiftTargetPtrOutput + ToEventTargetRedshiftTargetPtrOutputWithContext(context.Context) EventTargetRedshiftTargetPtrOutput +} + +type eventTargetRedshiftTargetPtrType EventTargetRedshiftTargetArgs + +func EventTargetRedshiftTargetPtr(v *EventTargetRedshiftTargetArgs) EventTargetRedshiftTargetPtrInput { + return (*eventTargetRedshiftTargetPtrType)(v) +} + +func (*eventTargetRedshiftTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetRedshiftTarget)(nil)).Elem() +} + +func (i *eventTargetRedshiftTargetPtrType) ToEventTargetRedshiftTargetPtrOutput() EventTargetRedshiftTargetPtrOutput { + return i.ToEventTargetRedshiftTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetRedshiftTargetPtrType) ToEventTargetRedshiftTargetPtrOutputWithContext(ctx context.Context) EventTargetRedshiftTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRedshiftTargetPtrOutput) +} + +type EventTargetRedshiftTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetRedshiftTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetRedshiftTarget)(nil)).Elem() +} + +func (o EventTargetRedshiftTargetOutput) ToEventTargetRedshiftTargetOutput() EventTargetRedshiftTargetOutput { + return o +} + +func (o EventTargetRedshiftTargetOutput) ToEventTargetRedshiftTargetOutputWithContext(ctx context.Context) EventTargetRedshiftTargetOutput { + return o +} + +func (o EventTargetRedshiftTargetOutput) ToEventTargetRedshiftTargetPtrOutput() EventTargetRedshiftTargetPtrOutput { + return o.ToEventTargetRedshiftTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetRedshiftTargetOutput) ToEventTargetRedshiftTargetPtrOutputWithContext(ctx context.Context) EventTargetRedshiftTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetRedshiftTarget) *EventTargetRedshiftTarget { + return &v + }).(EventTargetRedshiftTargetPtrOutput) +} + +// The name of the database. +func (o EventTargetRedshiftTargetOutput) Database() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetRedshiftTarget) string { return v.Database }).(pulumi.StringOutput) +} + +// The database user name. +func (o EventTargetRedshiftTargetOutput) DbUser() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetRedshiftTarget) *string { return v.DbUser }).(pulumi.StringPtrOutput) +} + +// The name or ARN of the secret that enables access to the database. +func (o EventTargetRedshiftTargetOutput) SecretsManagerArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetRedshiftTarget) *string { return v.SecretsManagerArn }).(pulumi.StringPtrOutput) +} + +// The SQL statement text to run. +func (o EventTargetRedshiftTargetOutput) Sql() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetRedshiftTarget) *string { return v.Sql }).(pulumi.StringPtrOutput) +} + +// The name of the SQL statement. +func (o EventTargetRedshiftTargetOutput) StatementName() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetRedshiftTarget) *string { return v.StatementName }).(pulumi.StringPtrOutput) +} + +// Indicates whether to send an event back to EventBridge after the SQL statement runs. +func (o EventTargetRedshiftTargetOutput) WithEvent() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EventTargetRedshiftTarget) *bool { return v.WithEvent }).(pulumi.BoolPtrOutput) +} + +type EventTargetRedshiftTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetRedshiftTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetRedshiftTarget)(nil)).Elem() +} + +func (o EventTargetRedshiftTargetPtrOutput) ToEventTargetRedshiftTargetPtrOutput() EventTargetRedshiftTargetPtrOutput { + return o +} + +func (o EventTargetRedshiftTargetPtrOutput) ToEventTargetRedshiftTargetPtrOutputWithContext(ctx context.Context) EventTargetRedshiftTargetPtrOutput { + return o +} + +func (o EventTargetRedshiftTargetPtrOutput) Elem() EventTargetRedshiftTargetOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) EventTargetRedshiftTarget { + if v != nil { + return *v + } + var ret EventTargetRedshiftTarget + return ret + }).(EventTargetRedshiftTargetOutput) +} + +// The name of the database. +func (o EventTargetRedshiftTargetPtrOutput) Database() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) *string { + if v == nil { + return nil + } + return &v.Database + }).(pulumi.StringPtrOutput) +} + +// The database user name. +func (o EventTargetRedshiftTargetPtrOutput) DbUser() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) *string { + if v == nil { + return nil + } + return v.DbUser + }).(pulumi.StringPtrOutput) +} + +// The name or ARN of the secret that enables access to the database. +func (o EventTargetRedshiftTargetPtrOutput) SecretsManagerArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) *string { + if v == nil { + return nil + } + return v.SecretsManagerArn + }).(pulumi.StringPtrOutput) +} + +// The SQL statement text to run. +func (o EventTargetRedshiftTargetPtrOutput) Sql() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) *string { + if v == nil { + return nil + } + return v.Sql + }).(pulumi.StringPtrOutput) +} + +// The name of the SQL statement. +func (o EventTargetRedshiftTargetPtrOutput) StatementName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) *string { + if v == nil { + return nil + } + return v.StatementName + }).(pulumi.StringPtrOutput) +} + +// Indicates whether to send an event back to EventBridge after the SQL statement runs. +func (o EventTargetRedshiftTargetPtrOutput) WithEvent() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EventTargetRedshiftTarget) *bool { + if v == nil { + return nil + } + return v.WithEvent + }).(pulumi.BoolPtrOutput) +} + +type EventTargetRetryPolicy struct { + // The age in seconds to continue to make retry attempts. + MaximumEventAgeInSeconds *int `pulumi:"maximumEventAgeInSeconds"` + // maximum number of retry attempts to make before the request fails + MaximumRetryAttempts *int `pulumi:"maximumRetryAttempts"` +} + +// EventTargetRetryPolicyInput is an input type that accepts EventTargetRetryPolicyArgs and EventTargetRetryPolicyOutput values. +// You can construct a concrete instance of `EventTargetRetryPolicyInput` via: +// +// EventTargetRetryPolicyArgs{...} +type EventTargetRetryPolicyInput interface { + pulumi.Input + + ToEventTargetRetryPolicyOutput() EventTargetRetryPolicyOutput + ToEventTargetRetryPolicyOutputWithContext(context.Context) EventTargetRetryPolicyOutput +} + +type EventTargetRetryPolicyArgs struct { + // The age in seconds to continue to make retry attempts. + MaximumEventAgeInSeconds pulumi.IntPtrInput `pulumi:"maximumEventAgeInSeconds"` + // maximum number of retry attempts to make before the request fails + MaximumRetryAttempts pulumi.IntPtrInput `pulumi:"maximumRetryAttempts"` +} + +func (EventTargetRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetRetryPolicy)(nil)).Elem() +} + +func (i EventTargetRetryPolicyArgs) ToEventTargetRetryPolicyOutput() EventTargetRetryPolicyOutput { + return i.ToEventTargetRetryPolicyOutputWithContext(context.Background()) +} + +func (i EventTargetRetryPolicyArgs) ToEventTargetRetryPolicyOutputWithContext(ctx context.Context) EventTargetRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRetryPolicyOutput) +} + +func (i EventTargetRetryPolicyArgs) ToEventTargetRetryPolicyPtrOutput() EventTargetRetryPolicyPtrOutput { + return i.ToEventTargetRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i EventTargetRetryPolicyArgs) ToEventTargetRetryPolicyPtrOutputWithContext(ctx context.Context) EventTargetRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRetryPolicyOutput).ToEventTargetRetryPolicyPtrOutputWithContext(ctx) +} + +// EventTargetRetryPolicyPtrInput is an input type that accepts EventTargetRetryPolicyArgs, EventTargetRetryPolicyPtr and EventTargetRetryPolicyPtrOutput values. +// You can construct a concrete instance of `EventTargetRetryPolicyPtrInput` via: +// +// EventTargetRetryPolicyArgs{...} +// +// or: +// +// nil +type EventTargetRetryPolicyPtrInput interface { + pulumi.Input + + ToEventTargetRetryPolicyPtrOutput() EventTargetRetryPolicyPtrOutput + ToEventTargetRetryPolicyPtrOutputWithContext(context.Context) EventTargetRetryPolicyPtrOutput +} + +type eventTargetRetryPolicyPtrType EventTargetRetryPolicyArgs + +func EventTargetRetryPolicyPtr(v *EventTargetRetryPolicyArgs) EventTargetRetryPolicyPtrInput { + return (*eventTargetRetryPolicyPtrType)(v) +} + +func (*eventTargetRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetRetryPolicy)(nil)).Elem() +} + +func (i *eventTargetRetryPolicyPtrType) ToEventTargetRetryPolicyPtrOutput() EventTargetRetryPolicyPtrOutput { + return i.ToEventTargetRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetRetryPolicyPtrType) ToEventTargetRetryPolicyPtrOutputWithContext(ctx context.Context) EventTargetRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRetryPolicyPtrOutput) +} + +type EventTargetRetryPolicyOutput struct{ *pulumi.OutputState } + +func (EventTargetRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetRetryPolicy)(nil)).Elem() +} + +func (o EventTargetRetryPolicyOutput) ToEventTargetRetryPolicyOutput() EventTargetRetryPolicyOutput { + return o +} + +func (o EventTargetRetryPolicyOutput) ToEventTargetRetryPolicyOutputWithContext(ctx context.Context) EventTargetRetryPolicyOutput { + return o +} + +func (o EventTargetRetryPolicyOutput) ToEventTargetRetryPolicyPtrOutput() EventTargetRetryPolicyPtrOutput { + return o.ToEventTargetRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (o EventTargetRetryPolicyOutput) ToEventTargetRetryPolicyPtrOutputWithContext(ctx context.Context) EventTargetRetryPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetRetryPolicy) *EventTargetRetryPolicy { + return &v + }).(EventTargetRetryPolicyPtrOutput) +} + +// The age in seconds to continue to make retry attempts. +func (o EventTargetRetryPolicyOutput) MaximumEventAgeInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetRetryPolicy) *int { return v.MaximumEventAgeInSeconds }).(pulumi.IntPtrOutput) +} + +// maximum number of retry attempts to make before the request fails +func (o EventTargetRetryPolicyOutput) MaximumRetryAttempts() pulumi.IntPtrOutput { + return o.ApplyT(func(v EventTargetRetryPolicy) *int { return v.MaximumRetryAttempts }).(pulumi.IntPtrOutput) +} + +type EventTargetRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetRetryPolicy)(nil)).Elem() +} + +func (o EventTargetRetryPolicyPtrOutput) ToEventTargetRetryPolicyPtrOutput() EventTargetRetryPolicyPtrOutput { + return o +} + +func (o EventTargetRetryPolicyPtrOutput) ToEventTargetRetryPolicyPtrOutputWithContext(ctx context.Context) EventTargetRetryPolicyPtrOutput { + return o +} + +func (o EventTargetRetryPolicyPtrOutput) Elem() EventTargetRetryPolicyOutput { + return o.ApplyT(func(v *EventTargetRetryPolicy) EventTargetRetryPolicy { + if v != nil { + return *v + } + var ret EventTargetRetryPolicy + return ret + }).(EventTargetRetryPolicyOutput) +} + +// The age in seconds to continue to make retry attempts. +func (o EventTargetRetryPolicyPtrOutput) MaximumEventAgeInSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventTargetRetryPolicy) *int { + if v == nil { + return nil + } + return v.MaximumEventAgeInSeconds + }).(pulumi.IntPtrOutput) +} + +// maximum number of retry attempts to make before the request fails +func (o EventTargetRetryPolicyPtrOutput) MaximumRetryAttempts() pulumi.IntPtrOutput { + return o.ApplyT(func(v *EventTargetRetryPolicy) *int { + if v == nil { + return nil + } + return v.MaximumRetryAttempts + }).(pulumi.IntPtrOutput) +} + +type EventTargetRunCommandTarget struct { + // Can be either `tag:tag-key` or `InstanceIds`. + Key string `pulumi:"key"` + // If Key is `tag:tag-key`, Values is a list of tag values. If Key is `InstanceIds`, Values is a list of Amazon EC2 instance IDs. + Values []string `pulumi:"values"` +} + +// EventTargetRunCommandTargetInput is an input type that accepts EventTargetRunCommandTargetArgs and EventTargetRunCommandTargetOutput values. +// You can construct a concrete instance of `EventTargetRunCommandTargetInput` via: +// +// EventTargetRunCommandTargetArgs{...} +type EventTargetRunCommandTargetInput interface { + pulumi.Input + + ToEventTargetRunCommandTargetOutput() EventTargetRunCommandTargetOutput + ToEventTargetRunCommandTargetOutputWithContext(context.Context) EventTargetRunCommandTargetOutput +} + +type EventTargetRunCommandTargetArgs struct { + // Can be either `tag:tag-key` or `InstanceIds`. + Key pulumi.StringInput `pulumi:"key"` + // If Key is `tag:tag-key`, Values is a list of tag values. If Key is `InstanceIds`, Values is a list of Amazon EC2 instance IDs. + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (EventTargetRunCommandTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetRunCommandTarget)(nil)).Elem() +} + +func (i EventTargetRunCommandTargetArgs) ToEventTargetRunCommandTargetOutput() EventTargetRunCommandTargetOutput { + return i.ToEventTargetRunCommandTargetOutputWithContext(context.Background()) +} + +func (i EventTargetRunCommandTargetArgs) ToEventTargetRunCommandTargetOutputWithContext(ctx context.Context) EventTargetRunCommandTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRunCommandTargetOutput) +} + +// EventTargetRunCommandTargetArrayInput is an input type that accepts EventTargetRunCommandTargetArray and EventTargetRunCommandTargetArrayOutput values. +// You can construct a concrete instance of `EventTargetRunCommandTargetArrayInput` via: +// +// EventTargetRunCommandTargetArray{ EventTargetRunCommandTargetArgs{...} } +type EventTargetRunCommandTargetArrayInput interface { + pulumi.Input + + ToEventTargetRunCommandTargetArrayOutput() EventTargetRunCommandTargetArrayOutput + ToEventTargetRunCommandTargetArrayOutputWithContext(context.Context) EventTargetRunCommandTargetArrayOutput +} + +type EventTargetRunCommandTargetArray []EventTargetRunCommandTargetInput + +func (EventTargetRunCommandTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetRunCommandTarget)(nil)).Elem() +} + +func (i EventTargetRunCommandTargetArray) ToEventTargetRunCommandTargetArrayOutput() EventTargetRunCommandTargetArrayOutput { + return i.ToEventTargetRunCommandTargetArrayOutputWithContext(context.Background()) +} + +func (i EventTargetRunCommandTargetArray) ToEventTargetRunCommandTargetArrayOutputWithContext(ctx context.Context) EventTargetRunCommandTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetRunCommandTargetArrayOutput) +} + +type EventTargetRunCommandTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetRunCommandTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetRunCommandTarget)(nil)).Elem() +} + +func (o EventTargetRunCommandTargetOutput) ToEventTargetRunCommandTargetOutput() EventTargetRunCommandTargetOutput { + return o +} + +func (o EventTargetRunCommandTargetOutput) ToEventTargetRunCommandTargetOutputWithContext(ctx context.Context) EventTargetRunCommandTargetOutput { + return o +} + +// Can be either `tag:tag-key` or `InstanceIds`. +func (o EventTargetRunCommandTargetOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetRunCommandTarget) string { return v.Key }).(pulumi.StringOutput) +} + +// If Key is `tag:tag-key`, Values is a list of tag values. If Key is `InstanceIds`, Values is a list of Amazon EC2 instance IDs. +func (o EventTargetRunCommandTargetOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v EventTargetRunCommandTarget) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type EventTargetRunCommandTargetArrayOutput struct{ *pulumi.OutputState } + +func (EventTargetRunCommandTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetRunCommandTarget)(nil)).Elem() +} + +func (o EventTargetRunCommandTargetArrayOutput) ToEventTargetRunCommandTargetArrayOutput() EventTargetRunCommandTargetArrayOutput { + return o +} + +func (o EventTargetRunCommandTargetArrayOutput) ToEventTargetRunCommandTargetArrayOutputWithContext(ctx context.Context) EventTargetRunCommandTargetArrayOutput { + return o +} + +func (o EventTargetRunCommandTargetArrayOutput) Index(i pulumi.IntInput) EventTargetRunCommandTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventTargetRunCommandTarget { + return vs[0].([]EventTargetRunCommandTarget)[vs[1].(int)] + }).(EventTargetRunCommandTargetOutput) +} + +type EventTargetSagemakerPipelineTarget struct { + // List of Parameter names and values for SageMaker Model Building Pipeline execution. + PipelineParameterLists []EventTargetSagemakerPipelineTargetPipelineParameterList `pulumi:"pipelineParameterLists"` +} + +// EventTargetSagemakerPipelineTargetInput is an input type that accepts EventTargetSagemakerPipelineTargetArgs and EventTargetSagemakerPipelineTargetOutput values. +// You can construct a concrete instance of `EventTargetSagemakerPipelineTargetInput` via: +// +// EventTargetSagemakerPipelineTargetArgs{...} +type EventTargetSagemakerPipelineTargetInput interface { + pulumi.Input + + ToEventTargetSagemakerPipelineTargetOutput() EventTargetSagemakerPipelineTargetOutput + ToEventTargetSagemakerPipelineTargetOutputWithContext(context.Context) EventTargetSagemakerPipelineTargetOutput +} + +type EventTargetSagemakerPipelineTargetArgs struct { + // List of Parameter names and values for SageMaker Model Building Pipeline execution. + PipelineParameterLists EventTargetSagemakerPipelineTargetPipelineParameterListArrayInput `pulumi:"pipelineParameterLists"` +} + +func (EventTargetSagemakerPipelineTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetSagemakerPipelineTarget)(nil)).Elem() +} + +func (i EventTargetSagemakerPipelineTargetArgs) ToEventTargetSagemakerPipelineTargetOutput() EventTargetSagemakerPipelineTargetOutput { + return i.ToEventTargetSagemakerPipelineTargetOutputWithContext(context.Background()) +} + +func (i EventTargetSagemakerPipelineTargetArgs) ToEventTargetSagemakerPipelineTargetOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSagemakerPipelineTargetOutput) +} + +func (i EventTargetSagemakerPipelineTargetArgs) ToEventTargetSagemakerPipelineTargetPtrOutput() EventTargetSagemakerPipelineTargetPtrOutput { + return i.ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetSagemakerPipelineTargetArgs) ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSagemakerPipelineTargetOutput).ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(ctx) +} + +// EventTargetSagemakerPipelineTargetPtrInput is an input type that accepts EventTargetSagemakerPipelineTargetArgs, EventTargetSagemakerPipelineTargetPtr and EventTargetSagemakerPipelineTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetSagemakerPipelineTargetPtrInput` via: +// +// EventTargetSagemakerPipelineTargetArgs{...} +// +// or: +// +// nil +type EventTargetSagemakerPipelineTargetPtrInput interface { + pulumi.Input + + ToEventTargetSagemakerPipelineTargetPtrOutput() EventTargetSagemakerPipelineTargetPtrOutput + ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(context.Context) EventTargetSagemakerPipelineTargetPtrOutput +} + +type eventTargetSagemakerPipelineTargetPtrType EventTargetSagemakerPipelineTargetArgs + +func EventTargetSagemakerPipelineTargetPtr(v *EventTargetSagemakerPipelineTargetArgs) EventTargetSagemakerPipelineTargetPtrInput { + return (*eventTargetSagemakerPipelineTargetPtrType)(v) +} + +func (*eventTargetSagemakerPipelineTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetSagemakerPipelineTarget)(nil)).Elem() +} + +func (i *eventTargetSagemakerPipelineTargetPtrType) ToEventTargetSagemakerPipelineTargetPtrOutput() EventTargetSagemakerPipelineTargetPtrOutput { + return i.ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetSagemakerPipelineTargetPtrType) ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSagemakerPipelineTargetPtrOutput) +} + +type EventTargetSagemakerPipelineTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetSagemakerPipelineTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetSagemakerPipelineTarget)(nil)).Elem() +} + +func (o EventTargetSagemakerPipelineTargetOutput) ToEventTargetSagemakerPipelineTargetOutput() EventTargetSagemakerPipelineTargetOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetOutput) ToEventTargetSagemakerPipelineTargetOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetOutput) ToEventTargetSagemakerPipelineTargetPtrOutput() EventTargetSagemakerPipelineTargetPtrOutput { + return o.ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetSagemakerPipelineTargetOutput) ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetSagemakerPipelineTarget) *EventTargetSagemakerPipelineTarget { + return &v + }).(EventTargetSagemakerPipelineTargetPtrOutput) +} + +// List of Parameter names and values for SageMaker Model Building Pipeline execution. +func (o EventTargetSagemakerPipelineTargetOutput) PipelineParameterLists() EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput { + return o.ApplyT(func(v EventTargetSagemakerPipelineTarget) []EventTargetSagemakerPipelineTargetPipelineParameterList { + return v.PipelineParameterLists + }).(EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) +} + +type EventTargetSagemakerPipelineTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetSagemakerPipelineTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetSagemakerPipelineTarget)(nil)).Elem() +} + +func (o EventTargetSagemakerPipelineTargetPtrOutput) ToEventTargetSagemakerPipelineTargetPtrOutput() EventTargetSagemakerPipelineTargetPtrOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetPtrOutput) ToEventTargetSagemakerPipelineTargetPtrOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPtrOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetPtrOutput) Elem() EventTargetSagemakerPipelineTargetOutput { + return o.ApplyT(func(v *EventTargetSagemakerPipelineTarget) EventTargetSagemakerPipelineTarget { + if v != nil { + return *v + } + var ret EventTargetSagemakerPipelineTarget + return ret + }).(EventTargetSagemakerPipelineTargetOutput) +} + +// List of Parameter names and values for SageMaker Model Building Pipeline execution. +func (o EventTargetSagemakerPipelineTargetPtrOutput) PipelineParameterLists() EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput { + return o.ApplyT(func(v *EventTargetSagemakerPipelineTarget) []EventTargetSagemakerPipelineTargetPipelineParameterList { + if v == nil { + return nil + } + return v.PipelineParameterLists + }).(EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) +} + +type EventTargetSagemakerPipelineTargetPipelineParameterList struct { + // Name of parameter to start execution of a SageMaker Model Building Pipeline. + Name string `pulumi:"name"` + // Value of parameter to start execution of a SageMaker Model Building Pipeline. + Value string `pulumi:"value"` +} + +// EventTargetSagemakerPipelineTargetPipelineParameterListInput is an input type that accepts EventTargetSagemakerPipelineTargetPipelineParameterListArgs and EventTargetSagemakerPipelineTargetPipelineParameterListOutput values. +// You can construct a concrete instance of `EventTargetSagemakerPipelineTargetPipelineParameterListInput` via: +// +// EventTargetSagemakerPipelineTargetPipelineParameterListArgs{...} +type EventTargetSagemakerPipelineTargetPipelineParameterListInput interface { + pulumi.Input + + ToEventTargetSagemakerPipelineTargetPipelineParameterListOutput() EventTargetSagemakerPipelineTargetPipelineParameterListOutput + ToEventTargetSagemakerPipelineTargetPipelineParameterListOutputWithContext(context.Context) EventTargetSagemakerPipelineTargetPipelineParameterListOutput +} + +type EventTargetSagemakerPipelineTargetPipelineParameterListArgs struct { + // Name of parameter to start execution of a SageMaker Model Building Pipeline. + Name pulumi.StringInput `pulumi:"name"` + // Value of parameter to start execution of a SageMaker Model Building Pipeline. + Value pulumi.StringInput `pulumi:"value"` +} + +func (EventTargetSagemakerPipelineTargetPipelineParameterListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetSagemakerPipelineTargetPipelineParameterList)(nil)).Elem() +} + +func (i EventTargetSagemakerPipelineTargetPipelineParameterListArgs) ToEventTargetSagemakerPipelineTargetPipelineParameterListOutput() EventTargetSagemakerPipelineTargetPipelineParameterListOutput { + return i.ToEventTargetSagemakerPipelineTargetPipelineParameterListOutputWithContext(context.Background()) +} + +func (i EventTargetSagemakerPipelineTargetPipelineParameterListArgs) ToEventTargetSagemakerPipelineTargetPipelineParameterListOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPipelineParameterListOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSagemakerPipelineTargetPipelineParameterListOutput) +} + +// EventTargetSagemakerPipelineTargetPipelineParameterListArrayInput is an input type that accepts EventTargetSagemakerPipelineTargetPipelineParameterListArray and EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput values. +// You can construct a concrete instance of `EventTargetSagemakerPipelineTargetPipelineParameterListArrayInput` via: +// +// EventTargetSagemakerPipelineTargetPipelineParameterListArray{ EventTargetSagemakerPipelineTargetPipelineParameterListArgs{...} } +type EventTargetSagemakerPipelineTargetPipelineParameterListArrayInput interface { + pulumi.Input + + ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput() EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput + ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutputWithContext(context.Context) EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput +} + +type EventTargetSagemakerPipelineTargetPipelineParameterListArray []EventTargetSagemakerPipelineTargetPipelineParameterListInput + +func (EventTargetSagemakerPipelineTargetPipelineParameterListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetSagemakerPipelineTargetPipelineParameterList)(nil)).Elem() +} + +func (i EventTargetSagemakerPipelineTargetPipelineParameterListArray) ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput() EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput { + return i.ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutputWithContext(context.Background()) +} + +func (i EventTargetSagemakerPipelineTargetPipelineParameterListArray) ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) +} + +type EventTargetSagemakerPipelineTargetPipelineParameterListOutput struct{ *pulumi.OutputState } + +func (EventTargetSagemakerPipelineTargetPipelineParameterListOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetSagemakerPipelineTargetPipelineParameterList)(nil)).Elem() +} + +func (o EventTargetSagemakerPipelineTargetPipelineParameterListOutput) ToEventTargetSagemakerPipelineTargetPipelineParameterListOutput() EventTargetSagemakerPipelineTargetPipelineParameterListOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetPipelineParameterListOutput) ToEventTargetSagemakerPipelineTargetPipelineParameterListOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPipelineParameterListOutput { + return o +} + +// Name of parameter to start execution of a SageMaker Model Building Pipeline. +func (o EventTargetSagemakerPipelineTargetPipelineParameterListOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetSagemakerPipelineTargetPipelineParameterList) string { return v.Name }).(pulumi.StringOutput) +} + +// Value of parameter to start execution of a SageMaker Model Building Pipeline. +func (o EventTargetSagemakerPipelineTargetPipelineParameterListOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v EventTargetSagemakerPipelineTargetPipelineParameterList) string { return v.Value }).(pulumi.StringOutput) +} + +type EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput struct{ *pulumi.OutputState } + +func (EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]EventTargetSagemakerPipelineTargetPipelineParameterList)(nil)).Elem() +} + +func (o EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput() EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) ToEventTargetSagemakerPipelineTargetPipelineParameterListArrayOutputWithContext(ctx context.Context) EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput { + return o +} + +func (o EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput) Index(i pulumi.IntInput) EventTargetSagemakerPipelineTargetPipelineParameterListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) EventTargetSagemakerPipelineTargetPipelineParameterList { + return vs[0].([]EventTargetSagemakerPipelineTargetPipelineParameterList)[vs[1].(int)] + }).(EventTargetSagemakerPipelineTargetPipelineParameterListOutput) +} + +type EventTargetSqsTarget struct { + // The FIFO message group ID to use as the target. + MessageGroupId *string `pulumi:"messageGroupId"` +} + +// EventTargetSqsTargetInput is an input type that accepts EventTargetSqsTargetArgs and EventTargetSqsTargetOutput values. +// You can construct a concrete instance of `EventTargetSqsTargetInput` via: +// +// EventTargetSqsTargetArgs{...} +type EventTargetSqsTargetInput interface { + pulumi.Input + + ToEventTargetSqsTargetOutput() EventTargetSqsTargetOutput + ToEventTargetSqsTargetOutputWithContext(context.Context) EventTargetSqsTargetOutput +} + +type EventTargetSqsTargetArgs struct { + // The FIFO message group ID to use as the target. + MessageGroupId pulumi.StringPtrInput `pulumi:"messageGroupId"` +} + +func (EventTargetSqsTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetSqsTarget)(nil)).Elem() +} + +func (i EventTargetSqsTargetArgs) ToEventTargetSqsTargetOutput() EventTargetSqsTargetOutput { + return i.ToEventTargetSqsTargetOutputWithContext(context.Background()) +} + +func (i EventTargetSqsTargetArgs) ToEventTargetSqsTargetOutputWithContext(ctx context.Context) EventTargetSqsTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSqsTargetOutput) +} + +func (i EventTargetSqsTargetArgs) ToEventTargetSqsTargetPtrOutput() EventTargetSqsTargetPtrOutput { + return i.ToEventTargetSqsTargetPtrOutputWithContext(context.Background()) +} + +func (i EventTargetSqsTargetArgs) ToEventTargetSqsTargetPtrOutputWithContext(ctx context.Context) EventTargetSqsTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSqsTargetOutput).ToEventTargetSqsTargetPtrOutputWithContext(ctx) +} + +// EventTargetSqsTargetPtrInput is an input type that accepts EventTargetSqsTargetArgs, EventTargetSqsTargetPtr and EventTargetSqsTargetPtrOutput values. +// You can construct a concrete instance of `EventTargetSqsTargetPtrInput` via: +// +// EventTargetSqsTargetArgs{...} +// +// or: +// +// nil +type EventTargetSqsTargetPtrInput interface { + pulumi.Input + + ToEventTargetSqsTargetPtrOutput() EventTargetSqsTargetPtrOutput + ToEventTargetSqsTargetPtrOutputWithContext(context.Context) EventTargetSqsTargetPtrOutput +} + +type eventTargetSqsTargetPtrType EventTargetSqsTargetArgs + +func EventTargetSqsTargetPtr(v *EventTargetSqsTargetArgs) EventTargetSqsTargetPtrInput { + return (*eventTargetSqsTargetPtrType)(v) +} + +func (*eventTargetSqsTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetSqsTarget)(nil)).Elem() +} + +func (i *eventTargetSqsTargetPtrType) ToEventTargetSqsTargetPtrOutput() EventTargetSqsTargetPtrOutput { + return i.ToEventTargetSqsTargetPtrOutputWithContext(context.Background()) +} + +func (i *eventTargetSqsTargetPtrType) ToEventTargetSqsTargetPtrOutputWithContext(ctx context.Context) EventTargetSqsTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EventTargetSqsTargetPtrOutput) +} + +type EventTargetSqsTargetOutput struct{ *pulumi.OutputState } + +func (EventTargetSqsTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EventTargetSqsTarget)(nil)).Elem() +} + +func (o EventTargetSqsTargetOutput) ToEventTargetSqsTargetOutput() EventTargetSqsTargetOutput { + return o +} + +func (o EventTargetSqsTargetOutput) ToEventTargetSqsTargetOutputWithContext(ctx context.Context) EventTargetSqsTargetOutput { + return o +} + +func (o EventTargetSqsTargetOutput) ToEventTargetSqsTargetPtrOutput() EventTargetSqsTargetPtrOutput { + return o.ToEventTargetSqsTargetPtrOutputWithContext(context.Background()) +} + +func (o EventTargetSqsTargetOutput) ToEventTargetSqsTargetPtrOutputWithContext(ctx context.Context) EventTargetSqsTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EventTargetSqsTarget) *EventTargetSqsTarget { + return &v + }).(EventTargetSqsTargetPtrOutput) +} + +// The FIFO message group ID to use as the target. +func (o EventTargetSqsTargetOutput) MessageGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v EventTargetSqsTarget) *string { return v.MessageGroupId }).(pulumi.StringPtrOutput) +} + +type EventTargetSqsTargetPtrOutput struct{ *pulumi.OutputState } + +func (EventTargetSqsTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EventTargetSqsTarget)(nil)).Elem() +} + +func (o EventTargetSqsTargetPtrOutput) ToEventTargetSqsTargetPtrOutput() EventTargetSqsTargetPtrOutput { + return o +} + +func (o EventTargetSqsTargetPtrOutput) ToEventTargetSqsTargetPtrOutputWithContext(ctx context.Context) EventTargetSqsTargetPtrOutput { + return o +} + +func (o EventTargetSqsTargetPtrOutput) Elem() EventTargetSqsTargetOutput { + return o.ApplyT(func(v *EventTargetSqsTarget) EventTargetSqsTarget { + if v != nil { + return *v + } + var ret EventTargetSqsTarget + return ret + }).(EventTargetSqsTargetOutput) +} + +// The FIFO message group ID to use as the target. +func (o EventTargetSqsTargetPtrOutput) MessageGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EventTargetSqsTarget) *string { + if v == nil { + return nil + } + return v.MessageGroupId + }).(pulumi.StringPtrOutput) +} + +type InternetMonitorHealthEventsConfig struct { + // The health event threshold percentage set for availability scores. + AvailabilityScoreThreshold *float64 `pulumi:"availabilityScoreThreshold"` + // The health event threshold percentage set for performance scores. + PerformanceScoreThreshold *float64 `pulumi:"performanceScoreThreshold"` +} + +// InternetMonitorHealthEventsConfigInput is an input type that accepts InternetMonitorHealthEventsConfigArgs and InternetMonitorHealthEventsConfigOutput values. +// You can construct a concrete instance of `InternetMonitorHealthEventsConfigInput` via: +// +// InternetMonitorHealthEventsConfigArgs{...} +type InternetMonitorHealthEventsConfigInput interface { + pulumi.Input + + ToInternetMonitorHealthEventsConfigOutput() InternetMonitorHealthEventsConfigOutput + ToInternetMonitorHealthEventsConfigOutputWithContext(context.Context) InternetMonitorHealthEventsConfigOutput +} + +type InternetMonitorHealthEventsConfigArgs struct { + // The health event threshold percentage set for availability scores. + AvailabilityScoreThreshold pulumi.Float64PtrInput `pulumi:"availabilityScoreThreshold"` + // The health event threshold percentage set for performance scores. + PerformanceScoreThreshold pulumi.Float64PtrInput `pulumi:"performanceScoreThreshold"` +} + +func (InternetMonitorHealthEventsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InternetMonitorHealthEventsConfig)(nil)).Elem() +} + +func (i InternetMonitorHealthEventsConfigArgs) ToInternetMonitorHealthEventsConfigOutput() InternetMonitorHealthEventsConfigOutput { + return i.ToInternetMonitorHealthEventsConfigOutputWithContext(context.Background()) +} + +func (i InternetMonitorHealthEventsConfigArgs) ToInternetMonitorHealthEventsConfigOutputWithContext(ctx context.Context) InternetMonitorHealthEventsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorHealthEventsConfigOutput) +} + +func (i InternetMonitorHealthEventsConfigArgs) ToInternetMonitorHealthEventsConfigPtrOutput() InternetMonitorHealthEventsConfigPtrOutput { + return i.ToInternetMonitorHealthEventsConfigPtrOutputWithContext(context.Background()) +} + +func (i InternetMonitorHealthEventsConfigArgs) ToInternetMonitorHealthEventsConfigPtrOutputWithContext(ctx context.Context) InternetMonitorHealthEventsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorHealthEventsConfigOutput).ToInternetMonitorHealthEventsConfigPtrOutputWithContext(ctx) +} + +// InternetMonitorHealthEventsConfigPtrInput is an input type that accepts InternetMonitorHealthEventsConfigArgs, InternetMonitorHealthEventsConfigPtr and InternetMonitorHealthEventsConfigPtrOutput values. +// You can construct a concrete instance of `InternetMonitorHealthEventsConfigPtrInput` via: +// +// InternetMonitorHealthEventsConfigArgs{...} +// +// or: +// +// nil +type InternetMonitorHealthEventsConfigPtrInput interface { + pulumi.Input + + ToInternetMonitorHealthEventsConfigPtrOutput() InternetMonitorHealthEventsConfigPtrOutput + ToInternetMonitorHealthEventsConfigPtrOutputWithContext(context.Context) InternetMonitorHealthEventsConfigPtrOutput +} + +type internetMonitorHealthEventsConfigPtrType InternetMonitorHealthEventsConfigArgs + +func InternetMonitorHealthEventsConfigPtr(v *InternetMonitorHealthEventsConfigArgs) InternetMonitorHealthEventsConfigPtrInput { + return (*internetMonitorHealthEventsConfigPtrType)(v) +} + +func (*internetMonitorHealthEventsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitorHealthEventsConfig)(nil)).Elem() +} + +func (i *internetMonitorHealthEventsConfigPtrType) ToInternetMonitorHealthEventsConfigPtrOutput() InternetMonitorHealthEventsConfigPtrOutput { + return i.ToInternetMonitorHealthEventsConfigPtrOutputWithContext(context.Background()) +} + +func (i *internetMonitorHealthEventsConfigPtrType) ToInternetMonitorHealthEventsConfigPtrOutputWithContext(ctx context.Context) InternetMonitorHealthEventsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorHealthEventsConfigPtrOutput) +} + +type InternetMonitorHealthEventsConfigOutput struct{ *pulumi.OutputState } + +func (InternetMonitorHealthEventsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InternetMonitorHealthEventsConfig)(nil)).Elem() +} + +func (o InternetMonitorHealthEventsConfigOutput) ToInternetMonitorHealthEventsConfigOutput() InternetMonitorHealthEventsConfigOutput { + return o +} + +func (o InternetMonitorHealthEventsConfigOutput) ToInternetMonitorHealthEventsConfigOutputWithContext(ctx context.Context) InternetMonitorHealthEventsConfigOutput { + return o +} + +func (o InternetMonitorHealthEventsConfigOutput) ToInternetMonitorHealthEventsConfigPtrOutput() InternetMonitorHealthEventsConfigPtrOutput { + return o.ToInternetMonitorHealthEventsConfigPtrOutputWithContext(context.Background()) +} + +func (o InternetMonitorHealthEventsConfigOutput) ToInternetMonitorHealthEventsConfigPtrOutputWithContext(ctx context.Context) InternetMonitorHealthEventsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InternetMonitorHealthEventsConfig) *InternetMonitorHealthEventsConfig { + return &v + }).(InternetMonitorHealthEventsConfigPtrOutput) +} + +// The health event threshold percentage set for availability scores. +func (o InternetMonitorHealthEventsConfigOutput) AvailabilityScoreThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v InternetMonitorHealthEventsConfig) *float64 { return v.AvailabilityScoreThreshold }).(pulumi.Float64PtrOutput) +} + +// The health event threshold percentage set for performance scores. +func (o InternetMonitorHealthEventsConfigOutput) PerformanceScoreThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v InternetMonitorHealthEventsConfig) *float64 { return v.PerformanceScoreThreshold }).(pulumi.Float64PtrOutput) +} + +type InternetMonitorHealthEventsConfigPtrOutput struct{ *pulumi.OutputState } + +func (InternetMonitorHealthEventsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitorHealthEventsConfig)(nil)).Elem() +} + +func (o InternetMonitorHealthEventsConfigPtrOutput) ToInternetMonitorHealthEventsConfigPtrOutput() InternetMonitorHealthEventsConfigPtrOutput { + return o +} + +func (o InternetMonitorHealthEventsConfigPtrOutput) ToInternetMonitorHealthEventsConfigPtrOutputWithContext(ctx context.Context) InternetMonitorHealthEventsConfigPtrOutput { + return o +} + +func (o InternetMonitorHealthEventsConfigPtrOutput) Elem() InternetMonitorHealthEventsConfigOutput { + return o.ApplyT(func(v *InternetMonitorHealthEventsConfig) InternetMonitorHealthEventsConfig { + if v != nil { + return *v + } + var ret InternetMonitorHealthEventsConfig + return ret + }).(InternetMonitorHealthEventsConfigOutput) +} + +// The health event threshold percentage set for availability scores. +func (o InternetMonitorHealthEventsConfigPtrOutput) AvailabilityScoreThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *InternetMonitorHealthEventsConfig) *float64 { + if v == nil { + return nil + } + return v.AvailabilityScoreThreshold + }).(pulumi.Float64PtrOutput) +} + +// The health event threshold percentage set for performance scores. +func (o InternetMonitorHealthEventsConfigPtrOutput) PerformanceScoreThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *InternetMonitorHealthEventsConfig) *float64 { + if v == nil { + return nil + } + return v.PerformanceScoreThreshold + }).(pulumi.Float64PtrOutput) +} + +type InternetMonitorInternetMeasurementsLogDelivery struct { + S3Config *InternetMonitorInternetMeasurementsLogDeliveryS3Config `pulumi:"s3Config"` +} + +// InternetMonitorInternetMeasurementsLogDeliveryInput is an input type that accepts InternetMonitorInternetMeasurementsLogDeliveryArgs and InternetMonitorInternetMeasurementsLogDeliveryOutput values. +// You can construct a concrete instance of `InternetMonitorInternetMeasurementsLogDeliveryInput` via: +// +// InternetMonitorInternetMeasurementsLogDeliveryArgs{...} +type InternetMonitorInternetMeasurementsLogDeliveryInput interface { + pulumi.Input + + ToInternetMonitorInternetMeasurementsLogDeliveryOutput() InternetMonitorInternetMeasurementsLogDeliveryOutput + ToInternetMonitorInternetMeasurementsLogDeliveryOutputWithContext(context.Context) InternetMonitorInternetMeasurementsLogDeliveryOutput +} + +type InternetMonitorInternetMeasurementsLogDeliveryArgs struct { + S3Config InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrInput `pulumi:"s3Config"` +} + +func (InternetMonitorInternetMeasurementsLogDeliveryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDelivery)(nil)).Elem() +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryArgs) ToInternetMonitorInternetMeasurementsLogDeliveryOutput() InternetMonitorInternetMeasurementsLogDeliveryOutput { + return i.ToInternetMonitorInternetMeasurementsLogDeliveryOutputWithContext(context.Background()) +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryArgs) ToInternetMonitorInternetMeasurementsLogDeliveryOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorInternetMeasurementsLogDeliveryOutput) +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryArgs) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return i.ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(context.Background()) +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryArgs) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorInternetMeasurementsLogDeliveryOutput).ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(ctx) +} + +// InternetMonitorInternetMeasurementsLogDeliveryPtrInput is an input type that accepts InternetMonitorInternetMeasurementsLogDeliveryArgs, InternetMonitorInternetMeasurementsLogDeliveryPtr and InternetMonitorInternetMeasurementsLogDeliveryPtrOutput values. +// You can construct a concrete instance of `InternetMonitorInternetMeasurementsLogDeliveryPtrInput` via: +// +// InternetMonitorInternetMeasurementsLogDeliveryArgs{...} +// +// or: +// +// nil +type InternetMonitorInternetMeasurementsLogDeliveryPtrInput interface { + pulumi.Input + + ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryPtrOutput + ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(context.Context) InternetMonitorInternetMeasurementsLogDeliveryPtrOutput +} + +type internetMonitorInternetMeasurementsLogDeliveryPtrType InternetMonitorInternetMeasurementsLogDeliveryArgs + +func InternetMonitorInternetMeasurementsLogDeliveryPtr(v *InternetMonitorInternetMeasurementsLogDeliveryArgs) InternetMonitorInternetMeasurementsLogDeliveryPtrInput { + return (*internetMonitorInternetMeasurementsLogDeliveryPtrType)(v) +} + +func (*internetMonitorInternetMeasurementsLogDeliveryPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitorInternetMeasurementsLogDelivery)(nil)).Elem() +} + +func (i *internetMonitorInternetMeasurementsLogDeliveryPtrType) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return i.ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(context.Background()) +} + +func (i *internetMonitorInternetMeasurementsLogDeliveryPtrType) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) +} + +type InternetMonitorInternetMeasurementsLogDeliveryOutput struct{ *pulumi.OutputState } + +func (InternetMonitorInternetMeasurementsLogDeliveryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDelivery)(nil)).Elem() +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryOutput) ToInternetMonitorInternetMeasurementsLogDeliveryOutput() InternetMonitorInternetMeasurementsLogDeliveryOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryOutput) ToInternetMonitorInternetMeasurementsLogDeliveryOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryOutput) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return o.ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(context.Background()) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryOutput) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InternetMonitorInternetMeasurementsLogDelivery) *InternetMonitorInternetMeasurementsLogDelivery { + return &v + }).(InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryOutput) S3Config() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return o.ApplyT(func(v InternetMonitorInternetMeasurementsLogDelivery) *InternetMonitorInternetMeasurementsLogDeliveryS3Config { + return v.S3Config + }).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) +} + +type InternetMonitorInternetMeasurementsLogDeliveryPtrOutput struct{ *pulumi.OutputState } + +func (InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitorInternetMeasurementsLogDelivery)(nil)).Elem() +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) ToInternetMonitorInternetMeasurementsLogDeliveryPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryPtrOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) Elem() InternetMonitorInternetMeasurementsLogDeliveryOutput { + return o.ApplyT(func(v *InternetMonitorInternetMeasurementsLogDelivery) InternetMonitorInternetMeasurementsLogDelivery { + if v != nil { + return *v + } + var ret InternetMonitorInternetMeasurementsLogDelivery + return ret + }).(InternetMonitorInternetMeasurementsLogDeliveryOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryPtrOutput) S3Config() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return o.ApplyT(func(v *InternetMonitorInternetMeasurementsLogDelivery) *InternetMonitorInternetMeasurementsLogDeliveryS3Config { + if v == nil { + return nil + } + return v.S3Config + }).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) +} + +type InternetMonitorInternetMeasurementsLogDeliveryS3Config struct { + BucketName string `pulumi:"bucketName"` + BucketPrefix *string `pulumi:"bucketPrefix"` + LogDeliveryStatus *string `pulumi:"logDeliveryStatus"` +} + +// InternetMonitorInternetMeasurementsLogDeliveryS3ConfigInput is an input type that accepts InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs and InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput values. +// You can construct a concrete instance of `InternetMonitorInternetMeasurementsLogDeliveryS3ConfigInput` via: +// +// InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs{...} +type InternetMonitorInternetMeasurementsLogDeliveryS3ConfigInput interface { + pulumi.Input + + ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput + ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutputWithContext(context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput +} + +type InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs struct { + BucketName pulumi.StringInput `pulumi:"bucketName"` + BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` + LogDeliveryStatus pulumi.StringPtrInput `pulumi:"logDeliveryStatus"` +} + +func (InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDeliveryS3Config)(nil)).Elem() +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput { + return i.ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutputWithContext(context.Background()) +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return i.ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(context.Background()) +} + +func (i InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput).ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(ctx) +} + +// InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrInput is an input type that accepts InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs, InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtr and InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput values. +// You can construct a concrete instance of `InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrInput` via: +// +// InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs{...} +// +// or: +// +// nil +type InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrInput interface { + pulumi.Input + + ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput + ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput +} + +type internetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrType InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs + +func InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtr(v *InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrInput { + return (*internetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrType)(v) +} + +func (*internetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitorInternetMeasurementsLogDeliveryS3Config)(nil)).Elem() +} + +func (i *internetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrType) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return i.ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(context.Background()) +} + +func (i *internetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrType) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) +} + +type InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput struct{ *pulumi.OutputState } + +func (InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDeliveryS3Config)(nil)).Elem() +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return o.ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(context.Background()) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InternetMonitorInternetMeasurementsLogDeliveryS3Config) *InternetMonitorInternetMeasurementsLogDeliveryS3Config { + return &v + }).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) BucketName() pulumi.StringOutput { + return o.ApplyT(func(v InternetMonitorInternetMeasurementsLogDeliveryS3Config) string { return v.BucketName }).(pulumi.StringOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) BucketPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v InternetMonitorInternetMeasurementsLogDeliveryS3Config) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) LogDeliveryStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v InternetMonitorInternetMeasurementsLogDeliveryS3Config) *string { return v.LogDeliveryStatus }).(pulumi.StringPtrOutput) +} + +type InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput struct{ *pulumi.OutputState } + +func (InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InternetMonitorInternetMeasurementsLogDeliveryS3Config)(nil)).Elem() +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) ToInternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutputWithContext(ctx context.Context) InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput { + return o +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) Elem() InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput { + return o.ApplyT(func(v *InternetMonitorInternetMeasurementsLogDeliveryS3Config) InternetMonitorInternetMeasurementsLogDeliveryS3Config { + if v != nil { + return *v + } + var ret InternetMonitorInternetMeasurementsLogDeliveryS3Config + return ret + }).(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InternetMonitorInternetMeasurementsLogDeliveryS3Config) *string { + if v == nil { + return nil + } + return &v.BucketName + }).(pulumi.StringPtrOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) BucketPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InternetMonitorInternetMeasurementsLogDeliveryS3Config) *string { + if v == nil { + return nil + } + return v.BucketPrefix + }).(pulumi.StringPtrOutput) +} + +func (o InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput) LogDeliveryStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InternetMonitorInternetMeasurementsLogDeliveryS3Config) *string { + if v == nil { + return nil + } + return v.LogDeliveryStatus + }).(pulumi.StringPtrOutput) +} + +type LogMetricFilterMetricTransformation struct { + // The value to emit when a filter pattern does not match a log event. Conflicts with `dimensions`. + DefaultValue *string `pulumi:"defaultValue"` + // Map of fields to use as dimensions for the metric. Up to 3 dimensions are allowed. Conflicts with `defaultValue`. + Dimensions map[string]string `pulumi:"dimensions"` + // The name of the CloudWatch metric to which the monitored log information should be published (e.g., `ErrorCount`) + Name string `pulumi:"name"` + // The destination namespace of the CloudWatch metric. + Namespace string `pulumi:"namespace"` + // The unit to assign to the metric. If you omit this, the unit is set as `None`. + Unit *string `pulumi:"unit"` + // What to publish to the metric. For example, if you're counting the occurrences of a particular term like "Error", the value will be "1" for each occurrence. If you're counting the bytes transferred the published value will be the value in the log event. + Value string `pulumi:"value"` +} + +// LogMetricFilterMetricTransformationInput is an input type that accepts LogMetricFilterMetricTransformationArgs and LogMetricFilterMetricTransformationOutput values. +// You can construct a concrete instance of `LogMetricFilterMetricTransformationInput` via: +// +// LogMetricFilterMetricTransformationArgs{...} +type LogMetricFilterMetricTransformationInput interface { + pulumi.Input + + ToLogMetricFilterMetricTransformationOutput() LogMetricFilterMetricTransformationOutput + ToLogMetricFilterMetricTransformationOutputWithContext(context.Context) LogMetricFilterMetricTransformationOutput +} + +type LogMetricFilterMetricTransformationArgs struct { + // The value to emit when a filter pattern does not match a log event. Conflicts with `dimensions`. + DefaultValue pulumi.StringPtrInput `pulumi:"defaultValue"` + // Map of fields to use as dimensions for the metric. Up to 3 dimensions are allowed. Conflicts with `defaultValue`. + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // The name of the CloudWatch metric to which the monitored log information should be published (e.g., `ErrorCount`) + Name pulumi.StringInput `pulumi:"name"` + // The destination namespace of the CloudWatch metric. + Namespace pulumi.StringInput `pulumi:"namespace"` + // The unit to assign to the metric. If you omit this, the unit is set as `None`. + Unit pulumi.StringPtrInput `pulumi:"unit"` + // What to publish to the metric. For example, if you're counting the occurrences of a particular term like "Error", the value will be "1" for each occurrence. If you're counting the bytes transferred the published value will be the value in the log event. + Value pulumi.StringInput `pulumi:"value"` +} + +func (LogMetricFilterMetricTransformationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogMetricFilterMetricTransformation)(nil)).Elem() +} + +func (i LogMetricFilterMetricTransformationArgs) ToLogMetricFilterMetricTransformationOutput() LogMetricFilterMetricTransformationOutput { + return i.ToLogMetricFilterMetricTransformationOutputWithContext(context.Background()) +} + +func (i LogMetricFilterMetricTransformationArgs) ToLogMetricFilterMetricTransformationOutputWithContext(ctx context.Context) LogMetricFilterMetricTransformationOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterMetricTransformationOutput) +} + +func (i LogMetricFilterMetricTransformationArgs) ToLogMetricFilterMetricTransformationPtrOutput() LogMetricFilterMetricTransformationPtrOutput { + return i.ToLogMetricFilterMetricTransformationPtrOutputWithContext(context.Background()) +} + +func (i LogMetricFilterMetricTransformationArgs) ToLogMetricFilterMetricTransformationPtrOutputWithContext(ctx context.Context) LogMetricFilterMetricTransformationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterMetricTransformationOutput).ToLogMetricFilterMetricTransformationPtrOutputWithContext(ctx) +} + +// LogMetricFilterMetricTransformationPtrInput is an input type that accepts LogMetricFilterMetricTransformationArgs, LogMetricFilterMetricTransformationPtr and LogMetricFilterMetricTransformationPtrOutput values. +// You can construct a concrete instance of `LogMetricFilterMetricTransformationPtrInput` via: +// +// LogMetricFilterMetricTransformationArgs{...} +// +// or: +// +// nil +type LogMetricFilterMetricTransformationPtrInput interface { + pulumi.Input + + ToLogMetricFilterMetricTransformationPtrOutput() LogMetricFilterMetricTransformationPtrOutput + ToLogMetricFilterMetricTransformationPtrOutputWithContext(context.Context) LogMetricFilterMetricTransformationPtrOutput +} + +type logMetricFilterMetricTransformationPtrType LogMetricFilterMetricTransformationArgs + +func LogMetricFilterMetricTransformationPtr(v *LogMetricFilterMetricTransformationArgs) LogMetricFilterMetricTransformationPtrInput { + return (*logMetricFilterMetricTransformationPtrType)(v) +} + +func (*logMetricFilterMetricTransformationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogMetricFilterMetricTransformation)(nil)).Elem() +} + +func (i *logMetricFilterMetricTransformationPtrType) ToLogMetricFilterMetricTransformationPtrOutput() LogMetricFilterMetricTransformationPtrOutput { + return i.ToLogMetricFilterMetricTransformationPtrOutputWithContext(context.Background()) +} + +func (i *logMetricFilterMetricTransformationPtrType) ToLogMetricFilterMetricTransformationPtrOutputWithContext(ctx context.Context) LogMetricFilterMetricTransformationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogMetricFilterMetricTransformationPtrOutput) +} + +type LogMetricFilterMetricTransformationOutput struct{ *pulumi.OutputState } + +func (LogMetricFilterMetricTransformationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogMetricFilterMetricTransformation)(nil)).Elem() +} + +func (o LogMetricFilterMetricTransformationOutput) ToLogMetricFilterMetricTransformationOutput() LogMetricFilterMetricTransformationOutput { + return o +} + +func (o LogMetricFilterMetricTransformationOutput) ToLogMetricFilterMetricTransformationOutputWithContext(ctx context.Context) LogMetricFilterMetricTransformationOutput { + return o +} + +func (o LogMetricFilterMetricTransformationOutput) ToLogMetricFilterMetricTransformationPtrOutput() LogMetricFilterMetricTransformationPtrOutput { + return o.ToLogMetricFilterMetricTransformationPtrOutputWithContext(context.Background()) +} + +func (o LogMetricFilterMetricTransformationOutput) ToLogMetricFilterMetricTransformationPtrOutputWithContext(ctx context.Context) LogMetricFilterMetricTransformationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LogMetricFilterMetricTransformation) *LogMetricFilterMetricTransformation { + return &v + }).(LogMetricFilterMetricTransformationPtrOutput) +} + +// The value to emit when a filter pattern does not match a log event. Conflicts with `dimensions`. +func (o LogMetricFilterMetricTransformationOutput) DefaultValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogMetricFilterMetricTransformation) *string { return v.DefaultValue }).(pulumi.StringPtrOutput) +} + +// Map of fields to use as dimensions for the metric. Up to 3 dimensions are allowed. Conflicts with `defaultValue`. +func (o LogMetricFilterMetricTransformationOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v LogMetricFilterMetricTransformation) map[string]string { return v.Dimensions }).(pulumi.StringMapOutput) +} + +// The name of the CloudWatch metric to which the monitored log information should be published (e.g., `ErrorCount`) +func (o LogMetricFilterMetricTransformationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LogMetricFilterMetricTransformation) string { return v.Name }).(pulumi.StringOutput) +} + +// The destination namespace of the CloudWatch metric. +func (o LogMetricFilterMetricTransformationOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v LogMetricFilterMetricTransformation) string { return v.Namespace }).(pulumi.StringOutput) +} + +// The unit to assign to the metric. If you omit this, the unit is set as `None`. +func (o LogMetricFilterMetricTransformationOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogMetricFilterMetricTransformation) *string { return v.Unit }).(pulumi.StringPtrOutput) +} + +// What to publish to the metric. For example, if you're counting the occurrences of a particular term like "Error", the value will be "1" for each occurrence. If you're counting the bytes transferred the published value will be the value in the log event. +func (o LogMetricFilterMetricTransformationOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v LogMetricFilterMetricTransformation) string { return v.Value }).(pulumi.StringOutput) +} + +type LogMetricFilterMetricTransformationPtrOutput struct{ *pulumi.OutputState } + +func (LogMetricFilterMetricTransformationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogMetricFilterMetricTransformation)(nil)).Elem() +} + +func (o LogMetricFilterMetricTransformationPtrOutput) ToLogMetricFilterMetricTransformationPtrOutput() LogMetricFilterMetricTransformationPtrOutput { + return o +} + +func (o LogMetricFilterMetricTransformationPtrOutput) ToLogMetricFilterMetricTransformationPtrOutputWithContext(ctx context.Context) LogMetricFilterMetricTransformationPtrOutput { + return o +} + +func (o LogMetricFilterMetricTransformationPtrOutput) Elem() LogMetricFilterMetricTransformationOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) LogMetricFilterMetricTransformation { + if v != nil { + return *v + } + var ret LogMetricFilterMetricTransformation + return ret + }).(LogMetricFilterMetricTransformationOutput) +} + +// The value to emit when a filter pattern does not match a log event. Conflicts with `dimensions`. +func (o LogMetricFilterMetricTransformationPtrOutput) DefaultValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) *string { + if v == nil { + return nil + } + return v.DefaultValue + }).(pulumi.StringPtrOutput) +} + +// Map of fields to use as dimensions for the metric. Up to 3 dimensions are allowed. Conflicts with `defaultValue`. +func (o LogMetricFilterMetricTransformationPtrOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) map[string]string { + if v == nil { + return nil + } + return v.Dimensions + }).(pulumi.StringMapOutput) +} + +// The name of the CloudWatch metric to which the monitored log information should be published (e.g., `ErrorCount`) +func (o LogMetricFilterMetricTransformationPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// The destination namespace of the CloudWatch metric. +func (o LogMetricFilterMetricTransformationPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) *string { + if v == nil { + return nil + } + return &v.Namespace + }).(pulumi.StringPtrOutput) +} + +// The unit to assign to the metric. If you omit this, the unit is set as `None`. +func (o LogMetricFilterMetricTransformationPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) *string { + if v == nil { + return nil + } + return v.Unit + }).(pulumi.StringPtrOutput) +} + +// What to publish to the metric. For example, if you're counting the occurrences of a particular term like "Error", the value will be "1" for each occurrence. If you're counting the bytes transferred the published value will be the value in the log event. +func (o LogMetricFilterMetricTransformationPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogMetricFilterMetricTransformation) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type MetricAlarmMetricQuery struct { + // The ID of the account where the metrics are located, if this is a cross-account alarm. + AccountId *string `pulumi:"accountId"` + // The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the id of the other metrics to refer to those metrics, and can also use the id of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax). + Expression *string `pulumi:"expression"` + // A short name used to tie this object to the results in the response. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. + Id string `pulumi:"id"` + // A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. + Label *string `pulumi:"label"` + // The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + Metric *MetricAlarmMetricQueryMetric `pulumi:"metric"` + // Granularity in seconds of returned data points. + // For metrics with regular resolution, valid values are any multiple of `60`. + // For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. + Period *int `pulumi:"period"` + // Specify exactly one `metricQuery` to be `true` to use that `metricQuery` result as the alarm. + // + // > **NOTE:** You must specify either `metric` or `expression`. Not both. + ReturnData *bool `pulumi:"returnData"` +} + +// MetricAlarmMetricQueryInput is an input type that accepts MetricAlarmMetricQueryArgs and MetricAlarmMetricQueryOutput values. +// You can construct a concrete instance of `MetricAlarmMetricQueryInput` via: +// +// MetricAlarmMetricQueryArgs{...} +type MetricAlarmMetricQueryInput interface { + pulumi.Input + + ToMetricAlarmMetricQueryOutput() MetricAlarmMetricQueryOutput + ToMetricAlarmMetricQueryOutputWithContext(context.Context) MetricAlarmMetricQueryOutput +} + +type MetricAlarmMetricQueryArgs struct { + // The ID of the account where the metrics are located, if this is a cross-account alarm. + AccountId pulumi.StringPtrInput `pulumi:"accountId"` + // The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the id of the other metrics to refer to those metrics, and can also use the id of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax). + Expression pulumi.StringPtrInput `pulumi:"expression"` + // A short name used to tie this object to the results in the response. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. + Id pulumi.StringInput `pulumi:"id"` + // A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. + Label pulumi.StringPtrInput `pulumi:"label"` + // The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. + Metric MetricAlarmMetricQueryMetricPtrInput `pulumi:"metric"` + // Granularity in seconds of returned data points. + // For metrics with regular resolution, valid values are any multiple of `60`. + // For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. + Period pulumi.IntPtrInput `pulumi:"period"` + // Specify exactly one `metricQuery` to be `true` to use that `metricQuery` result as the alarm. + // + // > **NOTE:** You must specify either `metric` or `expression`. Not both. + ReturnData pulumi.BoolPtrInput `pulumi:"returnData"` +} + +func (MetricAlarmMetricQueryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricAlarmMetricQuery)(nil)).Elem() +} + +func (i MetricAlarmMetricQueryArgs) ToMetricAlarmMetricQueryOutput() MetricAlarmMetricQueryOutput { + return i.ToMetricAlarmMetricQueryOutputWithContext(context.Background()) +} + +func (i MetricAlarmMetricQueryArgs) ToMetricAlarmMetricQueryOutputWithContext(ctx context.Context) MetricAlarmMetricQueryOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmMetricQueryOutput) +} + +// MetricAlarmMetricQueryArrayInput is an input type that accepts MetricAlarmMetricQueryArray and MetricAlarmMetricQueryArrayOutput values. +// You can construct a concrete instance of `MetricAlarmMetricQueryArrayInput` via: +// +// MetricAlarmMetricQueryArray{ MetricAlarmMetricQueryArgs{...} } +type MetricAlarmMetricQueryArrayInput interface { + pulumi.Input + + ToMetricAlarmMetricQueryArrayOutput() MetricAlarmMetricQueryArrayOutput + ToMetricAlarmMetricQueryArrayOutputWithContext(context.Context) MetricAlarmMetricQueryArrayOutput +} + +type MetricAlarmMetricQueryArray []MetricAlarmMetricQueryInput + +func (MetricAlarmMetricQueryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricAlarmMetricQuery)(nil)).Elem() +} + +func (i MetricAlarmMetricQueryArray) ToMetricAlarmMetricQueryArrayOutput() MetricAlarmMetricQueryArrayOutput { + return i.ToMetricAlarmMetricQueryArrayOutputWithContext(context.Background()) +} + +func (i MetricAlarmMetricQueryArray) ToMetricAlarmMetricQueryArrayOutputWithContext(ctx context.Context) MetricAlarmMetricQueryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmMetricQueryArrayOutput) +} + +type MetricAlarmMetricQueryOutput struct{ *pulumi.OutputState } + +func (MetricAlarmMetricQueryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricAlarmMetricQuery)(nil)).Elem() +} + +func (o MetricAlarmMetricQueryOutput) ToMetricAlarmMetricQueryOutput() MetricAlarmMetricQueryOutput { + return o +} + +func (o MetricAlarmMetricQueryOutput) ToMetricAlarmMetricQueryOutputWithContext(ctx context.Context) MetricAlarmMetricQueryOutput { + return o +} + +// The ID of the account where the metrics are located, if this is a cross-account alarm. +func (o MetricAlarmMetricQueryOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) *string { return v.AccountId }).(pulumi.StringPtrOutput) +} + +// The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the id of the other metrics to refer to those metrics, and can also use the id of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax). +func (o MetricAlarmMetricQueryOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// A short name used to tie this object to the results in the response. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. +func (o MetricAlarmMetricQueryOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) string { return v.Id }).(pulumi.StringOutput) +} + +// A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. +func (o MetricAlarmMetricQueryOutput) Label() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) *string { return v.Label }).(pulumi.StringPtrOutput) +} + +// The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. +func (o MetricAlarmMetricQueryOutput) Metric() MetricAlarmMetricQueryMetricPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) *MetricAlarmMetricQueryMetric { return v.Metric }).(MetricAlarmMetricQueryMetricPtrOutput) +} + +// Granularity in seconds of returned data points. +// For metrics with regular resolution, valid values are any multiple of `60`. +// For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. +func (o MetricAlarmMetricQueryOutput) Period() pulumi.IntPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) *int { return v.Period }).(pulumi.IntPtrOutput) +} + +// Specify exactly one `metricQuery` to be `true` to use that `metricQuery` result as the alarm. +// +// > **NOTE:** You must specify either `metric` or `expression`. Not both. +func (o MetricAlarmMetricQueryOutput) ReturnData() pulumi.BoolPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQuery) *bool { return v.ReturnData }).(pulumi.BoolPtrOutput) +} + +type MetricAlarmMetricQueryArrayOutput struct{ *pulumi.OutputState } + +func (MetricAlarmMetricQueryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricAlarmMetricQuery)(nil)).Elem() +} + +func (o MetricAlarmMetricQueryArrayOutput) ToMetricAlarmMetricQueryArrayOutput() MetricAlarmMetricQueryArrayOutput { + return o +} + +func (o MetricAlarmMetricQueryArrayOutput) ToMetricAlarmMetricQueryArrayOutputWithContext(ctx context.Context) MetricAlarmMetricQueryArrayOutput { + return o +} + +func (o MetricAlarmMetricQueryArrayOutput) Index(i pulumi.IntInput) MetricAlarmMetricQueryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetricAlarmMetricQuery { + return vs[0].([]MetricAlarmMetricQuery)[vs[1].(int)] + }).(MetricAlarmMetricQueryOutput) +} + +type MetricAlarmMetricQueryMetric struct { + // The dimensions for this metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions map[string]string `pulumi:"dimensions"` + // The name for this metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName string `pulumi:"metricName"` + // The namespace for this metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace *string `pulumi:"namespace"` + // Granularity in seconds of returned data points. + // For metrics with regular resolution, valid values are any multiple of `60`. + // For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. + Period int `pulumi:"period"` + // The statistic to apply to this metric. + // See docs for [supported statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html). + Stat string `pulumi:"stat"` + // The unit for this metric. + Unit *string `pulumi:"unit"` +} + +// MetricAlarmMetricQueryMetricInput is an input type that accepts MetricAlarmMetricQueryMetricArgs and MetricAlarmMetricQueryMetricOutput values. +// You can construct a concrete instance of `MetricAlarmMetricQueryMetricInput` via: +// +// MetricAlarmMetricQueryMetricArgs{...} +type MetricAlarmMetricQueryMetricInput interface { + pulumi.Input + + ToMetricAlarmMetricQueryMetricOutput() MetricAlarmMetricQueryMetricOutput + ToMetricAlarmMetricQueryMetricOutputWithContext(context.Context) MetricAlarmMetricQueryMetricOutput +} + +type MetricAlarmMetricQueryMetricArgs struct { + // The dimensions for this metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // The name for this metric. + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + MetricName pulumi.StringInput `pulumi:"metricName"` + // The namespace for this metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). + // See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). + Namespace pulumi.StringPtrInput `pulumi:"namespace"` + // Granularity in seconds of returned data points. + // For metrics with regular resolution, valid values are any multiple of `60`. + // For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. + Period pulumi.IntInput `pulumi:"period"` + // The statistic to apply to this metric. + // See docs for [supported statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html). + Stat pulumi.StringInput `pulumi:"stat"` + // The unit for this metric. + Unit pulumi.StringPtrInput `pulumi:"unit"` +} + +func (MetricAlarmMetricQueryMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricAlarmMetricQueryMetric)(nil)).Elem() +} + +func (i MetricAlarmMetricQueryMetricArgs) ToMetricAlarmMetricQueryMetricOutput() MetricAlarmMetricQueryMetricOutput { + return i.ToMetricAlarmMetricQueryMetricOutputWithContext(context.Background()) +} + +func (i MetricAlarmMetricQueryMetricArgs) ToMetricAlarmMetricQueryMetricOutputWithContext(ctx context.Context) MetricAlarmMetricQueryMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmMetricQueryMetricOutput) +} + +func (i MetricAlarmMetricQueryMetricArgs) ToMetricAlarmMetricQueryMetricPtrOutput() MetricAlarmMetricQueryMetricPtrOutput { + return i.ToMetricAlarmMetricQueryMetricPtrOutputWithContext(context.Background()) +} + +func (i MetricAlarmMetricQueryMetricArgs) ToMetricAlarmMetricQueryMetricPtrOutputWithContext(ctx context.Context) MetricAlarmMetricQueryMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmMetricQueryMetricOutput).ToMetricAlarmMetricQueryMetricPtrOutputWithContext(ctx) +} + +// MetricAlarmMetricQueryMetricPtrInput is an input type that accepts MetricAlarmMetricQueryMetricArgs, MetricAlarmMetricQueryMetricPtr and MetricAlarmMetricQueryMetricPtrOutput values. +// You can construct a concrete instance of `MetricAlarmMetricQueryMetricPtrInput` via: +// +// MetricAlarmMetricQueryMetricArgs{...} +// +// or: +// +// nil +type MetricAlarmMetricQueryMetricPtrInput interface { + pulumi.Input + + ToMetricAlarmMetricQueryMetricPtrOutput() MetricAlarmMetricQueryMetricPtrOutput + ToMetricAlarmMetricQueryMetricPtrOutputWithContext(context.Context) MetricAlarmMetricQueryMetricPtrOutput +} + +type metricAlarmMetricQueryMetricPtrType MetricAlarmMetricQueryMetricArgs + +func MetricAlarmMetricQueryMetricPtr(v *MetricAlarmMetricQueryMetricArgs) MetricAlarmMetricQueryMetricPtrInput { + return (*metricAlarmMetricQueryMetricPtrType)(v) +} + +func (*metricAlarmMetricQueryMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MetricAlarmMetricQueryMetric)(nil)).Elem() +} + +func (i *metricAlarmMetricQueryMetricPtrType) ToMetricAlarmMetricQueryMetricPtrOutput() MetricAlarmMetricQueryMetricPtrOutput { + return i.ToMetricAlarmMetricQueryMetricPtrOutputWithContext(context.Background()) +} + +func (i *metricAlarmMetricQueryMetricPtrType) ToMetricAlarmMetricQueryMetricPtrOutputWithContext(ctx context.Context) MetricAlarmMetricQueryMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricAlarmMetricQueryMetricPtrOutput) +} + +type MetricAlarmMetricQueryMetricOutput struct{ *pulumi.OutputState } + +func (MetricAlarmMetricQueryMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricAlarmMetricQueryMetric)(nil)).Elem() +} + +func (o MetricAlarmMetricQueryMetricOutput) ToMetricAlarmMetricQueryMetricOutput() MetricAlarmMetricQueryMetricOutput { + return o +} + +func (o MetricAlarmMetricQueryMetricOutput) ToMetricAlarmMetricQueryMetricOutputWithContext(ctx context.Context) MetricAlarmMetricQueryMetricOutput { + return o +} + +func (o MetricAlarmMetricQueryMetricOutput) ToMetricAlarmMetricQueryMetricPtrOutput() MetricAlarmMetricQueryMetricPtrOutput { + return o.ToMetricAlarmMetricQueryMetricPtrOutputWithContext(context.Background()) +} + +func (o MetricAlarmMetricQueryMetricOutput) ToMetricAlarmMetricQueryMetricPtrOutputWithContext(ctx context.Context) MetricAlarmMetricQueryMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MetricAlarmMetricQueryMetric) *MetricAlarmMetricQueryMetric { + return &v + }).(MetricAlarmMetricQueryMetricPtrOutput) +} + +// The dimensions for this metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmMetricQueryMetricOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v MetricAlarmMetricQueryMetric) map[string]string { return v.Dimensions }).(pulumi.StringMapOutput) +} + +// The name for this metric. +// See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmMetricQueryMetricOutput) MetricName() pulumi.StringOutput { + return o.ApplyT(func(v MetricAlarmMetricQueryMetric) string { return v.MetricName }).(pulumi.StringOutput) +} + +// The namespace for this metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). +// See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmMetricQueryMetricOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQueryMetric) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// Granularity in seconds of returned data points. +// For metrics with regular resolution, valid values are any multiple of `60`. +// For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. +func (o MetricAlarmMetricQueryMetricOutput) Period() pulumi.IntOutput { + return o.ApplyT(func(v MetricAlarmMetricQueryMetric) int { return v.Period }).(pulumi.IntOutput) +} + +// The statistic to apply to this metric. +// See docs for [supported statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html). +func (o MetricAlarmMetricQueryMetricOutput) Stat() pulumi.StringOutput { + return o.ApplyT(func(v MetricAlarmMetricQueryMetric) string { return v.Stat }).(pulumi.StringOutput) +} + +// The unit for this metric. +func (o MetricAlarmMetricQueryMetricOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v MetricAlarmMetricQueryMetric) *string { return v.Unit }).(pulumi.StringPtrOutput) +} + +type MetricAlarmMetricQueryMetricPtrOutput struct{ *pulumi.OutputState } + +func (MetricAlarmMetricQueryMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MetricAlarmMetricQueryMetric)(nil)).Elem() +} + +func (o MetricAlarmMetricQueryMetricPtrOutput) ToMetricAlarmMetricQueryMetricPtrOutput() MetricAlarmMetricQueryMetricPtrOutput { + return o +} + +func (o MetricAlarmMetricQueryMetricPtrOutput) ToMetricAlarmMetricQueryMetricPtrOutputWithContext(ctx context.Context) MetricAlarmMetricQueryMetricPtrOutput { + return o +} + +func (o MetricAlarmMetricQueryMetricPtrOutput) Elem() MetricAlarmMetricQueryMetricOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) MetricAlarmMetricQueryMetric { + if v != nil { + return *v + } + var ret MetricAlarmMetricQueryMetric + return ret + }).(MetricAlarmMetricQueryMetricOutput) +} + +// The dimensions for this metric. For the list of available dimensions see the AWS documentation [here](http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmMetricQueryMetricPtrOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) map[string]string { + if v == nil { + return nil + } + return v.Dimensions + }).(pulumi.StringMapOutput) +} + +// The name for this metric. +// See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmMetricQueryMetricPtrOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) *string { + if v == nil { + return nil + } + return &v.MetricName + }).(pulumi.StringPtrOutput) +} + +// The namespace for this metric. See docs for the [list of namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html). +// See docs for [supported metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html). +func (o MetricAlarmMetricQueryMetricPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) *string { + if v == nil { + return nil + } + return v.Namespace + }).(pulumi.StringPtrOutput) +} + +// Granularity in seconds of returned data points. +// For metrics with regular resolution, valid values are any multiple of `60`. +// For high-resolution metrics, valid values are `1`, `5`, `10`, `30`, or any multiple of `60`. +func (o MetricAlarmMetricQueryMetricPtrOutput) Period() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) *int { + if v == nil { + return nil + } + return &v.Period + }).(pulumi.IntPtrOutput) +} + +// The statistic to apply to this metric. +// See docs for [supported statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html). +func (o MetricAlarmMetricQueryMetricPtrOutput) Stat() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) *string { + if v == nil { + return nil + } + return &v.Stat + }).(pulumi.StringPtrOutput) +} + +// The unit for this metric. +func (o MetricAlarmMetricQueryMetricPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MetricAlarmMetricQueryMetric) *string { + if v == nil { + return nil + } + return v.Unit + }).(pulumi.StringPtrOutput) +} + +type MetricStreamExcludeFilter struct { + // An array that defines the metrics you want to exclude for this metric namespace + MetricNames []string `pulumi:"metricNames"` + // Name of the metric namespace in the filter. + Namespace string `pulumi:"namespace"` +} + +// MetricStreamExcludeFilterInput is an input type that accepts MetricStreamExcludeFilterArgs and MetricStreamExcludeFilterOutput values. +// You can construct a concrete instance of `MetricStreamExcludeFilterInput` via: +// +// MetricStreamExcludeFilterArgs{...} +type MetricStreamExcludeFilterInput interface { + pulumi.Input + + ToMetricStreamExcludeFilterOutput() MetricStreamExcludeFilterOutput + ToMetricStreamExcludeFilterOutputWithContext(context.Context) MetricStreamExcludeFilterOutput +} + +type MetricStreamExcludeFilterArgs struct { + // An array that defines the metrics you want to exclude for this metric namespace + MetricNames pulumi.StringArrayInput `pulumi:"metricNames"` + // Name of the metric namespace in the filter. + Namespace pulumi.StringInput `pulumi:"namespace"` +} + +func (MetricStreamExcludeFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamExcludeFilter)(nil)).Elem() +} + +func (i MetricStreamExcludeFilterArgs) ToMetricStreamExcludeFilterOutput() MetricStreamExcludeFilterOutput { + return i.ToMetricStreamExcludeFilterOutputWithContext(context.Background()) +} + +func (i MetricStreamExcludeFilterArgs) ToMetricStreamExcludeFilterOutputWithContext(ctx context.Context) MetricStreamExcludeFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamExcludeFilterOutput) +} + +// MetricStreamExcludeFilterArrayInput is an input type that accepts MetricStreamExcludeFilterArray and MetricStreamExcludeFilterArrayOutput values. +// You can construct a concrete instance of `MetricStreamExcludeFilterArrayInput` via: +// +// MetricStreamExcludeFilterArray{ MetricStreamExcludeFilterArgs{...} } +type MetricStreamExcludeFilterArrayInput interface { + pulumi.Input + + ToMetricStreamExcludeFilterArrayOutput() MetricStreamExcludeFilterArrayOutput + ToMetricStreamExcludeFilterArrayOutputWithContext(context.Context) MetricStreamExcludeFilterArrayOutput +} + +type MetricStreamExcludeFilterArray []MetricStreamExcludeFilterInput + +func (MetricStreamExcludeFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamExcludeFilter)(nil)).Elem() +} + +func (i MetricStreamExcludeFilterArray) ToMetricStreamExcludeFilterArrayOutput() MetricStreamExcludeFilterArrayOutput { + return i.ToMetricStreamExcludeFilterArrayOutputWithContext(context.Background()) +} + +func (i MetricStreamExcludeFilterArray) ToMetricStreamExcludeFilterArrayOutputWithContext(ctx context.Context) MetricStreamExcludeFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamExcludeFilterArrayOutput) +} + +type MetricStreamExcludeFilterOutput struct{ *pulumi.OutputState } + +func (MetricStreamExcludeFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamExcludeFilter)(nil)).Elem() +} + +func (o MetricStreamExcludeFilterOutput) ToMetricStreamExcludeFilterOutput() MetricStreamExcludeFilterOutput { + return o +} + +func (o MetricStreamExcludeFilterOutput) ToMetricStreamExcludeFilterOutputWithContext(ctx context.Context) MetricStreamExcludeFilterOutput { + return o +} + +// An array that defines the metrics you want to exclude for this metric namespace +func (o MetricStreamExcludeFilterOutput) MetricNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v MetricStreamExcludeFilter) []string { return v.MetricNames }).(pulumi.StringArrayOutput) +} + +// Name of the metric namespace in the filter. +func (o MetricStreamExcludeFilterOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v MetricStreamExcludeFilter) string { return v.Namespace }).(pulumi.StringOutput) +} + +type MetricStreamExcludeFilterArrayOutput struct{ *pulumi.OutputState } + +func (MetricStreamExcludeFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamExcludeFilter)(nil)).Elem() +} + +func (o MetricStreamExcludeFilterArrayOutput) ToMetricStreamExcludeFilterArrayOutput() MetricStreamExcludeFilterArrayOutput { + return o +} + +func (o MetricStreamExcludeFilterArrayOutput) ToMetricStreamExcludeFilterArrayOutputWithContext(ctx context.Context) MetricStreamExcludeFilterArrayOutput { + return o +} + +func (o MetricStreamExcludeFilterArrayOutput) Index(i pulumi.IntInput) MetricStreamExcludeFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetricStreamExcludeFilter { + return vs[0].([]MetricStreamExcludeFilter)[vs[1].(int)] + }).(MetricStreamExcludeFilterOutput) +} + +type MetricStreamIncludeFilter struct { + // An array that defines the metrics you want to include for this metric namespace + MetricNames []string `pulumi:"metricNames"` + // Name of the metric namespace in the filter. + Namespace string `pulumi:"namespace"` +} + +// MetricStreamIncludeFilterInput is an input type that accepts MetricStreamIncludeFilterArgs and MetricStreamIncludeFilterOutput values. +// You can construct a concrete instance of `MetricStreamIncludeFilterInput` via: +// +// MetricStreamIncludeFilterArgs{...} +type MetricStreamIncludeFilterInput interface { + pulumi.Input + + ToMetricStreamIncludeFilterOutput() MetricStreamIncludeFilterOutput + ToMetricStreamIncludeFilterOutputWithContext(context.Context) MetricStreamIncludeFilterOutput +} + +type MetricStreamIncludeFilterArgs struct { + // An array that defines the metrics you want to include for this metric namespace + MetricNames pulumi.StringArrayInput `pulumi:"metricNames"` + // Name of the metric namespace in the filter. + Namespace pulumi.StringInput `pulumi:"namespace"` +} + +func (MetricStreamIncludeFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamIncludeFilter)(nil)).Elem() +} + +func (i MetricStreamIncludeFilterArgs) ToMetricStreamIncludeFilterOutput() MetricStreamIncludeFilterOutput { + return i.ToMetricStreamIncludeFilterOutputWithContext(context.Background()) +} + +func (i MetricStreamIncludeFilterArgs) ToMetricStreamIncludeFilterOutputWithContext(ctx context.Context) MetricStreamIncludeFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamIncludeFilterOutput) +} + +// MetricStreamIncludeFilterArrayInput is an input type that accepts MetricStreamIncludeFilterArray and MetricStreamIncludeFilterArrayOutput values. +// You can construct a concrete instance of `MetricStreamIncludeFilterArrayInput` via: +// +// MetricStreamIncludeFilterArray{ MetricStreamIncludeFilterArgs{...} } +type MetricStreamIncludeFilterArrayInput interface { + pulumi.Input + + ToMetricStreamIncludeFilterArrayOutput() MetricStreamIncludeFilterArrayOutput + ToMetricStreamIncludeFilterArrayOutputWithContext(context.Context) MetricStreamIncludeFilterArrayOutput +} + +type MetricStreamIncludeFilterArray []MetricStreamIncludeFilterInput + +func (MetricStreamIncludeFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamIncludeFilter)(nil)).Elem() +} + +func (i MetricStreamIncludeFilterArray) ToMetricStreamIncludeFilterArrayOutput() MetricStreamIncludeFilterArrayOutput { + return i.ToMetricStreamIncludeFilterArrayOutputWithContext(context.Background()) +} + +func (i MetricStreamIncludeFilterArray) ToMetricStreamIncludeFilterArrayOutputWithContext(ctx context.Context) MetricStreamIncludeFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamIncludeFilterArrayOutput) +} + +type MetricStreamIncludeFilterOutput struct{ *pulumi.OutputState } + +func (MetricStreamIncludeFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamIncludeFilter)(nil)).Elem() +} + +func (o MetricStreamIncludeFilterOutput) ToMetricStreamIncludeFilterOutput() MetricStreamIncludeFilterOutput { + return o +} + +func (o MetricStreamIncludeFilterOutput) ToMetricStreamIncludeFilterOutputWithContext(ctx context.Context) MetricStreamIncludeFilterOutput { + return o +} + +// An array that defines the metrics you want to include for this metric namespace +func (o MetricStreamIncludeFilterOutput) MetricNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v MetricStreamIncludeFilter) []string { return v.MetricNames }).(pulumi.StringArrayOutput) +} + +// Name of the metric namespace in the filter. +func (o MetricStreamIncludeFilterOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v MetricStreamIncludeFilter) string { return v.Namespace }).(pulumi.StringOutput) +} + +type MetricStreamIncludeFilterArrayOutput struct{ *pulumi.OutputState } + +func (MetricStreamIncludeFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamIncludeFilter)(nil)).Elem() +} + +func (o MetricStreamIncludeFilterArrayOutput) ToMetricStreamIncludeFilterArrayOutput() MetricStreamIncludeFilterArrayOutput { + return o +} + +func (o MetricStreamIncludeFilterArrayOutput) ToMetricStreamIncludeFilterArrayOutputWithContext(ctx context.Context) MetricStreamIncludeFilterArrayOutput { + return o +} + +func (o MetricStreamIncludeFilterArrayOutput) Index(i pulumi.IntInput) MetricStreamIncludeFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetricStreamIncludeFilter { + return vs[0].([]MetricStreamIncludeFilter)[vs[1].(int)] + }).(MetricStreamIncludeFilterOutput) +} + +type MetricStreamStatisticsConfiguration struct { + // The additional statistics to stream for the metrics listed in `includeMetrics`. + AdditionalStatistics []string `pulumi:"additionalStatistics"` + // An array that defines the metrics that are to have additional statistics streamed. See details below. + IncludeMetrics []MetricStreamStatisticsConfigurationIncludeMetric `pulumi:"includeMetrics"` +} + +// MetricStreamStatisticsConfigurationInput is an input type that accepts MetricStreamStatisticsConfigurationArgs and MetricStreamStatisticsConfigurationOutput values. +// You can construct a concrete instance of `MetricStreamStatisticsConfigurationInput` via: +// +// MetricStreamStatisticsConfigurationArgs{...} +type MetricStreamStatisticsConfigurationInput interface { + pulumi.Input + + ToMetricStreamStatisticsConfigurationOutput() MetricStreamStatisticsConfigurationOutput + ToMetricStreamStatisticsConfigurationOutputWithContext(context.Context) MetricStreamStatisticsConfigurationOutput +} + +type MetricStreamStatisticsConfigurationArgs struct { + // The additional statistics to stream for the metrics listed in `includeMetrics`. + AdditionalStatistics pulumi.StringArrayInput `pulumi:"additionalStatistics"` + // An array that defines the metrics that are to have additional statistics streamed. See details below. + IncludeMetrics MetricStreamStatisticsConfigurationIncludeMetricArrayInput `pulumi:"includeMetrics"` +} + +func (MetricStreamStatisticsConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamStatisticsConfiguration)(nil)).Elem() +} + +func (i MetricStreamStatisticsConfigurationArgs) ToMetricStreamStatisticsConfigurationOutput() MetricStreamStatisticsConfigurationOutput { + return i.ToMetricStreamStatisticsConfigurationOutputWithContext(context.Background()) +} + +func (i MetricStreamStatisticsConfigurationArgs) ToMetricStreamStatisticsConfigurationOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamStatisticsConfigurationOutput) +} + +// MetricStreamStatisticsConfigurationArrayInput is an input type that accepts MetricStreamStatisticsConfigurationArray and MetricStreamStatisticsConfigurationArrayOutput values. +// You can construct a concrete instance of `MetricStreamStatisticsConfigurationArrayInput` via: +// +// MetricStreamStatisticsConfigurationArray{ MetricStreamStatisticsConfigurationArgs{...} } +type MetricStreamStatisticsConfigurationArrayInput interface { + pulumi.Input + + ToMetricStreamStatisticsConfigurationArrayOutput() MetricStreamStatisticsConfigurationArrayOutput + ToMetricStreamStatisticsConfigurationArrayOutputWithContext(context.Context) MetricStreamStatisticsConfigurationArrayOutput +} + +type MetricStreamStatisticsConfigurationArray []MetricStreamStatisticsConfigurationInput + +func (MetricStreamStatisticsConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamStatisticsConfiguration)(nil)).Elem() +} + +func (i MetricStreamStatisticsConfigurationArray) ToMetricStreamStatisticsConfigurationArrayOutput() MetricStreamStatisticsConfigurationArrayOutput { + return i.ToMetricStreamStatisticsConfigurationArrayOutputWithContext(context.Background()) +} + +func (i MetricStreamStatisticsConfigurationArray) ToMetricStreamStatisticsConfigurationArrayOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamStatisticsConfigurationArrayOutput) +} + +type MetricStreamStatisticsConfigurationOutput struct{ *pulumi.OutputState } + +func (MetricStreamStatisticsConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamStatisticsConfiguration)(nil)).Elem() +} + +func (o MetricStreamStatisticsConfigurationOutput) ToMetricStreamStatisticsConfigurationOutput() MetricStreamStatisticsConfigurationOutput { + return o +} + +func (o MetricStreamStatisticsConfigurationOutput) ToMetricStreamStatisticsConfigurationOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationOutput { + return o +} + +// The additional statistics to stream for the metrics listed in `includeMetrics`. +func (o MetricStreamStatisticsConfigurationOutput) AdditionalStatistics() pulumi.StringArrayOutput { + return o.ApplyT(func(v MetricStreamStatisticsConfiguration) []string { return v.AdditionalStatistics }).(pulumi.StringArrayOutput) +} + +// An array that defines the metrics that are to have additional statistics streamed. See details below. +func (o MetricStreamStatisticsConfigurationOutput) IncludeMetrics() MetricStreamStatisticsConfigurationIncludeMetricArrayOutput { + return o.ApplyT(func(v MetricStreamStatisticsConfiguration) []MetricStreamStatisticsConfigurationIncludeMetric { + return v.IncludeMetrics + }).(MetricStreamStatisticsConfigurationIncludeMetricArrayOutput) +} + +type MetricStreamStatisticsConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (MetricStreamStatisticsConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamStatisticsConfiguration)(nil)).Elem() +} + +func (o MetricStreamStatisticsConfigurationArrayOutput) ToMetricStreamStatisticsConfigurationArrayOutput() MetricStreamStatisticsConfigurationArrayOutput { + return o +} + +func (o MetricStreamStatisticsConfigurationArrayOutput) ToMetricStreamStatisticsConfigurationArrayOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationArrayOutput { + return o +} + +func (o MetricStreamStatisticsConfigurationArrayOutput) Index(i pulumi.IntInput) MetricStreamStatisticsConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetricStreamStatisticsConfiguration { + return vs[0].([]MetricStreamStatisticsConfiguration)[vs[1].(int)] + }).(MetricStreamStatisticsConfigurationOutput) +} + +type MetricStreamStatisticsConfigurationIncludeMetric struct { + // The name of the metric. + MetricName string `pulumi:"metricName"` + // Name of the metric namespace in the filter. + Namespace string `pulumi:"namespace"` +} + +// MetricStreamStatisticsConfigurationIncludeMetricInput is an input type that accepts MetricStreamStatisticsConfigurationIncludeMetricArgs and MetricStreamStatisticsConfigurationIncludeMetricOutput values. +// You can construct a concrete instance of `MetricStreamStatisticsConfigurationIncludeMetricInput` via: +// +// MetricStreamStatisticsConfigurationIncludeMetricArgs{...} +type MetricStreamStatisticsConfigurationIncludeMetricInput interface { + pulumi.Input + + ToMetricStreamStatisticsConfigurationIncludeMetricOutput() MetricStreamStatisticsConfigurationIncludeMetricOutput + ToMetricStreamStatisticsConfigurationIncludeMetricOutputWithContext(context.Context) MetricStreamStatisticsConfigurationIncludeMetricOutput +} + +type MetricStreamStatisticsConfigurationIncludeMetricArgs struct { + // The name of the metric. + MetricName pulumi.StringInput `pulumi:"metricName"` + // Name of the metric namespace in the filter. + Namespace pulumi.StringInput `pulumi:"namespace"` +} + +func (MetricStreamStatisticsConfigurationIncludeMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamStatisticsConfigurationIncludeMetric)(nil)).Elem() +} + +func (i MetricStreamStatisticsConfigurationIncludeMetricArgs) ToMetricStreamStatisticsConfigurationIncludeMetricOutput() MetricStreamStatisticsConfigurationIncludeMetricOutput { + return i.ToMetricStreamStatisticsConfigurationIncludeMetricOutputWithContext(context.Background()) +} + +func (i MetricStreamStatisticsConfigurationIncludeMetricArgs) ToMetricStreamStatisticsConfigurationIncludeMetricOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationIncludeMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamStatisticsConfigurationIncludeMetricOutput) +} + +// MetricStreamStatisticsConfigurationIncludeMetricArrayInput is an input type that accepts MetricStreamStatisticsConfigurationIncludeMetricArray and MetricStreamStatisticsConfigurationIncludeMetricArrayOutput values. +// You can construct a concrete instance of `MetricStreamStatisticsConfigurationIncludeMetricArrayInput` via: +// +// MetricStreamStatisticsConfigurationIncludeMetricArray{ MetricStreamStatisticsConfigurationIncludeMetricArgs{...} } +type MetricStreamStatisticsConfigurationIncludeMetricArrayInput interface { + pulumi.Input + + ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutput() MetricStreamStatisticsConfigurationIncludeMetricArrayOutput + ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutputWithContext(context.Context) MetricStreamStatisticsConfigurationIncludeMetricArrayOutput +} + +type MetricStreamStatisticsConfigurationIncludeMetricArray []MetricStreamStatisticsConfigurationIncludeMetricInput + +func (MetricStreamStatisticsConfigurationIncludeMetricArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamStatisticsConfigurationIncludeMetric)(nil)).Elem() +} + +func (i MetricStreamStatisticsConfigurationIncludeMetricArray) ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutput() MetricStreamStatisticsConfigurationIncludeMetricArrayOutput { + return i.ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutputWithContext(context.Background()) +} + +func (i MetricStreamStatisticsConfigurationIncludeMetricArray) ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationIncludeMetricArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MetricStreamStatisticsConfigurationIncludeMetricArrayOutput) +} + +type MetricStreamStatisticsConfigurationIncludeMetricOutput struct{ *pulumi.OutputState } + +func (MetricStreamStatisticsConfigurationIncludeMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MetricStreamStatisticsConfigurationIncludeMetric)(nil)).Elem() +} + +func (o MetricStreamStatisticsConfigurationIncludeMetricOutput) ToMetricStreamStatisticsConfigurationIncludeMetricOutput() MetricStreamStatisticsConfigurationIncludeMetricOutput { + return o +} + +func (o MetricStreamStatisticsConfigurationIncludeMetricOutput) ToMetricStreamStatisticsConfigurationIncludeMetricOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationIncludeMetricOutput { + return o +} + +// The name of the metric. +func (o MetricStreamStatisticsConfigurationIncludeMetricOutput) MetricName() pulumi.StringOutput { + return o.ApplyT(func(v MetricStreamStatisticsConfigurationIncludeMetric) string { return v.MetricName }).(pulumi.StringOutput) +} + +// Name of the metric namespace in the filter. +func (o MetricStreamStatisticsConfigurationIncludeMetricOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v MetricStreamStatisticsConfigurationIncludeMetric) string { return v.Namespace }).(pulumi.StringOutput) +} + +type MetricStreamStatisticsConfigurationIncludeMetricArrayOutput struct{ *pulumi.OutputState } + +func (MetricStreamStatisticsConfigurationIncludeMetricArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MetricStreamStatisticsConfigurationIncludeMetric)(nil)).Elem() +} + +func (o MetricStreamStatisticsConfigurationIncludeMetricArrayOutput) ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutput() MetricStreamStatisticsConfigurationIncludeMetricArrayOutput { + return o +} + +func (o MetricStreamStatisticsConfigurationIncludeMetricArrayOutput) ToMetricStreamStatisticsConfigurationIncludeMetricArrayOutputWithContext(ctx context.Context) MetricStreamStatisticsConfigurationIncludeMetricArrayOutput { + return o +} + +func (o MetricStreamStatisticsConfigurationIncludeMetricArrayOutput) Index(i pulumi.IntInput) MetricStreamStatisticsConfigurationIncludeMetricOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MetricStreamStatisticsConfigurationIncludeMetric { + return vs[0].([]MetricStreamStatisticsConfigurationIncludeMetric)[vs[1].(int)] + }).(MetricStreamStatisticsConfigurationIncludeMetricOutput) +} + +type GetLogDataProtectionPolicyDocumentStatement struct { + // Set of at least 1 sensitive data identifiers that you want to mask. Read more in [Types of data that you can protect](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/protect-sensitive-log-data-types.html). + DataIdentifiers []string `pulumi:"dataIdentifiers"` + // Configures the data protection operation applied by this statement. + Operation GetLogDataProtectionPolicyDocumentStatementOperation `pulumi:"operation"` + // Name of this statement. + Sid *string `pulumi:"sid"` +} + +// GetLogDataProtectionPolicyDocumentStatementInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementArgs and GetLogDataProtectionPolicyDocumentStatementOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementArgs{...} +type GetLogDataProtectionPolicyDocumentStatementInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOutput() GetLogDataProtectionPolicyDocumentStatementOutput + ToGetLogDataProtectionPolicyDocumentStatementOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOutput +} + +type GetLogDataProtectionPolicyDocumentStatementArgs struct { + // Set of at least 1 sensitive data identifiers that you want to mask. Read more in [Types of data that you can protect](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/protect-sensitive-log-data-types.html). + DataIdentifiers pulumi.StringArrayInput `pulumi:"dataIdentifiers"` + // Configures the data protection operation applied by this statement. + Operation GetLogDataProtectionPolicyDocumentStatementOperationInput `pulumi:"operation"` + // Name of this statement. + Sid pulumi.StringPtrInput `pulumi:"sid"` +} + +func (GetLogDataProtectionPolicyDocumentStatementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatement)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementArgs) ToGetLogDataProtectionPolicyDocumentStatementOutput() GetLogDataProtectionPolicyDocumentStatementOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementArgs) ToGetLogDataProtectionPolicyDocumentStatementOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOutput) +} + +// GetLogDataProtectionPolicyDocumentStatementArrayInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementArray and GetLogDataProtectionPolicyDocumentStatementArrayOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementArrayInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementArray{ GetLogDataProtectionPolicyDocumentStatementArgs{...} } +type GetLogDataProtectionPolicyDocumentStatementArrayInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementArrayOutput() GetLogDataProtectionPolicyDocumentStatementArrayOutput + ToGetLogDataProtectionPolicyDocumentStatementArrayOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementArrayOutput +} + +type GetLogDataProtectionPolicyDocumentStatementArray []GetLogDataProtectionPolicyDocumentStatementInput + +func (GetLogDataProtectionPolicyDocumentStatementArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetLogDataProtectionPolicyDocumentStatement)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementArray) ToGetLogDataProtectionPolicyDocumentStatementArrayOutput() GetLogDataProtectionPolicyDocumentStatementArrayOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementArrayOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementArray) ToGetLogDataProtectionPolicyDocumentStatementArrayOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementArrayOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatement)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOutput) ToGetLogDataProtectionPolicyDocumentStatementOutput() GetLogDataProtectionPolicyDocumentStatementOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOutput) ToGetLogDataProtectionPolicyDocumentStatementOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOutput { + return o +} + +// Set of at least 1 sensitive data identifiers that you want to mask. Read more in [Types of data that you can protect](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/protect-sensitive-log-data-types.html). +func (o GetLogDataProtectionPolicyDocumentStatementOutput) DataIdentifiers() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatement) []string { return v.DataIdentifiers }).(pulumi.StringArrayOutput) +} + +// Configures the data protection operation applied by this statement. +func (o GetLogDataProtectionPolicyDocumentStatementOutput) Operation() GetLogDataProtectionPolicyDocumentStatementOperationOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatement) GetLogDataProtectionPolicyDocumentStatementOperation { + return v.Operation + }).(GetLogDataProtectionPolicyDocumentStatementOperationOutput) +} + +// Name of this statement. +func (o GetLogDataProtectionPolicyDocumentStatementOutput) Sid() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatement) *string { return v.Sid }).(pulumi.StringPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementArrayOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetLogDataProtectionPolicyDocumentStatement)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementArrayOutput) ToGetLogDataProtectionPolicyDocumentStatementArrayOutput() GetLogDataProtectionPolicyDocumentStatementArrayOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementArrayOutput) ToGetLogDataProtectionPolicyDocumentStatementArrayOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementArrayOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementArrayOutput) Index(i pulumi.IntInput) GetLogDataProtectionPolicyDocumentStatementOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetLogDataProtectionPolicyDocumentStatement { + return vs[0].([]GetLogDataProtectionPolicyDocumentStatement)[vs[1].(int)] + }).(GetLogDataProtectionPolicyDocumentStatementOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperation struct { + // Configures the detection of sensitive data. + Audit *GetLogDataProtectionPolicyDocumentStatementOperationAudit `pulumi:"audit"` + // Configures the masking of sensitive data. + // + // > Every policy statement must specify exactly one operation. + Deidentify *GetLogDataProtectionPolicyDocumentStatementOperationDeidentify `pulumi:"deidentify"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationArgs and GetLogDataProtectionPolicyDocumentStatementOperationOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationOutput() GetLogDataProtectionPolicyDocumentStatementOperationOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationArgs struct { + // Configures the detection of sensitive data. + Audit GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrInput `pulumi:"audit"` + // Configures the masking of sensitive data. + // + // > Every policy statement must specify exactly one operation. + Deidentify GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrInput `pulumi:"deidentify"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperation)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationOutput() GetLogDataProtectionPolicyDocumentStatementOperationOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperation)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationOutput() GetLogDataProtectionPolicyDocumentStatementOperationOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationOutput { + return o +} + +// Configures the detection of sensitive data. +func (o GetLogDataProtectionPolicyDocumentStatementOperationOutput) Audit() GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperation) *GetLogDataProtectionPolicyDocumentStatementOperationAudit { + return v.Audit + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) +} + +// Configures the masking of sensitive data. +// +// > Every policy statement must specify exactly one operation. +func (o GetLogDataProtectionPolicyDocumentStatementOperationOutput) Deidentify() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperation) *GetLogDataProtectionPolicyDocumentStatementOperationDeidentify { + return v.Deidentify + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAudit struct { + // Configures destinations to send audit findings to. + FindingsDestination GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination `pulumi:"findingsDestination"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs and GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationAuditInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs struct { + // Configures destinations to send audit findings to. + FindingsDestination GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationInput `pulumi:"findingsDestination"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAudit)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput).ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs, GetLogDataProtectionPolicyDocumentStatementOperationAuditPtr and GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationAuditPtrType GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs + +func GetLogDataProtectionPolicyDocumentStatementOperationAuditPtr(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs) GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationAuditPtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationAuditPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAudit)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAudit)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationAudit) *GetLogDataProtectionPolicyDocumentStatementOperationAudit { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) +} + +// Configures destinations to send audit findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) FindingsDestination() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAudit) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination { + return v.FindingsDestination + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAudit)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAudit) GetLogDataProtectionPolicyDocumentStatementOperationAudit { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationAudit + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput) +} + +// Configures destinations to send audit findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput) FindingsDestination() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAudit) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination { + if v == nil { + return nil + } + return &v.FindingsDestination + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination struct { + // Configures CloudWatch Logs as a findings destination. + CloudwatchLogs *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs `pulumi:"cloudwatchLogs"` + // Configures Kinesis Firehose as a findings destination. + Firehose *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose `pulumi:"firehose"` + // Configures S3 as a findings destination. + S3 *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 `pulumi:"s3"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs struct { + // Configures CloudWatch Logs as a findings destination. + CloudwatchLogs GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrInput `pulumi:"cloudwatchLogs"` + // Configures Kinesis Firehose as a findings destination. + Firehose GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrInput `pulumi:"firehose"` + // Configures S3 as a findings destination. + S3 GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrInput `pulumi:"s3"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput).ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs, GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtr and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrType GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs + +func GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtr(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) +} + +// Configures CloudWatch Logs as a findings destination. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) CloudwatchLogs() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs { + return v.CloudwatchLogs + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) +} + +// Configures Kinesis Firehose as a findings destination. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) Firehose() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose { + return v.Firehose + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) +} + +// Configures S3 as a findings destination. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) S3() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 { + return v.S3 + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput) +} + +// Configures CloudWatch Logs as a findings destination. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) CloudwatchLogs() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs { + if v == nil { + return nil + } + return v.CloudwatchLogs + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) +} + +// Configures Kinesis Firehose as a findings destination. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) Firehose() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose { + if v == nil { + return nil + } + return v.Firehose + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) +} + +// Configures S3 as a findings destination. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput) S3() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestination) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 { + if v == nil { + return nil + } + return v.S3 + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs struct { + // Name of the CloudWatch Log Group to send findings to. + LogGroup string `pulumi:"logGroup"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs struct { + // Name of the CloudWatch Log Group to send findings to. + LogGroup pulumi.StringInput `pulumi:"logGroup"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput).ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs, GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtr and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrType GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs + +func GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtr(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) +} + +// Name of the CloudWatch Log Group to send findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) LogGroup() pulumi.StringOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs) string { + return v.LogGroup + }).(pulumi.StringOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput) +} + +// Name of the CloudWatch Log Group to send findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput) LogGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogs) *string { + if v == nil { + return nil + } + return &v.LogGroup + }).(pulumi.StringPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose struct { + // Name of the Kinesis Firehose Delivery Stream to send findings to. + DeliveryStream string `pulumi:"deliveryStream"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs struct { + // Name of the Kinesis Firehose Delivery Stream to send findings to. + DeliveryStream pulumi.StringInput `pulumi:"deliveryStream"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput).ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs, GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtr and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrType GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs + +func GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtr(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) +} + +// Name of the Kinesis Firehose Delivery Stream to send findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) DeliveryStream() pulumi.StringOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose) string { + return v.DeliveryStream + }).(pulumi.StringOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput) +} + +// Name of the Kinesis Firehose Delivery Stream to send findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput) DeliveryStream() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehose) *string { + if v == nil { + return nil + } + return &v.DeliveryStream + }).(pulumi.StringPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 struct { + // Name of the S3 Bucket to send findings to. + Bucket string `pulumi:"bucket"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Input is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Input` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args{...} +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Input interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3OutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args struct { + // Name of the S3 Bucket to send findings to. + Bucket pulumi.StringInput `pulumi:"bucket"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3OutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3OutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output).ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args, GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Ptr and GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrType GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args + +func GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Ptr(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3OutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3) *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) +} + +// Name of the S3 Bucket to send findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3) string { + return v.Bucket + }).(pulumi.StringOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3) GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3 + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output) +} + +// Name of the S3 Bucket to send findings to. +func (o GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3) *string { + if v == nil { + return nil + } + return &v.Bucket + }).(pulumi.StringPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentify struct { + // An empty object that configures masking. + MaskConfig GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig `pulumi:"maskConfig"` +} + +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs and GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs struct { + // An empty object that configures masking. + MaskConfig GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigInput `pulumi:"maskConfig"` +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentify)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput).ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs, GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtr and GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrType GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs + +func GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtr(v *GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationDeidentify)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentify)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationDeidentify) *GetLogDataProtectionPolicyDocumentStatementOperationDeidentify { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) +} + +// An empty object that configures masking. +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) MaskConfig() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput { + return o.ApplyT(func(v GetLogDataProtectionPolicyDocumentStatementOperationDeidentify) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig { + return v.MaskConfig + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationDeidentify)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationDeidentify) GetLogDataProtectionPolicyDocumentStatementOperationDeidentify { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationDeidentify + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput) +} + +// An empty object that configures masking. +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput) MaskConfig() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationDeidentify) *GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig { + if v == nil { + return nil + } + return &v.MaskConfig + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig struct { +} + +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs and GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs{...} +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs struct { +} + +func (GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig)(nil)).Elem() +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(context.Background()) +} + +func (i GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput).ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(ctx) +} + +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrInput is an input type that accepts GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs, GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtr and GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput values. +// You can construct a concrete instance of `GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrInput` via: +// +// GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs{...} +// +// or: +// +// nil +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrInput interface { + pulumi.Input + + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput + ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput +} + +type getLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrType GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs + +func GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtr(v *GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrInput { + return (*getLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrType)(v) +} + +func (*getLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig)(nil)).Elem() +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return i.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(context.Background()) +} + +func (i *getLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrType) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return o.ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(context.Background()) +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig) *GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig { + return &v + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) +} + +type GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput struct{ *pulumi.OutputState } + +func (GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig)(nil)).Elem() +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) ToGetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutputWithContext(ctx context.Context) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput { + return o +} + +func (o GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput) Elem() GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput { + return o.ApplyT(func(v *GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig) GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig { + if v != nil { + return *v + } + var ret GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfig + return ret + }).(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmActionsSuppressorInput)(nil)).Elem(), CompositeAlarmActionsSuppressorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CompositeAlarmActionsSuppressorPtrInput)(nil)).Elem(), CompositeAlarmActionsSuppressorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInput)(nil)).Elem(), EventConnectionAuthParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersPtrInput)(nil)).Elem(), EventConnectionAuthParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersApiKeyInput)(nil)).Elem(), EventConnectionAuthParametersApiKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersApiKeyPtrInput)(nil)).Elem(), EventConnectionAuthParametersApiKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersBasicInput)(nil)).Elem(), EventConnectionAuthParametersBasicArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersBasicPtrInput)(nil)).Elem(), EventConnectionAuthParametersBasicArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersPtrInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersBodyInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersBodyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersBodyArrayInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersBodyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersHeaderInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersHeaderArrayInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersHeaderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersQueryStringInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersQueryStringArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayInput)(nil)).Elem(), EventConnectionAuthParametersInvocationHttpParametersQueryStringArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthInput)(nil)).Elem(), EventConnectionAuthParametersOauthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthPtrInput)(nil)).Elem(), EventConnectionAuthParametersOauthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthClientParametersInput)(nil)).Elem(), EventConnectionAuthParametersOauthClientParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthClientParametersPtrInput)(nil)).Elem(), EventConnectionAuthParametersOauthClientParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersPtrInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersBodyInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersBodyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersBodyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersHeaderInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersHeaderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersQueryStringInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayInput)(nil)).Elem(), EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointEventBusInput)(nil)).Elem(), EventEndpointEventBusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointEventBusArrayInput)(nil)).Elem(), EventEndpointEventBusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointReplicationConfigInput)(nil)).Elem(), EventEndpointReplicationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointReplicationConfigPtrInput)(nil)).Elem(), EventEndpointReplicationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigInput)(nil)).Elem(), EventEndpointRoutingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigPtrInput)(nil)).Elem(), EventEndpointRoutingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigInput)(nil)).Elem(), EventEndpointRoutingConfigFailoverConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigPtrInput)(nil)).Elem(), EventEndpointRoutingConfigFailoverConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigPrimaryInput)(nil)).Elem(), EventEndpointRoutingConfigFailoverConfigPrimaryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigPrimaryPtrInput)(nil)).Elem(), EventEndpointRoutingConfigFailoverConfigPrimaryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigSecondaryInput)(nil)).Elem(), EventEndpointRoutingConfigFailoverConfigSecondaryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventEndpointRoutingConfigFailoverConfigSecondaryPtrInput)(nil)).Elem(), EventEndpointRoutingConfigFailoverConfigSecondaryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventPermissionConditionInput)(nil)).Elem(), EventPermissionConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventPermissionConditionPtrInput)(nil)).Elem(), EventPermissionConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetBatchTargetInput)(nil)).Elem(), EventTargetBatchTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetBatchTargetPtrInput)(nil)).Elem(), EventTargetBatchTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetDeadLetterConfigInput)(nil)).Elem(), EventTargetDeadLetterConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetDeadLetterConfigPtrInput)(nil)).Elem(), EventTargetDeadLetterConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetInput)(nil)).Elem(), EventTargetEcsTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetPtrInput)(nil)).Elem(), EventTargetEcsTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetCapacityProviderStrategyInput)(nil)).Elem(), EventTargetEcsTargetCapacityProviderStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetCapacityProviderStrategyArrayInput)(nil)).Elem(), EventTargetEcsTargetCapacityProviderStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetNetworkConfigurationInput)(nil)).Elem(), EventTargetEcsTargetNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetNetworkConfigurationPtrInput)(nil)).Elem(), EventTargetEcsTargetNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetOrderedPlacementStrategyInput)(nil)).Elem(), EventTargetEcsTargetOrderedPlacementStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetOrderedPlacementStrategyArrayInput)(nil)).Elem(), EventTargetEcsTargetOrderedPlacementStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetPlacementConstraintInput)(nil)).Elem(), EventTargetEcsTargetPlacementConstraintArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetEcsTargetPlacementConstraintArrayInput)(nil)).Elem(), EventTargetEcsTargetPlacementConstraintArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetHttpTargetInput)(nil)).Elem(), EventTargetHttpTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetHttpTargetPtrInput)(nil)).Elem(), EventTargetHttpTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetInputTransformerInput)(nil)).Elem(), EventTargetInputTransformerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetInputTransformerPtrInput)(nil)).Elem(), EventTargetInputTransformerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetKinesisTargetInput)(nil)).Elem(), EventTargetKinesisTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetKinesisTargetPtrInput)(nil)).Elem(), EventTargetKinesisTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetRedshiftTargetInput)(nil)).Elem(), EventTargetRedshiftTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetRedshiftTargetPtrInput)(nil)).Elem(), EventTargetRedshiftTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetRetryPolicyInput)(nil)).Elem(), EventTargetRetryPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetRetryPolicyPtrInput)(nil)).Elem(), EventTargetRetryPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetRunCommandTargetInput)(nil)).Elem(), EventTargetRunCommandTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetRunCommandTargetArrayInput)(nil)).Elem(), EventTargetRunCommandTargetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetSagemakerPipelineTargetInput)(nil)).Elem(), EventTargetSagemakerPipelineTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetSagemakerPipelineTargetPtrInput)(nil)).Elem(), EventTargetSagemakerPipelineTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetSagemakerPipelineTargetPipelineParameterListInput)(nil)).Elem(), EventTargetSagemakerPipelineTargetPipelineParameterListArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetSagemakerPipelineTargetPipelineParameterListArrayInput)(nil)).Elem(), EventTargetSagemakerPipelineTargetPipelineParameterListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetSqsTargetInput)(nil)).Elem(), EventTargetSqsTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EventTargetSqsTargetPtrInput)(nil)).Elem(), EventTargetSqsTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorHealthEventsConfigInput)(nil)).Elem(), InternetMonitorHealthEventsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorHealthEventsConfigPtrInput)(nil)).Elem(), InternetMonitorHealthEventsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDeliveryInput)(nil)).Elem(), InternetMonitorInternetMeasurementsLogDeliveryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDeliveryPtrInput)(nil)).Elem(), InternetMonitorInternetMeasurementsLogDeliveryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDeliveryS3ConfigInput)(nil)).Elem(), InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrInput)(nil)).Elem(), InternetMonitorInternetMeasurementsLogDeliveryS3ConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterMetricTransformationInput)(nil)).Elem(), LogMetricFilterMetricTransformationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogMetricFilterMetricTransformationPtrInput)(nil)).Elem(), LogMetricFilterMetricTransformationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmMetricQueryInput)(nil)).Elem(), MetricAlarmMetricQueryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmMetricQueryArrayInput)(nil)).Elem(), MetricAlarmMetricQueryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmMetricQueryMetricInput)(nil)).Elem(), MetricAlarmMetricQueryMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricAlarmMetricQueryMetricPtrInput)(nil)).Elem(), MetricAlarmMetricQueryMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamExcludeFilterInput)(nil)).Elem(), MetricStreamExcludeFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamExcludeFilterArrayInput)(nil)).Elem(), MetricStreamExcludeFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamIncludeFilterInput)(nil)).Elem(), MetricStreamIncludeFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamIncludeFilterArrayInput)(nil)).Elem(), MetricStreamIncludeFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamStatisticsConfigurationInput)(nil)).Elem(), MetricStreamStatisticsConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamStatisticsConfigurationArrayInput)(nil)).Elem(), MetricStreamStatisticsConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamStatisticsConfigurationIncludeMetricInput)(nil)).Elem(), MetricStreamStatisticsConfigurationIncludeMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MetricStreamStatisticsConfigurationIncludeMetricArrayInput)(nil)).Elem(), MetricStreamStatisticsConfigurationIncludeMetricArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementArrayInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Input)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrInput)(nil)).Elem(), GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigArgs{}) + pulumi.RegisterOutputType(CompositeAlarmActionsSuppressorOutput{}) + pulumi.RegisterOutputType(CompositeAlarmActionsSuppressorPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersApiKeyOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersApiKeyPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersBasicOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersBasicPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersBodyOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersBodyArrayOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersHeaderOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersHeaderArrayOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersQueryStringOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersInvocationHttpParametersQueryStringArrayOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthClientParametersOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthClientParametersPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersPtrOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersBodyOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersBodyArrayOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersHeaderOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersHeaderArrayOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringOutput{}) + pulumi.RegisterOutputType(EventConnectionAuthParametersOauthOauthHttpParametersQueryStringArrayOutput{}) + pulumi.RegisterOutputType(EventEndpointEventBusOutput{}) + pulumi.RegisterOutputType(EventEndpointEventBusArrayOutput{}) + pulumi.RegisterOutputType(EventEndpointReplicationConfigOutput{}) + pulumi.RegisterOutputType(EventEndpointReplicationConfigPtrOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigPtrOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigFailoverConfigOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigFailoverConfigPtrOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigFailoverConfigPrimaryOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigFailoverConfigPrimaryPtrOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigFailoverConfigSecondaryOutput{}) + pulumi.RegisterOutputType(EventEndpointRoutingConfigFailoverConfigSecondaryPtrOutput{}) + pulumi.RegisterOutputType(EventPermissionConditionOutput{}) + pulumi.RegisterOutputType(EventPermissionConditionPtrOutput{}) + pulumi.RegisterOutputType(EventTargetBatchTargetOutput{}) + pulumi.RegisterOutputType(EventTargetBatchTargetPtrOutput{}) + pulumi.RegisterOutputType(EventTargetDeadLetterConfigOutput{}) + pulumi.RegisterOutputType(EventTargetDeadLetterConfigPtrOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetPtrOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetCapacityProviderStrategyOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetCapacityProviderStrategyArrayOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetNetworkConfigurationOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetNetworkConfigurationPtrOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetOrderedPlacementStrategyOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetOrderedPlacementStrategyArrayOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetPlacementConstraintOutput{}) + pulumi.RegisterOutputType(EventTargetEcsTargetPlacementConstraintArrayOutput{}) + pulumi.RegisterOutputType(EventTargetHttpTargetOutput{}) + pulumi.RegisterOutputType(EventTargetHttpTargetPtrOutput{}) + pulumi.RegisterOutputType(EventTargetInputTransformerOutput{}) + pulumi.RegisterOutputType(EventTargetInputTransformerPtrOutput{}) + pulumi.RegisterOutputType(EventTargetKinesisTargetOutput{}) + pulumi.RegisterOutputType(EventTargetKinesisTargetPtrOutput{}) + pulumi.RegisterOutputType(EventTargetRedshiftTargetOutput{}) + pulumi.RegisterOutputType(EventTargetRedshiftTargetPtrOutput{}) + pulumi.RegisterOutputType(EventTargetRetryPolicyOutput{}) + pulumi.RegisterOutputType(EventTargetRetryPolicyPtrOutput{}) + pulumi.RegisterOutputType(EventTargetRunCommandTargetOutput{}) + pulumi.RegisterOutputType(EventTargetRunCommandTargetArrayOutput{}) + pulumi.RegisterOutputType(EventTargetSagemakerPipelineTargetOutput{}) + pulumi.RegisterOutputType(EventTargetSagemakerPipelineTargetPtrOutput{}) + pulumi.RegisterOutputType(EventTargetSagemakerPipelineTargetPipelineParameterListOutput{}) + pulumi.RegisterOutputType(EventTargetSagemakerPipelineTargetPipelineParameterListArrayOutput{}) + pulumi.RegisterOutputType(EventTargetSqsTargetOutput{}) + pulumi.RegisterOutputType(EventTargetSqsTargetPtrOutput{}) + pulumi.RegisterOutputType(InternetMonitorHealthEventsConfigOutput{}) + pulumi.RegisterOutputType(InternetMonitorHealthEventsConfigPtrOutput{}) + pulumi.RegisterOutputType(InternetMonitorInternetMeasurementsLogDeliveryOutput{}) + pulumi.RegisterOutputType(InternetMonitorInternetMeasurementsLogDeliveryPtrOutput{}) + pulumi.RegisterOutputType(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigOutput{}) + pulumi.RegisterOutputType(InternetMonitorInternetMeasurementsLogDeliveryS3ConfigPtrOutput{}) + pulumi.RegisterOutputType(LogMetricFilterMetricTransformationOutput{}) + pulumi.RegisterOutputType(LogMetricFilterMetricTransformationPtrOutput{}) + pulumi.RegisterOutputType(MetricAlarmMetricQueryOutput{}) + pulumi.RegisterOutputType(MetricAlarmMetricQueryArrayOutput{}) + pulumi.RegisterOutputType(MetricAlarmMetricQueryMetricOutput{}) + pulumi.RegisterOutputType(MetricAlarmMetricQueryMetricPtrOutput{}) + pulumi.RegisterOutputType(MetricStreamExcludeFilterOutput{}) + pulumi.RegisterOutputType(MetricStreamExcludeFilterArrayOutput{}) + pulumi.RegisterOutputType(MetricStreamIncludeFilterOutput{}) + pulumi.RegisterOutputType(MetricStreamIncludeFilterArrayOutput{}) + pulumi.RegisterOutputType(MetricStreamStatisticsConfigurationOutput{}) + pulumi.RegisterOutputType(MetricStreamStatisticsConfigurationArrayOutput{}) + pulumi.RegisterOutputType(MetricStreamStatisticsConfigurationIncludeMetricOutput{}) + pulumi.RegisterOutputType(MetricStreamStatisticsConfigurationIncludeMetricArrayOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementArrayOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditPtrOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationPtrOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationCloudwatchLogsPtrOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehoseOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationFirehosePtrOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3Output{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationAuditFindingsDestinationS3PtrOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyPtrOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigOutput{}) + pulumi.RegisterOutputType(GetLogDataProtectionPolicyDocumentStatementOperationDeidentifyMaskConfigPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/queryDefinition.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/queryDefinition.go new file mode 100644 index 000000000..189a4d8ef --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch/queryDefinition.go @@ -0,0 +1,300 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a CloudWatch Logs query definition resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := cloudwatch.NewQueryDefinition(ctx, "example", &cloudwatch.QueryDefinitionArgs{ +// LogGroupNames: pulumi.StringArray{ +// pulumi.String("/aws/logGroup1"), +// pulumi.String("/aws/logGroup2"), +// }, +// QueryString: pulumi.String("fields @timestamp, @message\n| sort @timestamp desc\n| limit 25\n\n"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import CloudWatch query definitions using the query definition ARN. The ARN can be found on the "Edit Query" page for the query in the AWS Console. For example: +// +// ```sh +// +// $ pulumi import aws:cloudwatch/queryDefinition:QueryDefinition example arn:aws:logs:us-west-2:123456789012:query-definition:269951d7-6f75-496d-9d7b-6b7a5486bdbd +// +// ``` +type QueryDefinition struct { + pulumi.CustomResourceState + + // Specific log groups to use with the query. + LogGroupNames pulumi.StringArrayOutput `pulumi:"logGroupNames"` + // The name of the query. + Name pulumi.StringOutput `pulumi:"name"` + // The query definition ID. + QueryDefinitionId pulumi.StringOutput `pulumi:"queryDefinitionId"` + // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + QueryString pulumi.StringOutput `pulumi:"queryString"` +} + +// NewQueryDefinition registers a new resource with the given unique name, arguments, and options. +func NewQueryDefinition(ctx *pulumi.Context, + name string, args *QueryDefinitionArgs, opts ...pulumi.ResourceOption) (*QueryDefinition, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.QueryString == nil { + return nil, errors.New("invalid value for required argument 'QueryString'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource QueryDefinition + err := ctx.RegisterResource("aws:cloudwatch/queryDefinition:QueryDefinition", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetQueryDefinition gets an existing QueryDefinition resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetQueryDefinition(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *QueryDefinitionState, opts ...pulumi.ResourceOption) (*QueryDefinition, error) { + var resource QueryDefinition + err := ctx.ReadResource("aws:cloudwatch/queryDefinition:QueryDefinition", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering QueryDefinition resources. +type queryDefinitionState struct { + // Specific log groups to use with the query. + LogGroupNames []string `pulumi:"logGroupNames"` + // The name of the query. + Name *string `pulumi:"name"` + // The query definition ID. + QueryDefinitionId *string `pulumi:"queryDefinitionId"` + // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + QueryString *string `pulumi:"queryString"` +} + +type QueryDefinitionState struct { + // Specific log groups to use with the query. + LogGroupNames pulumi.StringArrayInput + // The name of the query. + Name pulumi.StringPtrInput + // The query definition ID. + QueryDefinitionId pulumi.StringPtrInput + // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + QueryString pulumi.StringPtrInput +} + +func (QueryDefinitionState) ElementType() reflect.Type { + return reflect.TypeOf((*queryDefinitionState)(nil)).Elem() +} + +type queryDefinitionArgs struct { + // Specific log groups to use with the query. + LogGroupNames []string `pulumi:"logGroupNames"` + // The name of the query. + Name *string `pulumi:"name"` + // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + QueryString string `pulumi:"queryString"` +} + +// The set of arguments for constructing a QueryDefinition resource. +type QueryDefinitionArgs struct { + // Specific log groups to use with the query. + LogGroupNames pulumi.StringArrayInput + // The name of the query. + Name pulumi.StringPtrInput + // The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). + QueryString pulumi.StringInput +} + +func (QueryDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*queryDefinitionArgs)(nil)).Elem() +} + +type QueryDefinitionInput interface { + pulumi.Input + + ToQueryDefinitionOutput() QueryDefinitionOutput + ToQueryDefinitionOutputWithContext(ctx context.Context) QueryDefinitionOutput +} + +func (*QueryDefinition) ElementType() reflect.Type { + return reflect.TypeOf((**QueryDefinition)(nil)).Elem() +} + +func (i *QueryDefinition) ToQueryDefinitionOutput() QueryDefinitionOutput { + return i.ToQueryDefinitionOutputWithContext(context.Background()) +} + +func (i *QueryDefinition) ToQueryDefinitionOutputWithContext(ctx context.Context) QueryDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueryDefinitionOutput) +} + +// QueryDefinitionArrayInput is an input type that accepts QueryDefinitionArray and QueryDefinitionArrayOutput values. +// You can construct a concrete instance of `QueryDefinitionArrayInput` via: +// +// QueryDefinitionArray{ QueryDefinitionArgs{...} } +type QueryDefinitionArrayInput interface { + pulumi.Input + + ToQueryDefinitionArrayOutput() QueryDefinitionArrayOutput + ToQueryDefinitionArrayOutputWithContext(context.Context) QueryDefinitionArrayOutput +} + +type QueryDefinitionArray []QueryDefinitionInput + +func (QueryDefinitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*QueryDefinition)(nil)).Elem() +} + +func (i QueryDefinitionArray) ToQueryDefinitionArrayOutput() QueryDefinitionArrayOutput { + return i.ToQueryDefinitionArrayOutputWithContext(context.Background()) +} + +func (i QueryDefinitionArray) ToQueryDefinitionArrayOutputWithContext(ctx context.Context) QueryDefinitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueryDefinitionArrayOutput) +} + +// QueryDefinitionMapInput is an input type that accepts QueryDefinitionMap and QueryDefinitionMapOutput values. +// You can construct a concrete instance of `QueryDefinitionMapInput` via: +// +// QueryDefinitionMap{ "key": QueryDefinitionArgs{...} } +type QueryDefinitionMapInput interface { + pulumi.Input + + ToQueryDefinitionMapOutput() QueryDefinitionMapOutput + ToQueryDefinitionMapOutputWithContext(context.Context) QueryDefinitionMapOutput +} + +type QueryDefinitionMap map[string]QueryDefinitionInput + +func (QueryDefinitionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*QueryDefinition)(nil)).Elem() +} + +func (i QueryDefinitionMap) ToQueryDefinitionMapOutput() QueryDefinitionMapOutput { + return i.ToQueryDefinitionMapOutputWithContext(context.Background()) +} + +func (i QueryDefinitionMap) ToQueryDefinitionMapOutputWithContext(ctx context.Context) QueryDefinitionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(QueryDefinitionMapOutput) +} + +type QueryDefinitionOutput struct{ *pulumi.OutputState } + +func (QueryDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**QueryDefinition)(nil)).Elem() +} + +func (o QueryDefinitionOutput) ToQueryDefinitionOutput() QueryDefinitionOutput { + return o +} + +func (o QueryDefinitionOutput) ToQueryDefinitionOutputWithContext(ctx context.Context) QueryDefinitionOutput { + return o +} + +// Specific log groups to use with the query. +func (o QueryDefinitionOutput) LogGroupNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *QueryDefinition) pulumi.StringArrayOutput { return v.LogGroupNames }).(pulumi.StringArrayOutput) +} + +// The name of the query. +func (o QueryDefinitionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *QueryDefinition) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The query definition ID. +func (o QueryDefinitionOutput) QueryDefinitionId() pulumi.StringOutput { + return o.ApplyT(func(v *QueryDefinition) pulumi.StringOutput { return v.QueryDefinitionId }).(pulumi.StringOutput) +} + +// The query to save. You can read more about CloudWatch Logs Query Syntax in the [documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). +func (o QueryDefinitionOutput) QueryString() pulumi.StringOutput { + return o.ApplyT(func(v *QueryDefinition) pulumi.StringOutput { return v.QueryString }).(pulumi.StringOutput) +} + +type QueryDefinitionArrayOutput struct{ *pulumi.OutputState } + +func (QueryDefinitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*QueryDefinition)(nil)).Elem() +} + +func (o QueryDefinitionArrayOutput) ToQueryDefinitionArrayOutput() QueryDefinitionArrayOutput { + return o +} + +func (o QueryDefinitionArrayOutput) ToQueryDefinitionArrayOutputWithContext(ctx context.Context) QueryDefinitionArrayOutput { + return o +} + +func (o QueryDefinitionArrayOutput) Index(i pulumi.IntInput) QueryDefinitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *QueryDefinition { + return vs[0].([]*QueryDefinition)[vs[1].(int)] + }).(QueryDefinitionOutput) +} + +type QueryDefinitionMapOutput struct{ *pulumi.OutputState } + +func (QueryDefinitionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*QueryDefinition)(nil)).Elem() +} + +func (o QueryDefinitionMapOutput) ToQueryDefinitionMapOutput() QueryDefinitionMapOutput { + return o +} + +func (o QueryDefinitionMapOutput) ToQueryDefinitionMapOutputWithContext(ctx context.Context) QueryDefinitionMapOutput { + return o +} + +func (o QueryDefinitionMapOutput) MapIndex(k pulumi.StringInput) QueryDefinitionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *QueryDefinition { + return vs[0].(map[string]*QueryDefinition)[vs[1].(string)] + }).(QueryDefinitionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*QueryDefinitionInput)(nil)).Elem(), &QueryDefinition{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueryDefinitionArrayInput)(nil)).Elem(), QueryDefinitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*QueryDefinitionMapInput)(nil)).Elem(), QueryDefinitionMap{}) + pulumi.RegisterOutputType(QueryDefinitionOutput{}) + pulumi.RegisterOutputType(QueryDefinitionArrayOutput{}) + pulumi.RegisterOutputType(QueryDefinitionMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/accountSettingDefault.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/accountSettingDefault.go new file mode 100644 index 000000000..76cd8e808 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/accountSettingDefault.go @@ -0,0 +1,281 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an ECS default account setting for a specific ECS Resource name within a specific region. More information can be found on the [ECS Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html). +// +// > **NOTE:** The AWS API does not delete this resource. When you run `destroy`, the provider will attempt to disable the setting. +// +// > **NOTE:** Your AWS account may not support disabling `containerInstanceLongArnFormat`, `serviceLongArnFormat`, and `taskLongArnFormat`. If your account does not support disabling these, "destroying" this resource will not disable the setting nor cause a provider error. However, the AWS Provider will log an AWS error: `InvalidParameterException: You can no longer disable Long Arn settings`. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewAccountSettingDefault(ctx, "test", &ecs.AccountSettingDefaultArgs{ +// Value: pulumi.String("enabled"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS Account Setting defaults using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:ecs/accountSettingDefault:AccountSettingDefault example taskLongArnFormat +// +// ``` +type AccountSettingDefault struct { + pulumi.CustomResourceState + + // Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. + Name pulumi.StringOutput `pulumi:"name"` + PrincipalArn pulumi.StringOutput `pulumi:"principalArn"` + // State of the setting. Valid values are `enabled` and `disabled`. + Value pulumi.StringOutput `pulumi:"value"` +} + +// NewAccountSettingDefault registers a new resource with the given unique name, arguments, and options. +func NewAccountSettingDefault(ctx *pulumi.Context, + name string, args *AccountSettingDefaultArgs, opts ...pulumi.ResourceOption) (*AccountSettingDefault, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountSettingDefault + err := ctx.RegisterResource("aws:ecs/accountSettingDefault:AccountSettingDefault", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountSettingDefault gets an existing AccountSettingDefault resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountSettingDefault(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountSettingDefaultState, opts ...pulumi.ResourceOption) (*AccountSettingDefault, error) { + var resource AccountSettingDefault + err := ctx.ReadResource("aws:ecs/accountSettingDefault:AccountSettingDefault", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountSettingDefault resources. +type accountSettingDefaultState struct { + // Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. + Name *string `pulumi:"name"` + PrincipalArn *string `pulumi:"principalArn"` + // State of the setting. Valid values are `enabled` and `disabled`. + Value *string `pulumi:"value"` +} + +type AccountSettingDefaultState struct { + // Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. + Name pulumi.StringPtrInput + PrincipalArn pulumi.StringPtrInput + // State of the setting. Valid values are `enabled` and `disabled`. + Value pulumi.StringPtrInput +} + +func (AccountSettingDefaultState) ElementType() reflect.Type { + return reflect.TypeOf((*accountSettingDefaultState)(nil)).Elem() +} + +type accountSettingDefaultArgs struct { + // Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. + Name *string `pulumi:"name"` + // State of the setting. Valid values are `enabled` and `disabled`. + Value string `pulumi:"value"` +} + +// The set of arguments for constructing a AccountSettingDefault resource. +type AccountSettingDefaultArgs struct { + // Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. + Name pulumi.StringPtrInput + // State of the setting. Valid values are `enabled` and `disabled`. + Value pulumi.StringInput +} + +func (AccountSettingDefaultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountSettingDefaultArgs)(nil)).Elem() +} + +type AccountSettingDefaultInput interface { + pulumi.Input + + ToAccountSettingDefaultOutput() AccountSettingDefaultOutput + ToAccountSettingDefaultOutputWithContext(ctx context.Context) AccountSettingDefaultOutput +} + +func (*AccountSettingDefault) ElementType() reflect.Type { + return reflect.TypeOf((**AccountSettingDefault)(nil)).Elem() +} + +func (i *AccountSettingDefault) ToAccountSettingDefaultOutput() AccountSettingDefaultOutput { + return i.ToAccountSettingDefaultOutputWithContext(context.Background()) +} + +func (i *AccountSettingDefault) ToAccountSettingDefaultOutputWithContext(ctx context.Context) AccountSettingDefaultOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountSettingDefaultOutput) +} + +// AccountSettingDefaultArrayInput is an input type that accepts AccountSettingDefaultArray and AccountSettingDefaultArrayOutput values. +// You can construct a concrete instance of `AccountSettingDefaultArrayInput` via: +// +// AccountSettingDefaultArray{ AccountSettingDefaultArgs{...} } +type AccountSettingDefaultArrayInput interface { + pulumi.Input + + ToAccountSettingDefaultArrayOutput() AccountSettingDefaultArrayOutput + ToAccountSettingDefaultArrayOutputWithContext(context.Context) AccountSettingDefaultArrayOutput +} + +type AccountSettingDefaultArray []AccountSettingDefaultInput + +func (AccountSettingDefaultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountSettingDefault)(nil)).Elem() +} + +func (i AccountSettingDefaultArray) ToAccountSettingDefaultArrayOutput() AccountSettingDefaultArrayOutput { + return i.ToAccountSettingDefaultArrayOutputWithContext(context.Background()) +} + +func (i AccountSettingDefaultArray) ToAccountSettingDefaultArrayOutputWithContext(ctx context.Context) AccountSettingDefaultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountSettingDefaultArrayOutput) +} + +// AccountSettingDefaultMapInput is an input type that accepts AccountSettingDefaultMap and AccountSettingDefaultMapOutput values. +// You can construct a concrete instance of `AccountSettingDefaultMapInput` via: +// +// AccountSettingDefaultMap{ "key": AccountSettingDefaultArgs{...} } +type AccountSettingDefaultMapInput interface { + pulumi.Input + + ToAccountSettingDefaultMapOutput() AccountSettingDefaultMapOutput + ToAccountSettingDefaultMapOutputWithContext(context.Context) AccountSettingDefaultMapOutput +} + +type AccountSettingDefaultMap map[string]AccountSettingDefaultInput + +func (AccountSettingDefaultMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountSettingDefault)(nil)).Elem() +} + +func (i AccountSettingDefaultMap) ToAccountSettingDefaultMapOutput() AccountSettingDefaultMapOutput { + return i.ToAccountSettingDefaultMapOutputWithContext(context.Background()) +} + +func (i AccountSettingDefaultMap) ToAccountSettingDefaultMapOutputWithContext(ctx context.Context) AccountSettingDefaultMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountSettingDefaultMapOutput) +} + +type AccountSettingDefaultOutput struct{ *pulumi.OutputState } + +func (AccountSettingDefaultOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountSettingDefault)(nil)).Elem() +} + +func (o AccountSettingDefaultOutput) ToAccountSettingDefaultOutput() AccountSettingDefaultOutput { + return o +} + +func (o AccountSettingDefaultOutput) ToAccountSettingDefaultOutputWithContext(ctx context.Context) AccountSettingDefaultOutput { + return o +} + +// Name of the account setting to set. Valid values are `serviceLongArnFormat`, `taskLongArnFormat`, `containerInstanceLongArnFormat`, `awsvpcTrunking` and `containerInsights`. +func (o AccountSettingDefaultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AccountSettingDefault) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o AccountSettingDefaultOutput) PrincipalArn() pulumi.StringOutput { + return o.ApplyT(func(v *AccountSettingDefault) pulumi.StringOutput { return v.PrincipalArn }).(pulumi.StringOutput) +} + +// State of the setting. Valid values are `enabled` and `disabled`. +func (o AccountSettingDefaultOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v *AccountSettingDefault) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput) +} + +type AccountSettingDefaultArrayOutput struct{ *pulumi.OutputState } + +func (AccountSettingDefaultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountSettingDefault)(nil)).Elem() +} + +func (o AccountSettingDefaultArrayOutput) ToAccountSettingDefaultArrayOutput() AccountSettingDefaultArrayOutput { + return o +} + +func (o AccountSettingDefaultArrayOutput) ToAccountSettingDefaultArrayOutputWithContext(ctx context.Context) AccountSettingDefaultArrayOutput { + return o +} + +func (o AccountSettingDefaultArrayOutput) Index(i pulumi.IntInput) AccountSettingDefaultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountSettingDefault { + return vs[0].([]*AccountSettingDefault)[vs[1].(int)] + }).(AccountSettingDefaultOutput) +} + +type AccountSettingDefaultMapOutput struct{ *pulumi.OutputState } + +func (AccountSettingDefaultMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountSettingDefault)(nil)).Elem() +} + +func (o AccountSettingDefaultMapOutput) ToAccountSettingDefaultMapOutput() AccountSettingDefaultMapOutput { + return o +} + +func (o AccountSettingDefaultMapOutput) ToAccountSettingDefaultMapOutputWithContext(ctx context.Context) AccountSettingDefaultMapOutput { + return o +} + +func (o AccountSettingDefaultMapOutput) MapIndex(k pulumi.StringInput) AccountSettingDefaultOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountSettingDefault { + return vs[0].(map[string]*AccountSettingDefault)[vs[1].(string)] + }).(AccountSettingDefaultOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountSettingDefaultInput)(nil)).Elem(), &AccountSettingDefault{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountSettingDefaultArrayInput)(nil)).Elem(), AccountSettingDefaultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountSettingDefaultMapInput)(nil)).Elem(), AccountSettingDefaultMap{}) + pulumi.RegisterOutputType(AccountSettingDefaultOutput{}) + pulumi.RegisterOutputType(AccountSettingDefaultArrayOutput{}) + pulumi.RegisterOutputType(AccountSettingDefaultMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/capacityProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/capacityProvider.go new file mode 100644 index 000000000..a6cf3fc43 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/capacityProvider.go @@ -0,0 +1,345 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an ECS cluster capacity provider. More information can be found on the [ECS Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html). +// +// > **NOTE:** Associating an ECS Capacity Provider to an Auto Scaling Group will automatically add the `AmazonECSManaged` tag to the Auto Scaling Group. This tag should be included in the `autoscaling.Group` resource configuration to prevent the provider from removing it in subsequent executions as well as ensuring the `AmazonECSManaged` tag is propagated to all EC2 Instances in the Auto Scaling Group if `minSize` is above 0 on creation. Any EC2 Instances in the Auto Scaling Group without this tag must be manually be updated, otherwise they may cause unexpected scaling behavior and metrics. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testGroup, err := autoscaling.NewGroup(ctx, "testGroup", &autoscaling.GroupArgs{ +// Tags: autoscaling.GroupTagArray{ +// &autoscaling.GroupTagArgs{ +// Key: pulumi.String("AmazonECSManaged"), +// Value: pulumi.String("true"), +// PropagateAtLaunch: pulumi.Bool(true), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = ecs.NewCapacityProvider(ctx, "testCapacityProvider", &ecs.CapacityProviderArgs{ +// AutoScalingGroupProvider: &ecs.CapacityProviderAutoScalingGroupProviderArgs{ +// AutoScalingGroupArn: testGroup.Arn, +// ManagedTerminationProtection: pulumi.String("ENABLED"), +// ManagedScaling: &ecs.CapacityProviderAutoScalingGroupProviderManagedScalingArgs{ +// MaximumScalingStepSize: pulumi.Int(1000), +// MinimumScalingStepSize: pulumi.Int(1), +// Status: pulumi.String("ENABLED"), +// TargetCapacity: pulumi.Int(10), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS Capacity Providers using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:ecs/capacityProvider:CapacityProvider example example +// +// ``` +type CapacityProvider struct { + pulumi.CustomResourceState + + // ARN that identifies the capacity provider. + Arn pulumi.StringOutput `pulumi:"arn"` + // Configuration block for the provider for the ECS auto scaling group. Detailed below. + AutoScalingGroupProvider CapacityProviderAutoScalingGroupProviderOutput `pulumi:"autoScalingGroupProvider"` + // Name of the capacity provider. + Name pulumi.StringOutput `pulumi:"name"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewCapacityProvider registers a new resource with the given unique name, arguments, and options. +func NewCapacityProvider(ctx *pulumi.Context, + name string, args *CapacityProviderArgs, opts ...pulumi.ResourceOption) (*CapacityProvider, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AutoScalingGroupProvider == nil { + return nil, errors.New("invalid value for required argument 'AutoScalingGroupProvider'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource CapacityProvider + err := ctx.RegisterResource("aws:ecs/capacityProvider:CapacityProvider", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCapacityProvider gets an existing CapacityProvider resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCapacityProvider(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CapacityProviderState, opts ...pulumi.ResourceOption) (*CapacityProvider, error) { + var resource CapacityProvider + err := ctx.ReadResource("aws:ecs/capacityProvider:CapacityProvider", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CapacityProvider resources. +type capacityProviderState struct { + // ARN that identifies the capacity provider. + Arn *string `pulumi:"arn"` + // Configuration block for the provider for the ECS auto scaling group. Detailed below. + AutoScalingGroupProvider *CapacityProviderAutoScalingGroupProvider `pulumi:"autoScalingGroupProvider"` + // Name of the capacity provider. + Name *string `pulumi:"name"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type CapacityProviderState struct { + // ARN that identifies the capacity provider. + Arn pulumi.StringPtrInput + // Configuration block for the provider for the ECS auto scaling group. Detailed below. + AutoScalingGroupProvider CapacityProviderAutoScalingGroupProviderPtrInput + // Name of the capacity provider. + Name pulumi.StringPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (CapacityProviderState) ElementType() reflect.Type { + return reflect.TypeOf((*capacityProviderState)(nil)).Elem() +} + +type capacityProviderArgs struct { + // Configuration block for the provider for the ECS auto scaling group. Detailed below. + AutoScalingGroupProvider CapacityProviderAutoScalingGroupProvider `pulumi:"autoScalingGroupProvider"` + // Name of the capacity provider. + Name *string `pulumi:"name"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a CapacityProvider resource. +type CapacityProviderArgs struct { + // Configuration block for the provider for the ECS auto scaling group. Detailed below. + AutoScalingGroupProvider CapacityProviderAutoScalingGroupProviderInput + // Name of the capacity provider. + Name pulumi.StringPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (CapacityProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*capacityProviderArgs)(nil)).Elem() +} + +type CapacityProviderInput interface { + pulumi.Input + + ToCapacityProviderOutput() CapacityProviderOutput + ToCapacityProviderOutputWithContext(ctx context.Context) CapacityProviderOutput +} + +func (*CapacityProvider) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityProvider)(nil)).Elem() +} + +func (i *CapacityProvider) ToCapacityProviderOutput() CapacityProviderOutput { + return i.ToCapacityProviderOutputWithContext(context.Background()) +} + +func (i *CapacityProvider) ToCapacityProviderOutputWithContext(ctx context.Context) CapacityProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderOutput) +} + +// CapacityProviderArrayInput is an input type that accepts CapacityProviderArray and CapacityProviderArrayOutput values. +// You can construct a concrete instance of `CapacityProviderArrayInput` via: +// +// CapacityProviderArray{ CapacityProviderArgs{...} } +type CapacityProviderArrayInput interface { + pulumi.Input + + ToCapacityProviderArrayOutput() CapacityProviderArrayOutput + ToCapacityProviderArrayOutputWithContext(context.Context) CapacityProviderArrayOutput +} + +type CapacityProviderArray []CapacityProviderInput + +func (CapacityProviderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CapacityProvider)(nil)).Elem() +} + +func (i CapacityProviderArray) ToCapacityProviderArrayOutput() CapacityProviderArrayOutput { + return i.ToCapacityProviderArrayOutputWithContext(context.Background()) +} + +func (i CapacityProviderArray) ToCapacityProviderArrayOutputWithContext(ctx context.Context) CapacityProviderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderArrayOutput) +} + +// CapacityProviderMapInput is an input type that accepts CapacityProviderMap and CapacityProviderMapOutput values. +// You can construct a concrete instance of `CapacityProviderMapInput` via: +// +// CapacityProviderMap{ "key": CapacityProviderArgs{...} } +type CapacityProviderMapInput interface { + pulumi.Input + + ToCapacityProviderMapOutput() CapacityProviderMapOutput + ToCapacityProviderMapOutputWithContext(context.Context) CapacityProviderMapOutput +} + +type CapacityProviderMap map[string]CapacityProviderInput + +func (CapacityProviderMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CapacityProvider)(nil)).Elem() +} + +func (i CapacityProviderMap) ToCapacityProviderMapOutput() CapacityProviderMapOutput { + return i.ToCapacityProviderMapOutputWithContext(context.Background()) +} + +func (i CapacityProviderMap) ToCapacityProviderMapOutputWithContext(ctx context.Context) CapacityProviderMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderMapOutput) +} + +type CapacityProviderOutput struct{ *pulumi.OutputState } + +func (CapacityProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityProvider)(nil)).Elem() +} + +func (o CapacityProviderOutput) ToCapacityProviderOutput() CapacityProviderOutput { + return o +} + +func (o CapacityProviderOutput) ToCapacityProviderOutputWithContext(ctx context.Context) CapacityProviderOutput { + return o +} + +// ARN that identifies the capacity provider. +func (o CapacityProviderOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *CapacityProvider) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Configuration block for the provider for the ECS auto scaling group. Detailed below. +func (o CapacityProviderOutput) AutoScalingGroupProvider() CapacityProviderAutoScalingGroupProviderOutput { + return o.ApplyT(func(v *CapacityProvider) CapacityProviderAutoScalingGroupProviderOutput { + return v.AutoScalingGroupProvider + }).(CapacityProviderAutoScalingGroupProviderOutput) +} + +// Name of the capacity provider. +func (o CapacityProviderOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *CapacityProvider) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o CapacityProviderOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *CapacityProvider) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o CapacityProviderOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *CapacityProvider) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type CapacityProviderArrayOutput struct{ *pulumi.OutputState } + +func (CapacityProviderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CapacityProvider)(nil)).Elem() +} + +func (o CapacityProviderArrayOutput) ToCapacityProviderArrayOutput() CapacityProviderArrayOutput { + return o +} + +func (o CapacityProviderArrayOutput) ToCapacityProviderArrayOutputWithContext(ctx context.Context) CapacityProviderArrayOutput { + return o +} + +func (o CapacityProviderArrayOutput) Index(i pulumi.IntInput) CapacityProviderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CapacityProvider { + return vs[0].([]*CapacityProvider)[vs[1].(int)] + }).(CapacityProviderOutput) +} + +type CapacityProviderMapOutput struct{ *pulumi.OutputState } + +func (CapacityProviderMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CapacityProvider)(nil)).Elem() +} + +func (o CapacityProviderMapOutput) ToCapacityProviderMapOutput() CapacityProviderMapOutput { + return o +} + +func (o CapacityProviderMapOutput) ToCapacityProviderMapOutputWithContext(ctx context.Context) CapacityProviderMapOutput { + return o +} + +func (o CapacityProviderMapOutput) MapIndex(k pulumi.StringInput) CapacityProviderOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CapacityProvider { + return vs[0].(map[string]*CapacityProvider)[vs[1].(string)] + }).(CapacityProviderOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderInput)(nil)).Elem(), &CapacityProvider{}) + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderArrayInput)(nil)).Elem(), CapacityProviderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderMapInput)(nil)).Elem(), CapacityProviderMap{}) + pulumi.RegisterOutputType(CapacityProviderOutput{}) + pulumi.RegisterOutputType(CapacityProviderArrayOutput{}) + pulumi.RegisterOutputType(CapacityProviderMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/cluster.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/cluster.go new file mode 100644 index 000000000..b97d27454 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/cluster.go @@ -0,0 +1,397 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an ECS cluster. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewCluster(ctx, "foo", &ecs.ClusterArgs{ +// Settings: ecs.ClusterSettingArray{ +// &ecs.ClusterSettingArgs{ +// Name: pulumi.String("containerInsights"), +// Value: pulumi.String("enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example with Log Configuration +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleKey, err := kms.NewKey(ctx, "exampleKey", &kms.KeyArgs{ +// Description: pulumi.String("example"), +// DeletionWindowInDays: pulumi.Int(7), +// }) +// if err != nil { +// return err +// } +// exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "exampleLogGroup", nil) +// if err != nil { +// return err +// } +// _, err = ecs.NewCluster(ctx, "test", &ecs.ClusterArgs{ +// Configuration: &ecs.ClusterConfigurationArgs{ +// ExecuteCommandConfiguration: &ecs.ClusterConfigurationExecuteCommandConfigurationArgs{ +// KmsKeyId: exampleKey.Arn, +// Logging: pulumi.String("OVERRIDE"), +// LogConfiguration: &ecs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{ +// CloudWatchEncryptionEnabled: pulumi.Bool(true), +// CloudWatchLogGroupName: exampleLogGroup.Name, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS clusters using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:ecs/cluster:Cluster stateless stateless-app +// +// ``` +type Cluster struct { + pulumi.CustomResourceState + + // ARN that identifies the cluster. + Arn pulumi.StringOutput `pulumi:"arn"` + // The execute command configuration for the cluster. Detailed below. + Configuration ClusterConfigurationPtrOutput `pulumi:"configuration"` + // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + Name pulumi.StringOutput `pulumi:"name"` + // Configures a default Service Connect namespace. Detailed below. + ServiceConnectDefaults ClusterServiceConnectDefaultsPtrOutput `pulumi:"serviceConnectDefaults"` + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Settings ClusterSettingArrayOutput `pulumi:"settings"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewCluster registers a new resource with the given unique name, arguments, and options. +func NewCluster(ctx *pulumi.Context, + name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error) { + if args == nil { + args = &ClusterArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Cluster + err := ctx.RegisterResource("aws:ecs/cluster:Cluster", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCluster gets an existing Cluster resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCluster(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error) { + var resource Cluster + err := ctx.ReadResource("aws:ecs/cluster:Cluster", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Cluster resources. +type clusterState struct { + // ARN that identifies the cluster. + Arn *string `pulumi:"arn"` + // The execute command configuration for the cluster. Detailed below. + Configuration *ClusterConfiguration `pulumi:"configuration"` + // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + Name *string `pulumi:"name"` + // Configures a default Service Connect namespace. Detailed below. + ServiceConnectDefaults *ClusterServiceConnectDefaults `pulumi:"serviceConnectDefaults"` + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Settings []ClusterSetting `pulumi:"settings"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type ClusterState struct { + // ARN that identifies the cluster. + Arn pulumi.StringPtrInput + // The execute command configuration for the cluster. Detailed below. + Configuration ClusterConfigurationPtrInput + // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + Name pulumi.StringPtrInput + // Configures a default Service Connect namespace. Detailed below. + ServiceConnectDefaults ClusterServiceConnectDefaultsPtrInput + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Settings ClusterSettingArrayInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (ClusterState) ElementType() reflect.Type { + return reflect.TypeOf((*clusterState)(nil)).Elem() +} + +type clusterArgs struct { + // The execute command configuration for the cluster. Detailed below. + Configuration *ClusterConfiguration `pulumi:"configuration"` + // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + Name *string `pulumi:"name"` + // Configures a default Service Connect namespace. Detailed below. + ServiceConnectDefaults *ClusterServiceConnectDefaults `pulumi:"serviceConnectDefaults"` + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Settings []ClusterSetting `pulumi:"settings"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a Cluster resource. +type ClusterArgs struct { + // The execute command configuration for the cluster. Detailed below. + Configuration ClusterConfigurationPtrInput + // Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) + Name pulumi.StringPtrInput + // Configures a default Service Connect namespace. Detailed below. + ServiceConnectDefaults ClusterServiceConnectDefaultsPtrInput + // Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. + Settings ClusterSettingArrayInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (ClusterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*clusterArgs)(nil)).Elem() +} + +type ClusterInput interface { + pulumi.Input + + ToClusterOutput() ClusterOutput + ToClusterOutputWithContext(ctx context.Context) ClusterOutput +} + +func (*Cluster) ElementType() reflect.Type { + return reflect.TypeOf((**Cluster)(nil)).Elem() +} + +func (i *Cluster) ToClusterOutput() ClusterOutput { + return i.ToClusterOutputWithContext(context.Background()) +} + +func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterOutput) +} + +// ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values. +// You can construct a concrete instance of `ClusterArrayInput` via: +// +// ClusterArray{ ClusterArgs{...} } +type ClusterArrayInput interface { + pulumi.Input + + ToClusterArrayOutput() ClusterArrayOutput + ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput +} + +type ClusterArray []ClusterInput + +func (ClusterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Cluster)(nil)).Elem() +} + +func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput { + return i.ToClusterArrayOutputWithContext(context.Background()) +} + +func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterArrayOutput) +} + +// ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values. +// You can construct a concrete instance of `ClusterMapInput` via: +// +// ClusterMap{ "key": ClusterArgs{...} } +type ClusterMapInput interface { + pulumi.Input + + ToClusterMapOutput() ClusterMapOutput + ToClusterMapOutputWithContext(context.Context) ClusterMapOutput +} + +type ClusterMap map[string]ClusterInput + +func (ClusterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem() +} + +func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput { + return i.ToClusterMapOutputWithContext(context.Background()) +} + +func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterMapOutput) +} + +type ClusterOutput struct{ *pulumi.OutputState } + +func (ClusterOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Cluster)(nil)).Elem() +} + +func (o ClusterOutput) ToClusterOutput() ClusterOutput { + return o +} + +func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput { + return o +} + +// ARN that identifies the cluster. +func (o ClusterOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The execute command configuration for the cluster. Detailed below. +func (o ClusterOutput) Configuration() ClusterConfigurationPtrOutput { + return o.ApplyT(func(v *Cluster) ClusterConfigurationPtrOutput { return v.Configuration }).(ClusterConfigurationPtrOutput) +} + +// Name of the cluster (up to 255 letters, numbers, hyphens, and underscores) +func (o ClusterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Configures a default Service Connect namespace. Detailed below. +func (o ClusterOutput) ServiceConnectDefaults() ClusterServiceConnectDefaultsPtrOutput { + return o.ApplyT(func(v *Cluster) ClusterServiceConnectDefaultsPtrOutput { return v.ServiceConnectDefaults }).(ClusterServiceConnectDefaultsPtrOutput) +} + +// Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below. +func (o ClusterOutput) Settings() ClusterSettingArrayOutput { + return o.ApplyT(func(v *Cluster) ClusterSettingArrayOutput { return v.Settings }).(ClusterSettingArrayOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ClusterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ClusterOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type ClusterArrayOutput struct{ *pulumi.OutputState } + +func (ClusterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Cluster)(nil)).Elem() +} + +func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput { + return o +} + +func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput { + return o +} + +func (o ClusterArrayOutput) Index(i pulumi.IntInput) ClusterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cluster { + return vs[0].([]*Cluster)[vs[1].(int)] + }).(ClusterOutput) +} + +type ClusterMapOutput struct{ *pulumi.OutputState } + +func (ClusterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem() +} + +func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput { + return o +} + +func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput { + return o +} + +func (o ClusterMapOutput) MapIndex(k pulumi.StringInput) ClusterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cluster { + return vs[0].(map[string]*Cluster)[vs[1].(string)] + }).(ClusterOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ClusterInput)(nil)).Elem(), &Cluster{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterArrayInput)(nil)).Elem(), ClusterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterMapInput)(nil)).Elem(), ClusterMap{}) + pulumi.RegisterOutputType(ClusterOutput{}) + pulumi.RegisterOutputType(ClusterArrayOutput{}) + pulumi.RegisterOutputType(ClusterMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/clusterCapacityProviders.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/clusterCapacityProviders.go new file mode 100644 index 000000000..a6a4ace86 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/clusterCapacityProviders.go @@ -0,0 +1,303 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages the capacity providers of an ECS Cluster. +// +// More information about capacity providers can be found in the [ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-capacity-providers.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleCluster, err := ecs.NewCluster(ctx, "exampleCluster", nil) +// if err != nil { +// return err +// } +// _, err = ecs.NewClusterCapacityProviders(ctx, "exampleClusterCapacityProviders", &ecs.ClusterCapacityProvidersArgs{ +// ClusterName: exampleCluster.Name, +// CapacityProviders: pulumi.StringArray{ +// pulumi.String("FARGATE"), +// }, +// DefaultCapacityProviderStrategies: ecs.ClusterCapacityProvidersDefaultCapacityProviderStrategyArray{ +// &ecs.ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs{ +// Base: pulumi.Int(1), +// Weight: pulumi.Int(100), +// CapacityProvider: pulumi.String("FARGATE"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS cluster capacity providers using the `cluster_name` attribute. For example: +// +// ```sh +// +// $ pulumi import aws:ecs/clusterCapacityProviders:ClusterCapacityProviders example my-cluster +// +// ``` +type ClusterCapacityProviders struct { + pulumi.CustomResourceState + + // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. + CapacityProviders pulumi.StringArrayOutput `pulumi:"capacityProviders"` + // Name of the ECS cluster to manage capacity providers for. + ClusterName pulumi.StringOutput `pulumi:"clusterName"` + // Set of capacity provider strategies to use by default for the cluster. Detailed below. + DefaultCapacityProviderStrategies ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput `pulumi:"defaultCapacityProviderStrategies"` +} + +// NewClusterCapacityProviders registers a new resource with the given unique name, arguments, and options. +func NewClusterCapacityProviders(ctx *pulumi.Context, + name string, args *ClusterCapacityProvidersArgs, opts ...pulumi.ResourceOption) (*ClusterCapacityProviders, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ClusterName == nil { + return nil, errors.New("invalid value for required argument 'ClusterName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ClusterCapacityProviders + err := ctx.RegisterResource("aws:ecs/clusterCapacityProviders:ClusterCapacityProviders", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetClusterCapacityProviders gets an existing ClusterCapacityProviders resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetClusterCapacityProviders(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ClusterCapacityProvidersState, opts ...pulumi.ResourceOption) (*ClusterCapacityProviders, error) { + var resource ClusterCapacityProviders + err := ctx.ReadResource("aws:ecs/clusterCapacityProviders:ClusterCapacityProviders", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ClusterCapacityProviders resources. +type clusterCapacityProvidersState struct { + // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. + CapacityProviders []string `pulumi:"capacityProviders"` + // Name of the ECS cluster to manage capacity providers for. + ClusterName *string `pulumi:"clusterName"` + // Set of capacity provider strategies to use by default for the cluster. Detailed below. + DefaultCapacityProviderStrategies []ClusterCapacityProvidersDefaultCapacityProviderStrategy `pulumi:"defaultCapacityProviderStrategies"` +} + +type ClusterCapacityProvidersState struct { + // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. + CapacityProviders pulumi.StringArrayInput + // Name of the ECS cluster to manage capacity providers for. + ClusterName pulumi.StringPtrInput + // Set of capacity provider strategies to use by default for the cluster. Detailed below. + DefaultCapacityProviderStrategies ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput +} + +func (ClusterCapacityProvidersState) ElementType() reflect.Type { + return reflect.TypeOf((*clusterCapacityProvidersState)(nil)).Elem() +} + +type clusterCapacityProvidersArgs struct { + // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. + CapacityProviders []string `pulumi:"capacityProviders"` + // Name of the ECS cluster to manage capacity providers for. + ClusterName string `pulumi:"clusterName"` + // Set of capacity provider strategies to use by default for the cluster. Detailed below. + DefaultCapacityProviderStrategies []ClusterCapacityProvidersDefaultCapacityProviderStrategy `pulumi:"defaultCapacityProviderStrategies"` +} + +// The set of arguments for constructing a ClusterCapacityProviders resource. +type ClusterCapacityProvidersArgs struct { + // Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. + CapacityProviders pulumi.StringArrayInput + // Name of the ECS cluster to manage capacity providers for. + ClusterName pulumi.StringInput + // Set of capacity provider strategies to use by default for the cluster. Detailed below. + DefaultCapacityProviderStrategies ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput +} + +func (ClusterCapacityProvidersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*clusterCapacityProvidersArgs)(nil)).Elem() +} + +type ClusterCapacityProvidersInput interface { + pulumi.Input + + ToClusterCapacityProvidersOutput() ClusterCapacityProvidersOutput + ToClusterCapacityProvidersOutputWithContext(ctx context.Context) ClusterCapacityProvidersOutput +} + +func (*ClusterCapacityProviders) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterCapacityProviders)(nil)).Elem() +} + +func (i *ClusterCapacityProviders) ToClusterCapacityProvidersOutput() ClusterCapacityProvidersOutput { + return i.ToClusterCapacityProvidersOutputWithContext(context.Background()) +} + +func (i *ClusterCapacityProviders) ToClusterCapacityProvidersOutputWithContext(ctx context.Context) ClusterCapacityProvidersOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersOutput) +} + +// ClusterCapacityProvidersArrayInput is an input type that accepts ClusterCapacityProvidersArray and ClusterCapacityProvidersArrayOutput values. +// You can construct a concrete instance of `ClusterCapacityProvidersArrayInput` via: +// +// ClusterCapacityProvidersArray{ ClusterCapacityProvidersArgs{...} } +type ClusterCapacityProvidersArrayInput interface { + pulumi.Input + + ToClusterCapacityProvidersArrayOutput() ClusterCapacityProvidersArrayOutput + ToClusterCapacityProvidersArrayOutputWithContext(context.Context) ClusterCapacityProvidersArrayOutput +} + +type ClusterCapacityProvidersArray []ClusterCapacityProvidersInput + +func (ClusterCapacityProvidersArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ClusterCapacityProviders)(nil)).Elem() +} + +func (i ClusterCapacityProvidersArray) ToClusterCapacityProvidersArrayOutput() ClusterCapacityProvidersArrayOutput { + return i.ToClusterCapacityProvidersArrayOutputWithContext(context.Background()) +} + +func (i ClusterCapacityProvidersArray) ToClusterCapacityProvidersArrayOutputWithContext(ctx context.Context) ClusterCapacityProvidersArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersArrayOutput) +} + +// ClusterCapacityProvidersMapInput is an input type that accepts ClusterCapacityProvidersMap and ClusterCapacityProvidersMapOutput values. +// You can construct a concrete instance of `ClusterCapacityProvidersMapInput` via: +// +// ClusterCapacityProvidersMap{ "key": ClusterCapacityProvidersArgs{...} } +type ClusterCapacityProvidersMapInput interface { + pulumi.Input + + ToClusterCapacityProvidersMapOutput() ClusterCapacityProvidersMapOutput + ToClusterCapacityProvidersMapOutputWithContext(context.Context) ClusterCapacityProvidersMapOutput +} + +type ClusterCapacityProvidersMap map[string]ClusterCapacityProvidersInput + +func (ClusterCapacityProvidersMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ClusterCapacityProviders)(nil)).Elem() +} + +func (i ClusterCapacityProvidersMap) ToClusterCapacityProvidersMapOutput() ClusterCapacityProvidersMapOutput { + return i.ToClusterCapacityProvidersMapOutputWithContext(context.Background()) +} + +func (i ClusterCapacityProvidersMap) ToClusterCapacityProvidersMapOutputWithContext(ctx context.Context) ClusterCapacityProvidersMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersMapOutput) +} + +type ClusterCapacityProvidersOutput struct{ *pulumi.OutputState } + +func (ClusterCapacityProvidersOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterCapacityProviders)(nil)).Elem() +} + +func (o ClusterCapacityProvidersOutput) ToClusterCapacityProvidersOutput() ClusterCapacityProvidersOutput { + return o +} + +func (o ClusterCapacityProvidersOutput) ToClusterCapacityProvidersOutputWithContext(ctx context.Context) ClusterCapacityProvidersOutput { + return o +} + +// Set of names of one or more capacity providers to associate with the cluster. Valid values also include `FARGATE` and `FARGATE_SPOT`. +func (o ClusterCapacityProvidersOutput) CapacityProviders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ClusterCapacityProviders) pulumi.StringArrayOutput { return v.CapacityProviders }).(pulumi.StringArrayOutput) +} + +// Name of the ECS cluster to manage capacity providers for. +func (o ClusterCapacityProvidersOutput) ClusterName() pulumi.StringOutput { + return o.ApplyT(func(v *ClusterCapacityProviders) pulumi.StringOutput { return v.ClusterName }).(pulumi.StringOutput) +} + +// Set of capacity provider strategies to use by default for the cluster. Detailed below. +func (o ClusterCapacityProvidersOutput) DefaultCapacityProviderStrategies() ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { + return o.ApplyT(func(v *ClusterCapacityProviders) ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { + return v.DefaultCapacityProviderStrategies + }).(ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) +} + +type ClusterCapacityProvidersArrayOutput struct{ *pulumi.OutputState } + +func (ClusterCapacityProvidersArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ClusterCapacityProviders)(nil)).Elem() +} + +func (o ClusterCapacityProvidersArrayOutput) ToClusterCapacityProvidersArrayOutput() ClusterCapacityProvidersArrayOutput { + return o +} + +func (o ClusterCapacityProvidersArrayOutput) ToClusterCapacityProvidersArrayOutputWithContext(ctx context.Context) ClusterCapacityProvidersArrayOutput { + return o +} + +func (o ClusterCapacityProvidersArrayOutput) Index(i pulumi.IntInput) ClusterCapacityProvidersOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterCapacityProviders { + return vs[0].([]*ClusterCapacityProviders)[vs[1].(int)] + }).(ClusterCapacityProvidersOutput) +} + +type ClusterCapacityProvidersMapOutput struct{ *pulumi.OutputState } + +func (ClusterCapacityProvidersMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ClusterCapacityProviders)(nil)).Elem() +} + +func (o ClusterCapacityProvidersMapOutput) ToClusterCapacityProvidersMapOutput() ClusterCapacityProvidersMapOutput { + return o +} + +func (o ClusterCapacityProvidersMapOutput) ToClusterCapacityProvidersMapOutputWithContext(ctx context.Context) ClusterCapacityProvidersMapOutput { + return o +} + +func (o ClusterCapacityProvidersMapOutput) MapIndex(k pulumi.StringInput) ClusterCapacityProvidersOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterCapacityProviders { + return vs[0].(map[string]*ClusterCapacityProviders)[vs[1].(string)] + }).(ClusterCapacityProvidersOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersInput)(nil)).Elem(), &ClusterCapacityProviders{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersArrayInput)(nil)).Elem(), ClusterCapacityProvidersArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersMapInput)(nil)).Elem(), ClusterCapacityProvidersMap{}) + pulumi.RegisterOutputType(ClusterCapacityProvidersOutput{}) + pulumi.RegisterOutputType(ClusterCapacityProvidersArrayOutput{}) + pulumi.RegisterOutputType(ClusterCapacityProvidersMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getCluster.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getCluster.go new file mode 100644 index 000000000..dfcdc5d48 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getCluster.go @@ -0,0 +1,174 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The ECS Cluster data source allows access to details of a specific +// cluster within an AWS ECS service. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.LookupCluster(ctx, &ecs.LookupClusterArgs{ +// ClusterName: "ecs-mongo-production", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupCluster(ctx *pulumi.Context, args *LookupClusterArgs, opts ...pulumi.InvokeOption) (*LookupClusterResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupClusterResult + err := ctx.Invoke("aws:ecs/getCluster:getCluster", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getCluster. +type LookupClusterArgs struct { + // Name of the ECS Cluster + ClusterName string `pulumi:"clusterName"` + // Key-value map of resource tags + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getCluster. +type LookupClusterResult struct { + // ARN of the ECS Cluster + Arn string `pulumi:"arn"` + ClusterName string `pulumi:"clusterName"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Number of pending tasks for the ECS Cluster + PendingTasksCount int `pulumi:"pendingTasksCount"` + // The number of registered container instances for the ECS Cluster + RegisteredContainerInstancesCount int `pulumi:"registeredContainerInstancesCount"` + // Number of running tasks for the ECS Cluster + RunningTasksCount int `pulumi:"runningTasksCount"` + // The default Service Connect namespace + ServiceConnectDefaults []GetClusterServiceConnectDefault `pulumi:"serviceConnectDefaults"` + // Settings associated with the ECS Cluster + Settings []GetClusterSetting `pulumi:"settings"` + // Status of the ECS Cluster + Status string `pulumi:"status"` + // Key-value map of resource tags + Tags map[string]string `pulumi:"tags"` +} + +func LookupClusterOutput(ctx *pulumi.Context, args LookupClusterOutputArgs, opts ...pulumi.InvokeOption) LookupClusterResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupClusterResult, error) { + args := v.(LookupClusterArgs) + r, err := LookupCluster(ctx, &args, opts...) + var s LookupClusterResult + if r != nil { + s = *r + } + return s, err + }).(LookupClusterResultOutput) +} + +// A collection of arguments for invoking getCluster. +type LookupClusterOutputArgs struct { + // Name of the ECS Cluster + ClusterName pulumi.StringInput `pulumi:"clusterName"` + // Key-value map of resource tags + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LookupClusterOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupClusterArgs)(nil)).Elem() +} + +// A collection of values returned by getCluster. +type LookupClusterResultOutput struct{ *pulumi.OutputState } + +func (LookupClusterResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupClusterResult)(nil)).Elem() +} + +func (o LookupClusterResultOutput) ToLookupClusterResultOutput() LookupClusterResultOutput { + return o +} + +func (o LookupClusterResultOutput) ToLookupClusterResultOutputWithContext(ctx context.Context) LookupClusterResultOutput { + return o +} + +// ARN of the ECS Cluster +func (o LookupClusterResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupClusterResult) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o LookupClusterResultOutput) ClusterName() pulumi.StringOutput { + return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterName }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupClusterResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupClusterResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Number of pending tasks for the ECS Cluster +func (o LookupClusterResultOutput) PendingTasksCount() pulumi.IntOutput { + return o.ApplyT(func(v LookupClusterResult) int { return v.PendingTasksCount }).(pulumi.IntOutput) +} + +// The number of registered container instances for the ECS Cluster +func (o LookupClusterResultOutput) RegisteredContainerInstancesCount() pulumi.IntOutput { + return o.ApplyT(func(v LookupClusterResult) int { return v.RegisteredContainerInstancesCount }).(pulumi.IntOutput) +} + +// Number of running tasks for the ECS Cluster +func (o LookupClusterResultOutput) RunningTasksCount() pulumi.IntOutput { + return o.ApplyT(func(v LookupClusterResult) int { return v.RunningTasksCount }).(pulumi.IntOutput) +} + +// The default Service Connect namespace +func (o LookupClusterResultOutput) ServiceConnectDefaults() GetClusterServiceConnectDefaultArrayOutput { + return o.ApplyT(func(v LookupClusterResult) []GetClusterServiceConnectDefault { return v.ServiceConnectDefaults }).(GetClusterServiceConnectDefaultArrayOutput) +} + +// Settings associated with the ECS Cluster +func (o LookupClusterResultOutput) Settings() GetClusterSettingArrayOutput { + return o.ApplyT(func(v LookupClusterResult) []GetClusterSetting { return v.Settings }).(GetClusterSettingArrayOutput) +} + +// Status of the ECS Cluster +func (o LookupClusterResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v LookupClusterResult) string { return v.Status }).(pulumi.StringOutput) +} + +// Key-value map of resource tags +func (o LookupClusterResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupClusterResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupClusterResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getContainerDefinition.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getContainerDefinition.go new file mode 100644 index 000000000..431dfced5 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getContainerDefinition.go @@ -0,0 +1,180 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The ECS container definition data source allows access to details of +// a specific container within an AWS ECS service. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.GetContainerDefinition(ctx, &ecs.GetContainerDefinitionArgs{ +// TaskDefinition: aws_ecs_task_definition.Mongo.Id, +// ContainerName: "mongodb", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetContainerDefinition(ctx *pulumi.Context, args *GetContainerDefinitionArgs, opts ...pulumi.InvokeOption) (*GetContainerDefinitionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetContainerDefinitionResult + err := ctx.Invoke("aws:ecs/getContainerDefinition:getContainerDefinition", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getContainerDefinition. +type GetContainerDefinitionArgs struct { + // Name of the container definition + ContainerName string `pulumi:"containerName"` + // ARN of the task definition which contains the container + TaskDefinition string `pulumi:"taskDefinition"` +} + +// A collection of values returned by getContainerDefinition. +type GetContainerDefinitionResult struct { + ContainerName string `pulumi:"containerName"` + // CPU limit for this container definition + Cpu int `pulumi:"cpu"` + // Indicator if networking is disabled + DisableNetworking bool `pulumi:"disableNetworking"` + // Set docker labels + DockerLabels map[string]string `pulumi:"dockerLabels"` + // Environment in use + Environment map[string]string `pulumi:"environment"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Docker image in use, including the digest + Image string `pulumi:"image"` + // Digest of the docker image in use + ImageDigest string `pulumi:"imageDigest"` + // Memory limit for this container definition + Memory int `pulumi:"memory"` + // Soft limit (in MiB) of memory to reserve for the container. When system memory is under contention, Docker attempts to keep the container memory to this soft limit + MemoryReservation int `pulumi:"memoryReservation"` + TaskDefinition string `pulumi:"taskDefinition"` +} + +func GetContainerDefinitionOutput(ctx *pulumi.Context, args GetContainerDefinitionOutputArgs, opts ...pulumi.InvokeOption) GetContainerDefinitionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetContainerDefinitionResult, error) { + args := v.(GetContainerDefinitionArgs) + r, err := GetContainerDefinition(ctx, &args, opts...) + var s GetContainerDefinitionResult + if r != nil { + s = *r + } + return s, err + }).(GetContainerDefinitionResultOutput) +} + +// A collection of arguments for invoking getContainerDefinition. +type GetContainerDefinitionOutputArgs struct { + // Name of the container definition + ContainerName pulumi.StringInput `pulumi:"containerName"` + // ARN of the task definition which contains the container + TaskDefinition pulumi.StringInput `pulumi:"taskDefinition"` +} + +func (GetContainerDefinitionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetContainerDefinitionArgs)(nil)).Elem() +} + +// A collection of values returned by getContainerDefinition. +type GetContainerDefinitionResultOutput struct{ *pulumi.OutputState } + +func (GetContainerDefinitionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetContainerDefinitionResult)(nil)).Elem() +} + +func (o GetContainerDefinitionResultOutput) ToGetContainerDefinitionResultOutput() GetContainerDefinitionResultOutput { + return o +} + +func (o GetContainerDefinitionResultOutput) ToGetContainerDefinitionResultOutputWithContext(ctx context.Context) GetContainerDefinitionResultOutput { + return o +} + +func (o GetContainerDefinitionResultOutput) ContainerName() pulumi.StringOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) string { return v.ContainerName }).(pulumi.StringOutput) +} + +// CPU limit for this container definition +func (o GetContainerDefinitionResultOutput) Cpu() pulumi.IntOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) int { return v.Cpu }).(pulumi.IntOutput) +} + +// Indicator if networking is disabled +func (o GetContainerDefinitionResultOutput) DisableNetworking() pulumi.BoolOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) bool { return v.DisableNetworking }).(pulumi.BoolOutput) +} + +// Set docker labels +func (o GetContainerDefinitionResultOutput) DockerLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) map[string]string { return v.DockerLabels }).(pulumi.StringMapOutput) +} + +// Environment in use +func (o GetContainerDefinitionResultOutput) Environment() pulumi.StringMapOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) map[string]string { return v.Environment }).(pulumi.StringMapOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetContainerDefinitionResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Docker image in use, including the digest +func (o GetContainerDefinitionResultOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) string { return v.Image }).(pulumi.StringOutput) +} + +// Digest of the docker image in use +func (o GetContainerDefinitionResultOutput) ImageDigest() pulumi.StringOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) string { return v.ImageDigest }).(pulumi.StringOutput) +} + +// Memory limit for this container definition +func (o GetContainerDefinitionResultOutput) Memory() pulumi.IntOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) int { return v.Memory }).(pulumi.IntOutput) +} + +// Soft limit (in MiB) of memory to reserve for the container. When system memory is under contention, Docker attempts to keep the container memory to this soft limit +func (o GetContainerDefinitionResultOutput) MemoryReservation() pulumi.IntOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) int { return v.MemoryReservation }).(pulumi.IntOutput) +} + +func (o GetContainerDefinitionResultOutput) TaskDefinition() pulumi.StringOutput { + return o.ApplyT(func(v GetContainerDefinitionResult) string { return v.TaskDefinition }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetContainerDefinitionResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getService.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getService.go new file mode 100644 index 000000000..73a8c7fd5 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getService.go @@ -0,0 +1,170 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The ECS Service data source allows access to details of a specific +// Service within a AWS ECS Cluster. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.LookupService(ctx, &ecs.LookupServiceArgs{ +// ServiceName: "example", +// ClusterArn: data.Aws_ecs_cluster.Example.Arn, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupService(ctx *pulumi.Context, args *LookupServiceArgs, opts ...pulumi.InvokeOption) (*LookupServiceResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupServiceResult + err := ctx.Invoke("aws:ecs/getService:getService", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getService. +type LookupServiceArgs struct { + // ARN of the ECS Cluster + ClusterArn string `pulumi:"clusterArn"` + // Name of the ECS Service + ServiceName string `pulumi:"serviceName"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getService. +type LookupServiceResult struct { + // ARN of the ECS Service + Arn string `pulumi:"arn"` + ClusterArn string `pulumi:"clusterArn"` + // Number of tasks for the ECS Service + DesiredCount int `pulumi:"desiredCount"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Launch type for the ECS Service + LaunchType string `pulumi:"launchType"` + // Scheduling strategy for the ECS Service + SchedulingStrategy string `pulumi:"schedulingStrategy"` + ServiceName string `pulumi:"serviceName"` + // Resource tags. + Tags map[string]string `pulumi:"tags"` + // Family for the latest ACTIVE revision or full ARN of the task definition. + TaskDefinition string `pulumi:"taskDefinition"` +} + +func LookupServiceOutput(ctx *pulumi.Context, args LookupServiceOutputArgs, opts ...pulumi.InvokeOption) LookupServiceResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupServiceResult, error) { + args := v.(LookupServiceArgs) + r, err := LookupService(ctx, &args, opts...) + var s LookupServiceResult + if r != nil { + s = *r + } + return s, err + }).(LookupServiceResultOutput) +} + +// A collection of arguments for invoking getService. +type LookupServiceOutputArgs struct { + // ARN of the ECS Cluster + ClusterArn pulumi.StringInput `pulumi:"clusterArn"` + // Name of the ECS Service + ServiceName pulumi.StringInput `pulumi:"serviceName"` + // Resource tags. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LookupServiceOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupServiceArgs)(nil)).Elem() +} + +// A collection of values returned by getService. +type LookupServiceResultOutput struct{ *pulumi.OutputState } + +func (LookupServiceResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupServiceResult)(nil)).Elem() +} + +func (o LookupServiceResultOutput) ToLookupServiceResultOutput() LookupServiceResultOutput { + return o +} + +func (o LookupServiceResultOutput) ToLookupServiceResultOutputWithContext(ctx context.Context) LookupServiceResultOutput { + return o +} + +// ARN of the ECS Service +func (o LookupServiceResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o LookupServiceResultOutput) ClusterArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.ClusterArn }).(pulumi.StringOutput) +} + +// Number of tasks for the ECS Service +func (o LookupServiceResultOutput) DesiredCount() pulumi.IntOutput { + return o.ApplyT(func(v LookupServiceResult) int { return v.DesiredCount }).(pulumi.IntOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupServiceResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Launch type for the ECS Service +func (o LookupServiceResultOutput) LaunchType() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.LaunchType }).(pulumi.StringOutput) +} + +// Scheduling strategy for the ECS Service +func (o LookupServiceResultOutput) SchedulingStrategy() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.SchedulingStrategy }).(pulumi.StringOutput) +} + +func (o LookupServiceResultOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.ServiceName }).(pulumi.StringOutput) +} + +// Resource tags. +func (o LookupServiceResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupServiceResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Family for the latest ACTIVE revision or full ARN of the task definition. +func (o LookupServiceResultOutput) TaskDefinition() pulumi.StringOutput { + return o.ApplyT(func(v LookupServiceResult) string { return v.TaskDefinition }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupServiceResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskDefinition.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskDefinition.go new file mode 100644 index 000000000..74e40e9bf --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskDefinition.go @@ -0,0 +1,205 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The ECS task definition data source allows access to details of +// a specific AWS ECS task definition. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// mongoTaskDefinition, err := ecs.LookupTaskDefinition(ctx, &ecs.LookupTaskDefinitionArgs{ +// TaskDefinition: mongoEcs / taskDefinitionTaskDefinition.Family, +// }, nil) +// if err != nil { +// return err +// } +// foo, err := ecs.NewCluster(ctx, "foo", nil) +// if err != nil { +// return err +// } +// _, err = ecs.NewTaskDefinition(ctx, "mongoEcs/taskDefinitionTaskDefinition", &ecs.TaskDefinitionArgs{ +// Family: pulumi.String("mongodb"), +// ContainerDefinitions: pulumi.String(`[ +// { +// "cpu": 128, +// "environment": [{ +// "name": "SECRET", +// "value": "KEY" +// }], +// "essential": true, +// "image": "mongo:latest", +// "memory": 128, +// "memoryReservation": 64, +// "name": "mongodb" +// } +// +// ] +// `), +// +// }) +// if err != nil { +// return err +// } +// _, err = ecs.NewService(ctx, "mongoService", &ecs.ServiceArgs{ +// Cluster: foo.ID(), +// DesiredCount: pulumi.Int(2), +// TaskDefinition: *pulumi.String(mongoTaskDefinition.Arn), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupTaskDefinition(ctx *pulumi.Context, args *LookupTaskDefinitionArgs, opts ...pulumi.InvokeOption) (*LookupTaskDefinitionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupTaskDefinitionResult + err := ctx.Invoke("aws:ecs/getTaskDefinition:getTaskDefinition", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getTaskDefinition. +type LookupTaskDefinitionArgs struct { + // Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to. + TaskDefinition string `pulumi:"taskDefinition"` +} + +// A collection of values returned by getTaskDefinition. +type LookupTaskDefinitionResult struct { + // ARN of the task definition. + Arn string `pulumi:"arn"` + // ARN of the Task Definition with the trailing `revision` removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the [AWS documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html#ECS-StartTask-request-taskDefinition) for details. + ArnWithoutRevision string `pulumi:"arnWithoutRevision"` + // ARN of the task execution role that the Amazon ECS container agent and the Docker. + ExecutionRoleArn string `pulumi:"executionRoleArn"` + // Family of this task definition. + Family string `pulumi:"family"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Docker networking mode to use for the containers in this task. + NetworkMode string `pulumi:"networkMode"` + // Revision of this task definition. + Revision int `pulumi:"revision"` + // Status of this task definition. + Status string `pulumi:"status"` + TaskDefinition string `pulumi:"taskDefinition"` + // ARN of the IAM role that containers in this task can assume. + TaskRoleArn string `pulumi:"taskRoleArn"` +} + +func LookupTaskDefinitionOutput(ctx *pulumi.Context, args LookupTaskDefinitionOutputArgs, opts ...pulumi.InvokeOption) LookupTaskDefinitionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupTaskDefinitionResult, error) { + args := v.(LookupTaskDefinitionArgs) + r, err := LookupTaskDefinition(ctx, &args, opts...) + var s LookupTaskDefinitionResult + if r != nil { + s = *r + } + return s, err + }).(LookupTaskDefinitionResultOutput) +} + +// A collection of arguments for invoking getTaskDefinition. +type LookupTaskDefinitionOutputArgs struct { + // Family for the latest ACTIVE revision, family and revision (family:revision) for a specific revision in the family, the ARN of the task definition to access to. + TaskDefinition pulumi.StringInput `pulumi:"taskDefinition"` +} + +func (LookupTaskDefinitionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTaskDefinitionArgs)(nil)).Elem() +} + +// A collection of values returned by getTaskDefinition. +type LookupTaskDefinitionResultOutput struct{ *pulumi.OutputState } + +func (LookupTaskDefinitionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTaskDefinitionResult)(nil)).Elem() +} + +func (o LookupTaskDefinitionResultOutput) ToLookupTaskDefinitionResultOutput() LookupTaskDefinitionResultOutput { + return o +} + +func (o LookupTaskDefinitionResultOutput) ToLookupTaskDefinitionResultOutputWithContext(ctx context.Context) LookupTaskDefinitionResultOutput { + return o +} + +// ARN of the task definition. +func (o LookupTaskDefinitionResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// ARN of the Task Definition with the trailing `revision` removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the [AWS documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html#ECS-StartTask-request-taskDefinition) for details. +func (o LookupTaskDefinitionResultOutput) ArnWithoutRevision() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.ArnWithoutRevision }).(pulumi.StringOutput) +} + +// ARN of the task execution role that the Amazon ECS container agent and the Docker. +func (o LookupTaskDefinitionResultOutput) ExecutionRoleArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.ExecutionRoleArn }).(pulumi.StringOutput) +} + +// Family of this task definition. +func (o LookupTaskDefinitionResultOutput) Family() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.Family }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupTaskDefinitionResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Docker networking mode to use for the containers in this task. +func (o LookupTaskDefinitionResultOutput) NetworkMode() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.NetworkMode }).(pulumi.StringOutput) +} + +// Revision of this task definition. +func (o LookupTaskDefinitionResultOutput) Revision() pulumi.IntOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) int { return v.Revision }).(pulumi.IntOutput) +} + +// Status of this task definition. +func (o LookupTaskDefinitionResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.Status }).(pulumi.StringOutput) +} + +func (o LookupTaskDefinitionResultOutput) TaskDefinition() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.TaskDefinition }).(pulumi.StringOutput) +} + +// ARN of the IAM role that containers in this task can assume. +func (o LookupTaskDefinitionResultOutput) TaskRoleArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupTaskDefinitionResult) string { return v.TaskRoleArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupTaskDefinitionResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskExecution.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskExecution.go new file mode 100644 index 000000000..640616922 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/getTaskExecution.go @@ -0,0 +1,248 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Data source for managing an AWS ECS (Elastic Container) Task Execution. This data source calls the [RunTask](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html) API, allowing execution of one-time tasks that don't fit a standard resource lifecycle. See the feature request issue for additional context. +// +// > **NOTE on preview operations:** This data source calls the `RunTask` API on every read operation, which means new task(s) may be created from a `pulumi preview` command if all attributes are known. Placing this functionality behind a data source is an intentional trade off to enable use cases requiring a one-time task execution without relying on provisioners. Caution should be taken to ensure the data source is only executed once, or that the resulting tasks can safely run in parallel. +// +// ## Example Usage +func GetTaskExecution(ctx *pulumi.Context, args *GetTaskExecutionArgs, opts ...pulumi.InvokeOption) (*GetTaskExecutionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetTaskExecutionResult + err := ctx.Invoke("aws:ecs/getTaskExecution:getTaskExecution", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getTaskExecution. +type GetTaskExecutionArgs struct { + // Set of capacity provider strategies to use for the cluster. See below. + CapacityProviderStrategies []GetTaskExecutionCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + // Short name or full Amazon Resource Name (ARN) of the cluster to run the task on. + Cluster string `pulumi:"cluster"` + // Number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks for each call. + DesiredCount *int `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + // Name of the task group to associate with the task. The default value is the family name of the task definition. + Group *string `pulumi:"group"` + // Launch type on which to run your service. Valid values are `EC2`, `FARGATE`, and `EXTERNAL`. + LaunchType *string `pulumi:"launchType"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration *GetTaskExecutionNetworkConfiguration `pulumi:"networkConfiguration"` + // A list of container overrides that specify the name of a container in the specified task definition and the overrides it should receive. + Overrides *GetTaskExecutionOverrides `pulumi:"overrides"` + // An array of placement constraint objects to use for the task. You can specify up to 10 constraints for each task. See below. + PlacementConstraints []GetTaskExecutionPlacementConstraint `pulumi:"placementConstraints"` + // The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules for each task. See below. + PlacementStrategies []GetTaskExecutionPlacementStrategy `pulumi:"placementStrategies"` + // The platform version the task uses. A platform version is only specified for tasks hosted on Fargate. If one isn't specified, the `LATEST` platform version is used. + PlatformVersion *string `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. An error will be received if you specify the `SERVICE` option when running a task. Valid values are `TASK_DEFINITION` or `NONE`. + PropagateTags *string `pulumi:"propagateTags"` + // The reference ID to use for the task. + ReferenceId *string `pulumi:"referenceId"` + // An optional tag specified when a task is started. + StartedBy *string `pulumi:"startedBy"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // The `family` and `revision` (`family:revision`) or full ARN of the task definition to run. If a revision isn't specified, the latest `ACTIVE` revision is used. + // + // The following arguments are optional: + TaskDefinition string `pulumi:"taskDefinition"` +} + +// A collection of values returned by getTaskExecution. +type GetTaskExecutionResult struct { + CapacityProviderStrategies []GetTaskExecutionCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + Cluster string `pulumi:"cluster"` + DesiredCount *int `pulumi:"desiredCount"` + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + Group *string `pulumi:"group"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + LaunchType *string `pulumi:"launchType"` + NetworkConfiguration *GetTaskExecutionNetworkConfiguration `pulumi:"networkConfiguration"` + Overrides *GetTaskExecutionOverrides `pulumi:"overrides"` + PlacementConstraints []GetTaskExecutionPlacementConstraint `pulumi:"placementConstraints"` + PlacementStrategies []GetTaskExecutionPlacementStrategy `pulumi:"placementStrategies"` + PlatformVersion *string `pulumi:"platformVersion"` + PropagateTags *string `pulumi:"propagateTags"` + ReferenceId *string `pulumi:"referenceId"` + StartedBy *string `pulumi:"startedBy"` + Tags map[string]string `pulumi:"tags"` + // A list of the provisioned task ARNs. + TaskArns []string `pulumi:"taskArns"` + TaskDefinition string `pulumi:"taskDefinition"` +} + +func GetTaskExecutionOutput(ctx *pulumi.Context, args GetTaskExecutionOutputArgs, opts ...pulumi.InvokeOption) GetTaskExecutionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetTaskExecutionResult, error) { + args := v.(GetTaskExecutionArgs) + r, err := GetTaskExecution(ctx, &args, opts...) + var s GetTaskExecutionResult + if r != nil { + s = *r + } + return s, err + }).(GetTaskExecutionResultOutput) +} + +// A collection of arguments for invoking getTaskExecution. +type GetTaskExecutionOutputArgs struct { + // Set of capacity provider strategies to use for the cluster. See below. + CapacityProviderStrategies GetTaskExecutionCapacityProviderStrategyArrayInput `pulumi:"capacityProviderStrategies"` + // Short name or full Amazon Resource Name (ARN) of the cluster to run the task on. + Cluster pulumi.StringInput `pulumi:"cluster"` + // Number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks for each call. + DesiredCount pulumi.IntPtrInput `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags pulumi.BoolPtrInput `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand pulumi.BoolPtrInput `pulumi:"enableExecuteCommand"` + // Name of the task group to associate with the task. The default value is the family name of the task definition. + Group pulumi.StringPtrInput `pulumi:"group"` + // Launch type on which to run your service. Valid values are `EC2`, `FARGATE`, and `EXTERNAL`. + LaunchType pulumi.StringPtrInput `pulumi:"launchType"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration GetTaskExecutionNetworkConfigurationPtrInput `pulumi:"networkConfiguration"` + // A list of container overrides that specify the name of a container in the specified task definition and the overrides it should receive. + Overrides GetTaskExecutionOverridesPtrInput `pulumi:"overrides"` + // An array of placement constraint objects to use for the task. You can specify up to 10 constraints for each task. See below. + PlacementConstraints GetTaskExecutionPlacementConstraintArrayInput `pulumi:"placementConstraints"` + // The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules for each task. See below. + PlacementStrategies GetTaskExecutionPlacementStrategyArrayInput `pulumi:"placementStrategies"` + // The platform version the task uses. A platform version is only specified for tasks hosted on Fargate. If one isn't specified, the `LATEST` platform version is used. + PlatformVersion pulumi.StringPtrInput `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. An error will be received if you specify the `SERVICE` option when running a task. Valid values are `TASK_DEFINITION` or `NONE`. + PropagateTags pulumi.StringPtrInput `pulumi:"propagateTags"` + // The reference ID to use for the task. + ReferenceId pulumi.StringPtrInput `pulumi:"referenceId"` + // An optional tag specified when a task is started. + StartedBy pulumi.StringPtrInput `pulumi:"startedBy"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` + // The `family` and `revision` (`family:revision`) or full ARN of the task definition to run. If a revision isn't specified, the latest `ACTIVE` revision is used. + // + // The following arguments are optional: + TaskDefinition pulumi.StringInput `pulumi:"taskDefinition"` +} + +func (GetTaskExecutionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionArgs)(nil)).Elem() +} + +// A collection of values returned by getTaskExecution. +type GetTaskExecutionResultOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionResult)(nil)).Elem() +} + +func (o GetTaskExecutionResultOutput) ToGetTaskExecutionResultOutput() GetTaskExecutionResultOutput { + return o +} + +func (o GetTaskExecutionResultOutput) ToGetTaskExecutionResultOutputWithContext(ctx context.Context) GetTaskExecutionResultOutput { + return o +} + +func (o GetTaskExecutionResultOutput) CapacityProviderStrategies() GetTaskExecutionCapacityProviderStrategyArrayOutput { + return o.ApplyT(func(v GetTaskExecutionResult) []GetTaskExecutionCapacityProviderStrategy { + return v.CapacityProviderStrategies + }).(GetTaskExecutionCapacityProviderStrategyArrayOutput) +} + +func (o GetTaskExecutionResultOutput) Cluster() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionResult) string { return v.Cluster }).(pulumi.StringOutput) +} + +func (o GetTaskExecutionResultOutput) DesiredCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *int { return v.DesiredCount }).(pulumi.IntPtrOutput) +} + +func (o GetTaskExecutionResultOutput) EnableEcsManagedTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *bool { return v.EnableEcsManagedTags }).(pulumi.BoolPtrOutput) +} + +func (o GetTaskExecutionResultOutput) EnableExecuteCommand() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *bool { return v.EnableExecuteCommand }).(pulumi.BoolPtrOutput) +} + +func (o GetTaskExecutionResultOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetTaskExecutionResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetTaskExecutionResultOutput) LaunchType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *string { return v.LaunchType }).(pulumi.StringPtrOutput) +} + +func (o GetTaskExecutionResultOutput) NetworkConfiguration() GetTaskExecutionNetworkConfigurationPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *GetTaskExecutionNetworkConfiguration { return v.NetworkConfiguration }).(GetTaskExecutionNetworkConfigurationPtrOutput) +} + +func (o GetTaskExecutionResultOutput) Overrides() GetTaskExecutionOverridesPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *GetTaskExecutionOverrides { return v.Overrides }).(GetTaskExecutionOverridesPtrOutput) +} + +func (o GetTaskExecutionResultOutput) PlacementConstraints() GetTaskExecutionPlacementConstraintArrayOutput { + return o.ApplyT(func(v GetTaskExecutionResult) []GetTaskExecutionPlacementConstraint { return v.PlacementConstraints }).(GetTaskExecutionPlacementConstraintArrayOutput) +} + +func (o GetTaskExecutionResultOutput) PlacementStrategies() GetTaskExecutionPlacementStrategyArrayOutput { + return o.ApplyT(func(v GetTaskExecutionResult) []GetTaskExecutionPlacementStrategy { return v.PlacementStrategies }).(GetTaskExecutionPlacementStrategyArrayOutput) +} + +func (o GetTaskExecutionResultOutput) PlatformVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *string { return v.PlatformVersion }).(pulumi.StringPtrOutput) +} + +func (o GetTaskExecutionResultOutput) PropagateTags() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *string { return v.PropagateTags }).(pulumi.StringPtrOutput) +} + +func (o GetTaskExecutionResultOutput) ReferenceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *string { return v.ReferenceId }).(pulumi.StringPtrOutput) +} + +func (o GetTaskExecutionResultOutput) StartedBy() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionResult) *string { return v.StartedBy }).(pulumi.StringPtrOutput) +} + +func (o GetTaskExecutionResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v GetTaskExecutionResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// A list of the provisioned task ARNs. +func (o GetTaskExecutionResultOutput) TaskArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetTaskExecutionResult) []string { return v.TaskArns }).(pulumi.StringArrayOutput) +} + +func (o GetTaskExecutionResultOutput) TaskDefinition() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionResult) string { return v.TaskDefinition }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetTaskExecutionResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/init.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/init.go new file mode 100644 index 000000000..23b0c0159 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/init.go @@ -0,0 +1,93 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:ecs/accountSettingDefault:AccountSettingDefault": + r = &AccountSettingDefault{} + case "aws:ecs/capacityProvider:CapacityProvider": + r = &CapacityProvider{} + case "aws:ecs/cluster:Cluster": + r = &Cluster{} + case "aws:ecs/clusterCapacityProviders:ClusterCapacityProviders": + r = &ClusterCapacityProviders{} + case "aws:ecs/service:Service": + r = &Service{} + case "aws:ecs/tag:Tag": + r = &Tag{} + case "aws:ecs/taskDefinition:TaskDefinition": + r = &TaskDefinition{} + case "aws:ecs/taskSet:TaskSet": + r = &TaskSet{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws", + "ecs/accountSettingDefault", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/capacityProvider", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/cluster", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/clusterCapacityProviders", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/service", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/tag", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/taskDefinition", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ecs/taskSet", + &module{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/pulumiTypes.go new file mode 100644 index 000000000..07ba09698 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/pulumiTypes.go @@ -0,0 +1,7466 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type CapacityProviderAutoScalingGroupProvider struct { + // ARN of the associated auto scaling group. + AutoScalingGroupArn string `pulumi:"autoScalingGroupArn"` + // Configuration block defining the parameters of the auto scaling. Detailed below. + ManagedScaling *CapacityProviderAutoScalingGroupProviderManagedScaling `pulumi:"managedScaling"` + // Enables or disables container-aware termination of instances in the auto scaling group when scale-in happens. Valid values are `ENABLED` and `DISABLED`. + ManagedTerminationProtection *string `pulumi:"managedTerminationProtection"` +} + +// CapacityProviderAutoScalingGroupProviderInput is an input type that accepts CapacityProviderAutoScalingGroupProviderArgs and CapacityProviderAutoScalingGroupProviderOutput values. +// You can construct a concrete instance of `CapacityProviderAutoScalingGroupProviderInput` via: +// +// CapacityProviderAutoScalingGroupProviderArgs{...} +type CapacityProviderAutoScalingGroupProviderInput interface { + pulumi.Input + + ToCapacityProviderAutoScalingGroupProviderOutput() CapacityProviderAutoScalingGroupProviderOutput + ToCapacityProviderAutoScalingGroupProviderOutputWithContext(context.Context) CapacityProviderAutoScalingGroupProviderOutput +} + +type CapacityProviderAutoScalingGroupProviderArgs struct { + // ARN of the associated auto scaling group. + AutoScalingGroupArn pulumi.StringInput `pulumi:"autoScalingGroupArn"` + // Configuration block defining the parameters of the auto scaling. Detailed below. + ManagedScaling CapacityProviderAutoScalingGroupProviderManagedScalingPtrInput `pulumi:"managedScaling"` + // Enables or disables container-aware termination of instances in the auto scaling group when scale-in happens. Valid values are `ENABLED` and `DISABLED`. + ManagedTerminationProtection pulumi.StringPtrInput `pulumi:"managedTerminationProtection"` +} + +func (CapacityProviderAutoScalingGroupProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityProviderAutoScalingGroupProvider)(nil)).Elem() +} + +func (i CapacityProviderAutoScalingGroupProviderArgs) ToCapacityProviderAutoScalingGroupProviderOutput() CapacityProviderAutoScalingGroupProviderOutput { + return i.ToCapacityProviderAutoScalingGroupProviderOutputWithContext(context.Background()) +} + +func (i CapacityProviderAutoScalingGroupProviderArgs) ToCapacityProviderAutoScalingGroupProviderOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderAutoScalingGroupProviderOutput) +} + +func (i CapacityProviderAutoScalingGroupProviderArgs) ToCapacityProviderAutoScalingGroupProviderPtrOutput() CapacityProviderAutoScalingGroupProviderPtrOutput { + return i.ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(context.Background()) +} + +func (i CapacityProviderAutoScalingGroupProviderArgs) ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderAutoScalingGroupProviderOutput).ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(ctx) +} + +// CapacityProviderAutoScalingGroupProviderPtrInput is an input type that accepts CapacityProviderAutoScalingGroupProviderArgs, CapacityProviderAutoScalingGroupProviderPtr and CapacityProviderAutoScalingGroupProviderPtrOutput values. +// You can construct a concrete instance of `CapacityProviderAutoScalingGroupProviderPtrInput` via: +// +// CapacityProviderAutoScalingGroupProviderArgs{...} +// +// or: +// +// nil +type CapacityProviderAutoScalingGroupProviderPtrInput interface { + pulumi.Input + + ToCapacityProviderAutoScalingGroupProviderPtrOutput() CapacityProviderAutoScalingGroupProviderPtrOutput + ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(context.Context) CapacityProviderAutoScalingGroupProviderPtrOutput +} + +type capacityProviderAutoScalingGroupProviderPtrType CapacityProviderAutoScalingGroupProviderArgs + +func CapacityProviderAutoScalingGroupProviderPtr(v *CapacityProviderAutoScalingGroupProviderArgs) CapacityProviderAutoScalingGroupProviderPtrInput { + return (*capacityProviderAutoScalingGroupProviderPtrType)(v) +} + +func (*capacityProviderAutoScalingGroupProviderPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityProviderAutoScalingGroupProvider)(nil)).Elem() +} + +func (i *capacityProviderAutoScalingGroupProviderPtrType) ToCapacityProviderAutoScalingGroupProviderPtrOutput() CapacityProviderAutoScalingGroupProviderPtrOutput { + return i.ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(context.Background()) +} + +func (i *capacityProviderAutoScalingGroupProviderPtrType) ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderAutoScalingGroupProviderPtrOutput) +} + +type CapacityProviderAutoScalingGroupProviderOutput struct{ *pulumi.OutputState } + +func (CapacityProviderAutoScalingGroupProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityProviderAutoScalingGroupProvider)(nil)).Elem() +} + +func (o CapacityProviderAutoScalingGroupProviderOutput) ToCapacityProviderAutoScalingGroupProviderOutput() CapacityProviderAutoScalingGroupProviderOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderOutput) ToCapacityProviderAutoScalingGroupProviderOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderOutput) ToCapacityProviderAutoScalingGroupProviderPtrOutput() CapacityProviderAutoScalingGroupProviderPtrOutput { + return o.ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(context.Background()) +} + +func (o CapacityProviderAutoScalingGroupProviderOutput) ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityProviderAutoScalingGroupProvider) *CapacityProviderAutoScalingGroupProvider { + return &v + }).(CapacityProviderAutoScalingGroupProviderPtrOutput) +} + +// ARN of the associated auto scaling group. +func (o CapacityProviderAutoScalingGroupProviderOutput) AutoScalingGroupArn() pulumi.StringOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProvider) string { return v.AutoScalingGroupArn }).(pulumi.StringOutput) +} + +// Configuration block defining the parameters of the auto scaling. Detailed below. +func (o CapacityProviderAutoScalingGroupProviderOutput) ManagedScaling() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProvider) *CapacityProviderAutoScalingGroupProviderManagedScaling { + return v.ManagedScaling + }).(CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) +} + +// Enables or disables container-aware termination of instances in the auto scaling group when scale-in happens. Valid values are `ENABLED` and `DISABLED`. +func (o CapacityProviderAutoScalingGroupProviderOutput) ManagedTerminationProtection() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProvider) *string { return v.ManagedTerminationProtection }).(pulumi.StringPtrOutput) +} + +type CapacityProviderAutoScalingGroupProviderPtrOutput struct{ *pulumi.OutputState } + +func (CapacityProviderAutoScalingGroupProviderPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityProviderAutoScalingGroupProvider)(nil)).Elem() +} + +func (o CapacityProviderAutoScalingGroupProviderPtrOutput) ToCapacityProviderAutoScalingGroupProviderPtrOutput() CapacityProviderAutoScalingGroupProviderPtrOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderPtrOutput) ToCapacityProviderAutoScalingGroupProviderPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderPtrOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderPtrOutput) Elem() CapacityProviderAutoScalingGroupProviderOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProvider) CapacityProviderAutoScalingGroupProvider { + if v != nil { + return *v + } + var ret CapacityProviderAutoScalingGroupProvider + return ret + }).(CapacityProviderAutoScalingGroupProviderOutput) +} + +// ARN of the associated auto scaling group. +func (o CapacityProviderAutoScalingGroupProviderPtrOutput) AutoScalingGroupArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProvider) *string { + if v == nil { + return nil + } + return &v.AutoScalingGroupArn + }).(pulumi.StringPtrOutput) +} + +// Configuration block defining the parameters of the auto scaling. Detailed below. +func (o CapacityProviderAutoScalingGroupProviderPtrOutput) ManagedScaling() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProvider) *CapacityProviderAutoScalingGroupProviderManagedScaling { + if v == nil { + return nil + } + return v.ManagedScaling + }).(CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) +} + +// Enables or disables container-aware termination of instances in the auto scaling group when scale-in happens. Valid values are `ENABLED` and `DISABLED`. +func (o CapacityProviderAutoScalingGroupProviderPtrOutput) ManagedTerminationProtection() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProvider) *string { + if v == nil { + return nil + } + return v.ManagedTerminationProtection + }).(pulumi.StringPtrOutput) +} + +type CapacityProviderAutoScalingGroupProviderManagedScaling struct { + // Period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used. + InstanceWarmupPeriod *int `pulumi:"instanceWarmupPeriod"` + // Maximum step adjustment size. A number between 1 and 10,000. + MaximumScalingStepSize *int `pulumi:"maximumScalingStepSize"` + // Minimum step adjustment size. A number between 1 and 10,000. + MinimumScalingStepSize *int `pulumi:"minimumScalingStepSize"` + // Whether auto scaling is managed by ECS. Valid values are `ENABLED` and `DISABLED`. + Status *string `pulumi:"status"` + // Target utilization for the capacity provider. A number between 1 and 100. + TargetCapacity *int `pulumi:"targetCapacity"` +} + +// CapacityProviderAutoScalingGroupProviderManagedScalingInput is an input type that accepts CapacityProviderAutoScalingGroupProviderManagedScalingArgs and CapacityProviderAutoScalingGroupProviderManagedScalingOutput values. +// You can construct a concrete instance of `CapacityProviderAutoScalingGroupProviderManagedScalingInput` via: +// +// CapacityProviderAutoScalingGroupProviderManagedScalingArgs{...} +type CapacityProviderAutoScalingGroupProviderManagedScalingInput interface { + pulumi.Input + + ToCapacityProviderAutoScalingGroupProviderManagedScalingOutput() CapacityProviderAutoScalingGroupProviderManagedScalingOutput + ToCapacityProviderAutoScalingGroupProviderManagedScalingOutputWithContext(context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingOutput +} + +type CapacityProviderAutoScalingGroupProviderManagedScalingArgs struct { + // Period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used. + InstanceWarmupPeriod pulumi.IntPtrInput `pulumi:"instanceWarmupPeriod"` + // Maximum step adjustment size. A number between 1 and 10,000. + MaximumScalingStepSize pulumi.IntPtrInput `pulumi:"maximumScalingStepSize"` + // Minimum step adjustment size. A number between 1 and 10,000. + MinimumScalingStepSize pulumi.IntPtrInput `pulumi:"minimumScalingStepSize"` + // Whether auto scaling is managed by ECS. Valid values are `ENABLED` and `DISABLED`. + Status pulumi.StringPtrInput `pulumi:"status"` + // Target utilization for the capacity provider. A number between 1 and 100. + TargetCapacity pulumi.IntPtrInput `pulumi:"targetCapacity"` +} + +func (CapacityProviderAutoScalingGroupProviderManagedScalingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityProviderAutoScalingGroupProviderManagedScaling)(nil)).Elem() +} + +func (i CapacityProviderAutoScalingGroupProviderManagedScalingArgs) ToCapacityProviderAutoScalingGroupProviderManagedScalingOutput() CapacityProviderAutoScalingGroupProviderManagedScalingOutput { + return i.ToCapacityProviderAutoScalingGroupProviderManagedScalingOutputWithContext(context.Background()) +} + +func (i CapacityProviderAutoScalingGroupProviderManagedScalingArgs) ToCapacityProviderAutoScalingGroupProviderManagedScalingOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderAutoScalingGroupProviderManagedScalingOutput) +} + +func (i CapacityProviderAutoScalingGroupProviderManagedScalingArgs) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return i.ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(context.Background()) +} + +func (i CapacityProviderAutoScalingGroupProviderManagedScalingArgs) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderAutoScalingGroupProviderManagedScalingOutput).ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(ctx) +} + +// CapacityProviderAutoScalingGroupProviderManagedScalingPtrInput is an input type that accepts CapacityProviderAutoScalingGroupProviderManagedScalingArgs, CapacityProviderAutoScalingGroupProviderManagedScalingPtr and CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput values. +// You can construct a concrete instance of `CapacityProviderAutoScalingGroupProviderManagedScalingPtrInput` via: +// +// CapacityProviderAutoScalingGroupProviderManagedScalingArgs{...} +// +// or: +// +// nil +type CapacityProviderAutoScalingGroupProviderManagedScalingPtrInput interface { + pulumi.Input + + ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput + ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput +} + +type capacityProviderAutoScalingGroupProviderManagedScalingPtrType CapacityProviderAutoScalingGroupProviderManagedScalingArgs + +func CapacityProviderAutoScalingGroupProviderManagedScalingPtr(v *CapacityProviderAutoScalingGroupProviderManagedScalingArgs) CapacityProviderAutoScalingGroupProviderManagedScalingPtrInput { + return (*capacityProviderAutoScalingGroupProviderManagedScalingPtrType)(v) +} + +func (*capacityProviderAutoScalingGroupProviderManagedScalingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityProviderAutoScalingGroupProviderManagedScaling)(nil)).Elem() +} + +func (i *capacityProviderAutoScalingGroupProviderManagedScalingPtrType) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return i.ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(context.Background()) +} + +func (i *capacityProviderAutoScalingGroupProviderManagedScalingPtrType) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) +} + +type CapacityProviderAutoScalingGroupProviderManagedScalingOutput struct{ *pulumi.OutputState } + +func (CapacityProviderAutoScalingGroupProviderManagedScalingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityProviderAutoScalingGroupProviderManagedScaling)(nil)).Elem() +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) ToCapacityProviderAutoScalingGroupProviderManagedScalingOutput() CapacityProviderAutoScalingGroupProviderManagedScalingOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) ToCapacityProviderAutoScalingGroupProviderManagedScalingOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return o.ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(context.Background()) +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityProviderAutoScalingGroupProviderManagedScaling) *CapacityProviderAutoScalingGroupProviderManagedScaling { + return &v + }).(CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) +} + +// Period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) InstanceWarmupPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProviderManagedScaling) *int { return v.InstanceWarmupPeriod }).(pulumi.IntPtrOutput) +} + +// Maximum step adjustment size. A number between 1 and 10,000. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) MaximumScalingStepSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProviderManagedScaling) *int { return v.MaximumScalingStepSize }).(pulumi.IntPtrOutput) +} + +// Minimum step adjustment size. A number between 1 and 10,000. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) MinimumScalingStepSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProviderManagedScaling) *int { return v.MinimumScalingStepSize }).(pulumi.IntPtrOutput) +} + +// Whether auto scaling is managed by ECS. Valid values are `ENABLED` and `DISABLED`. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProviderManagedScaling) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +// Target utilization for the capacity provider. A number between 1 and 100. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingOutput) TargetCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v CapacityProviderAutoScalingGroupProviderManagedScaling) *int { return v.TargetCapacity }).(pulumi.IntPtrOutput) +} + +type CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput struct{ *pulumi.OutputState } + +func (CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityProviderAutoScalingGroupProviderManagedScaling)(nil)).Elem() +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput() CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) ToCapacityProviderAutoScalingGroupProviderManagedScalingPtrOutputWithContext(ctx context.Context) CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput { + return o +} + +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) Elem() CapacityProviderAutoScalingGroupProviderManagedScalingOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProviderManagedScaling) CapacityProviderAutoScalingGroupProviderManagedScaling { + if v != nil { + return *v + } + var ret CapacityProviderAutoScalingGroupProviderManagedScaling + return ret + }).(CapacityProviderAutoScalingGroupProviderManagedScalingOutput) +} + +// Period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) InstanceWarmupPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProviderManagedScaling) *int { + if v == nil { + return nil + } + return v.InstanceWarmupPeriod + }).(pulumi.IntPtrOutput) +} + +// Maximum step adjustment size. A number between 1 and 10,000. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) MaximumScalingStepSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProviderManagedScaling) *int { + if v == nil { + return nil + } + return v.MaximumScalingStepSize + }).(pulumi.IntPtrOutput) +} + +// Minimum step adjustment size. A number between 1 and 10,000. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) MinimumScalingStepSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProviderManagedScaling) *int { + if v == nil { + return nil + } + return v.MinimumScalingStepSize + }).(pulumi.IntPtrOutput) +} + +// Whether auto scaling is managed by ECS. Valid values are `ENABLED` and `DISABLED`. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProviderManagedScaling) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} + +// Target utilization for the capacity provider. A number between 1 and 100. +func (o CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput) TargetCapacity() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CapacityProviderAutoScalingGroupProviderManagedScaling) *int { + if v == nil { + return nil + } + return v.TargetCapacity + }).(pulumi.IntPtrOutput) +} + +type ClusterCapacityProvidersDefaultCapacityProviderStrategy struct { + // The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. + Base *int `pulumi:"base"` + // Name of the capacity provider. + CapacityProvider string `pulumi:"capacityProvider"` + // The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. + Weight *int `pulumi:"weight"` +} + +// ClusterCapacityProvidersDefaultCapacityProviderStrategyInput is an input type that accepts ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs and ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput values. +// You can construct a concrete instance of `ClusterCapacityProvidersDefaultCapacityProviderStrategyInput` via: +// +// ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs{...} +type ClusterCapacityProvidersDefaultCapacityProviderStrategyInput interface { + pulumi.Input + + ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutput() ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput + ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutputWithContext(context.Context) ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput +} + +type ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs struct { + // The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. + Base pulumi.IntPtrInput `pulumi:"base"` + // Name of the capacity provider. + CapacityProvider pulumi.StringInput `pulumi:"capacityProvider"` + // The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +func (ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterCapacityProvidersDefaultCapacityProviderStrategy)(nil)).Elem() +} + +func (i ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs) ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutput() ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput { + return i.ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutputWithContext(context.Background()) +} + +func (i ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs) ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutputWithContext(ctx context.Context) ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) +} + +// ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput is an input type that accepts ClusterCapacityProvidersDefaultCapacityProviderStrategyArray and ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput values. +// You can construct a concrete instance of `ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput` via: +// +// ClusterCapacityProvidersDefaultCapacityProviderStrategyArray{ ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs{...} } +type ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput interface { + pulumi.Input + + ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput() ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput + ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutputWithContext(context.Context) ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput +} + +type ClusterCapacityProvidersDefaultCapacityProviderStrategyArray []ClusterCapacityProvidersDefaultCapacityProviderStrategyInput + +func (ClusterCapacityProvidersDefaultCapacityProviderStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ClusterCapacityProvidersDefaultCapacityProviderStrategy)(nil)).Elem() +} + +func (i ClusterCapacityProvidersDefaultCapacityProviderStrategyArray) ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput() ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { + return i.ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutputWithContext(context.Background()) +} + +func (i ClusterCapacityProvidersDefaultCapacityProviderStrategyArray) ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) +} + +type ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput struct{ *pulumi.OutputState } + +func (ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterCapacityProvidersDefaultCapacityProviderStrategy)(nil)).Elem() +} + +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutput() ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput { + return o +} + +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) ToClusterCapacityProvidersDefaultCapacityProviderStrategyOutputWithContext(ctx context.Context) ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput { + return o +} + +// The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) Base() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterCapacityProvidersDefaultCapacityProviderStrategy) *int { return v.Base }).(pulumi.IntPtrOutput) +} + +// Name of the capacity provider. +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) CapacityProvider() pulumi.StringOutput { + return o.ApplyT(func(v ClusterCapacityProvidersDefaultCapacityProviderStrategy) string { return v.CapacityProvider }).(pulumi.StringOutput) +} + +// The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterCapacityProvidersDefaultCapacityProviderStrategy) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput struct{ *pulumi.OutputState } + +func (ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ClusterCapacityProvidersDefaultCapacityProviderStrategy)(nil)).Elem() +} + +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput() ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { + return o +} + +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) ToClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput { + return o +} + +func (o ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput) Index(i pulumi.IntInput) ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ClusterCapacityProvidersDefaultCapacityProviderStrategy { + return vs[0].([]ClusterCapacityProvidersDefaultCapacityProviderStrategy)[vs[1].(int)] + }).(ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput) +} + +type ClusterConfiguration struct { + // The details of the execute command configuration. Detailed below. + ExecuteCommandConfiguration *ClusterConfigurationExecuteCommandConfiguration `pulumi:"executeCommandConfiguration"` +} + +// ClusterConfigurationInput is an input type that accepts ClusterConfigurationArgs and ClusterConfigurationOutput values. +// You can construct a concrete instance of `ClusterConfigurationInput` via: +// +// ClusterConfigurationArgs{...} +type ClusterConfigurationInput interface { + pulumi.Input + + ToClusterConfigurationOutput() ClusterConfigurationOutput + ToClusterConfigurationOutputWithContext(context.Context) ClusterConfigurationOutput +} + +type ClusterConfigurationArgs struct { + // The details of the execute command configuration. Detailed below. + ExecuteCommandConfiguration ClusterConfigurationExecuteCommandConfigurationPtrInput `pulumi:"executeCommandConfiguration"` +} + +func (ClusterConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfiguration)(nil)).Elem() +} + +func (i ClusterConfigurationArgs) ToClusterConfigurationOutput() ClusterConfigurationOutput { + return i.ToClusterConfigurationOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationArgs) ToClusterConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationOutput) +} + +func (i ClusterConfigurationArgs) ToClusterConfigurationPtrOutput() ClusterConfigurationPtrOutput { + return i.ToClusterConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationArgs) ToClusterConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationOutput).ToClusterConfigurationPtrOutputWithContext(ctx) +} + +// ClusterConfigurationPtrInput is an input type that accepts ClusterConfigurationArgs, ClusterConfigurationPtr and ClusterConfigurationPtrOutput values. +// You can construct a concrete instance of `ClusterConfigurationPtrInput` via: +// +// ClusterConfigurationArgs{...} +// +// or: +// +// nil +type ClusterConfigurationPtrInput interface { + pulumi.Input + + ToClusterConfigurationPtrOutput() ClusterConfigurationPtrOutput + ToClusterConfigurationPtrOutputWithContext(context.Context) ClusterConfigurationPtrOutput +} + +type clusterConfigurationPtrType ClusterConfigurationArgs + +func ClusterConfigurationPtr(v *ClusterConfigurationArgs) ClusterConfigurationPtrInput { + return (*clusterConfigurationPtrType)(v) +} + +func (*clusterConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfiguration)(nil)).Elem() +} + +func (i *clusterConfigurationPtrType) ToClusterConfigurationPtrOutput() ClusterConfigurationPtrOutput { + return i.ToClusterConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *clusterConfigurationPtrType) ToClusterConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationPtrOutput) +} + +type ClusterConfigurationOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationOutput) ToClusterConfigurationOutput() ClusterConfigurationOutput { + return o +} + +func (o ClusterConfigurationOutput) ToClusterConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationOutput { + return o +} + +func (o ClusterConfigurationOutput) ToClusterConfigurationPtrOutput() ClusterConfigurationPtrOutput { + return o.ToClusterConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ClusterConfigurationOutput) ToClusterConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterConfiguration) *ClusterConfiguration { + return &v + }).(ClusterConfigurationPtrOutput) +} + +// The details of the execute command configuration. Detailed below. +func (o ClusterConfigurationOutput) ExecuteCommandConfiguration() ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return o.ApplyT(func(v ClusterConfiguration) *ClusterConfigurationExecuteCommandConfiguration { + return v.ExecuteCommandConfiguration + }).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) +} + +type ClusterConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationPtrOutput) ToClusterConfigurationPtrOutput() ClusterConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationPtrOutput) ToClusterConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationPtrOutput) Elem() ClusterConfigurationOutput { + return o.ApplyT(func(v *ClusterConfiguration) ClusterConfiguration { + if v != nil { + return *v + } + var ret ClusterConfiguration + return ret + }).(ClusterConfigurationOutput) +} + +// The details of the execute command configuration. Detailed below. +func (o ClusterConfigurationPtrOutput) ExecuteCommandConfiguration() ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return o.ApplyT(func(v *ClusterConfiguration) *ClusterConfigurationExecuteCommandConfiguration { + if v == nil { + return nil + } + return v.ExecuteCommandConfiguration + }).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) +} + +type ClusterConfigurationExecuteCommandConfiguration struct { + // The AWS Key Management Service key ID to encrypt the data between the local client and the container. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + LogConfiguration *ClusterConfigurationExecuteCommandConfigurationLogConfiguration `pulumi:"logConfiguration"` + // The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + Logging *string `pulumi:"logging"` +} + +// ClusterConfigurationExecuteCommandConfigurationInput is an input type that accepts ClusterConfigurationExecuteCommandConfigurationArgs and ClusterConfigurationExecuteCommandConfigurationOutput values. +// You can construct a concrete instance of `ClusterConfigurationExecuteCommandConfigurationInput` via: +// +// ClusterConfigurationExecuteCommandConfigurationArgs{...} +type ClusterConfigurationExecuteCommandConfigurationInput interface { + pulumi.Input + + ToClusterConfigurationExecuteCommandConfigurationOutput() ClusterConfigurationExecuteCommandConfigurationOutput + ToClusterConfigurationExecuteCommandConfigurationOutputWithContext(context.Context) ClusterConfigurationExecuteCommandConfigurationOutput +} + +type ClusterConfigurationExecuteCommandConfigurationArgs struct { + // The AWS Key Management Service key ID to encrypt the data between the local client and the container. + KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` + // The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. + LogConfiguration ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput `pulumi:"logConfiguration"` + // The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. + Logging pulumi.StringPtrInput `pulumi:"logging"` +} + +func (ClusterConfigurationExecuteCommandConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfigurationExecuteCommandConfiguration)(nil)).Elem() +} + +func (i ClusterConfigurationExecuteCommandConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationOutput() ClusterConfigurationExecuteCommandConfigurationOutput { + return i.ToClusterConfigurationExecuteCommandConfigurationOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationExecuteCommandConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationExecuteCommandConfigurationOutput) +} + +func (i ClusterConfigurationExecuteCommandConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return i.ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationExecuteCommandConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationExecuteCommandConfigurationOutput).ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(ctx) +} + +// ClusterConfigurationExecuteCommandConfigurationPtrInput is an input type that accepts ClusterConfigurationExecuteCommandConfigurationArgs, ClusterConfigurationExecuteCommandConfigurationPtr and ClusterConfigurationExecuteCommandConfigurationPtrOutput values. +// You can construct a concrete instance of `ClusterConfigurationExecuteCommandConfigurationPtrInput` via: +// +// ClusterConfigurationExecuteCommandConfigurationArgs{...} +// +// or: +// +// nil +type ClusterConfigurationExecuteCommandConfigurationPtrInput interface { + pulumi.Input + + ToClusterConfigurationExecuteCommandConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationPtrOutput + ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(context.Context) ClusterConfigurationExecuteCommandConfigurationPtrOutput +} + +type clusterConfigurationExecuteCommandConfigurationPtrType ClusterConfigurationExecuteCommandConfigurationArgs + +func ClusterConfigurationExecuteCommandConfigurationPtr(v *ClusterConfigurationExecuteCommandConfigurationArgs) ClusterConfigurationExecuteCommandConfigurationPtrInput { + return (*clusterConfigurationExecuteCommandConfigurationPtrType)(v) +} + +func (*clusterConfigurationExecuteCommandConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfigurationExecuteCommandConfiguration)(nil)).Elem() +} + +func (i *clusterConfigurationExecuteCommandConfigurationPtrType) ToClusterConfigurationExecuteCommandConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return i.ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *clusterConfigurationExecuteCommandConfigurationPtrType) ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) +} + +type ClusterConfigurationExecuteCommandConfigurationOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationExecuteCommandConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfigurationExecuteCommandConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationExecuteCommandConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationOutput() ClusterConfigurationExecuteCommandConfigurationOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return o.ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ClusterConfigurationExecuteCommandConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterConfigurationExecuteCommandConfiguration) *ClusterConfigurationExecuteCommandConfiguration { + return &v + }).(ClusterConfigurationExecuteCommandConfigurationPtrOutput) +} + +// The AWS Key Management Service key ID to encrypt the data between the local client and the container. +func (o ClusterConfigurationExecuteCommandConfigurationOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfiguration) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. +func (o ClusterConfigurationExecuteCommandConfigurationOutput) LogConfiguration() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfiguration) *ClusterConfigurationExecuteCommandConfigurationLogConfiguration { + return v.LogConfiguration + }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) +} + +// The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. +func (o ClusterConfigurationExecuteCommandConfigurationOutput) Logging() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfiguration) *string { return v.Logging }).(pulumi.StringPtrOutput) +} + +type ClusterConfigurationExecuteCommandConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationExecuteCommandConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfigurationExecuteCommandConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) ToClusterConfigurationExecuteCommandConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) ToClusterConfigurationExecuteCommandConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) Elem() ClusterConfigurationExecuteCommandConfigurationOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfiguration) ClusterConfigurationExecuteCommandConfiguration { + if v != nil { + return *v + } + var ret ClusterConfigurationExecuteCommandConfiguration + return ret + }).(ClusterConfigurationExecuteCommandConfigurationOutput) +} + +// The AWS Key Management Service key ID to encrypt the data between the local client and the container. +func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfiguration) *string { + if v == nil { + return nil + } + return v.KmsKeyId + }).(pulumi.StringPtrOutput) +} + +// The log configuration for the results of the execute command actions Required when `logging` is `OVERRIDE`. Detailed below. +func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) LogConfiguration() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfiguration) *ClusterConfigurationExecuteCommandConfigurationLogConfiguration { + if v == nil { + return nil + } + return v.LogConfiguration + }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) +} + +// The log setting to use for redirecting logs for your execute command results. Valid values are `NONE`, `DEFAULT`, and `OVERRIDE`. +func (o ClusterConfigurationExecuteCommandConfigurationPtrOutput) Logging() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfiguration) *string { + if v == nil { + return nil + } + return v.Logging + }).(pulumi.StringPtrOutput) +} + +type ClusterConfigurationExecuteCommandConfigurationLogConfiguration struct { + // Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + CloudWatchEncryptionEnabled *bool `pulumi:"cloudWatchEncryptionEnabled"` + // The name of the CloudWatch log group to send logs to. + CloudWatchLogGroupName *string `pulumi:"cloudWatchLogGroupName"` + // Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + S3BucketEncryptionEnabled *bool `pulumi:"s3BucketEncryptionEnabled"` + // The name of the S3 bucket to send logs to. + S3BucketName *string `pulumi:"s3BucketName"` + // An optional folder in the S3 bucket to place logs in. + S3KeyPrefix *string `pulumi:"s3KeyPrefix"` +} + +// ClusterConfigurationExecuteCommandConfigurationLogConfigurationInput is an input type that accepts ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs and ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput values. +// You can construct a concrete instance of `ClusterConfigurationExecuteCommandConfigurationLogConfigurationInput` via: +// +// ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{...} +type ClusterConfigurationExecuteCommandConfigurationLogConfigurationInput interface { + pulumi.Input + + ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput + ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputWithContext(context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput +} + +type ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs struct { + // Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. + CloudWatchEncryptionEnabled pulumi.BoolPtrInput `pulumi:"cloudWatchEncryptionEnabled"` + // The name of the CloudWatch log group to send logs to. + CloudWatchLogGroupName pulumi.StringPtrInput `pulumi:"cloudWatchLogGroupName"` + // Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. + S3BucketEncryptionEnabled pulumi.BoolPtrInput `pulumi:"s3BucketEncryptionEnabled"` + // The name of the S3 bucket to send logs to. + S3BucketName pulumi.StringPtrInput `pulumi:"s3BucketName"` + // An optional folder in the S3 bucket to place logs in. + S3KeyPrefix pulumi.StringPtrInput `pulumi:"s3KeyPrefix"` +} + +func (ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfigurationExecuteCommandConfigurationLogConfiguration)(nil)).Elem() +} + +func (i ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput { + return i.ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) +} + +func (i ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return i.ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput).ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(ctx) +} + +// ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput is an input type that accepts ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs, ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtr and ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput values. +// You can construct a concrete instance of `ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput` via: +// +// ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{...} +// +// or: +// +// nil +type ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput interface { + pulumi.Input + + ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput + ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput +} + +type clusterConfigurationExecuteCommandConfigurationLogConfigurationPtrType ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs + +func ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtr(v *ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs) ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput { + return (*clusterConfigurationExecuteCommandConfigurationLogConfigurationPtrType)(v) +} + +func (*clusterConfigurationExecuteCommandConfigurationLogConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfigurationExecuteCommandConfigurationLogConfiguration)(nil)).Elem() +} + +func (i *clusterConfigurationExecuteCommandConfigurationLogConfigurationPtrType) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return i.ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *clusterConfigurationExecuteCommandConfigurationLogConfigurationPtrType) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) +} + +type ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterConfigurationExecuteCommandConfigurationLogConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return o.ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *ClusterConfigurationExecuteCommandConfigurationLogConfiguration { + return &v + }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) +} + +// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) CloudWatchEncryptionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *bool { + return v.CloudWatchEncryptionEnabled + }).(pulumi.BoolPtrOutput) +} + +// The name of the CloudWatch log group to send logs to. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) CloudWatchLogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *string { + return v.CloudWatchLogGroupName + }).(pulumi.StringPtrOutput) +} + +// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) S3BucketEncryptionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *bool { + return v.S3BucketEncryptionEnabled + }).(pulumi.BoolPtrOutput) +} + +// The name of the S3 bucket to send logs to. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) S3BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *string { return v.S3BucketName }).(pulumi.StringPtrOutput) +} + +// An optional folder in the S3 bucket to place logs in. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) S3KeyPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *string { return v.S3KeyPrefix }).(pulumi.StringPtrOutput) +} + +type ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterConfigurationExecuteCommandConfigurationLogConfiguration)(nil)).Elem() +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput() ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) ToClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput { + return o +} + +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) Elem() ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfigurationLogConfiguration) ClusterConfigurationExecuteCommandConfigurationLogConfiguration { + if v != nil { + return *v + } + var ret ClusterConfigurationExecuteCommandConfigurationLogConfiguration + return ret + }).(ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput) +} + +// Whether or not to enable encryption on the CloudWatch logs. If not specified, encryption will be disabled. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) CloudWatchEncryptionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *bool { + if v == nil { + return nil + } + return v.CloudWatchEncryptionEnabled + }).(pulumi.BoolPtrOutput) +} + +// The name of the CloudWatch log group to send logs to. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) CloudWatchLogGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *string { + if v == nil { + return nil + } + return v.CloudWatchLogGroupName + }).(pulumi.StringPtrOutput) +} + +// Whether or not to enable encryption on the logs sent to S3. If not specified, encryption will be disabled. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) S3BucketEncryptionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *bool { + if v == nil { + return nil + } + return v.S3BucketEncryptionEnabled + }).(pulumi.BoolPtrOutput) +} + +// The name of the S3 bucket to send logs to. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) S3BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *string { + if v == nil { + return nil + } + return v.S3BucketName + }).(pulumi.StringPtrOutput) +} + +// An optional folder in the S3 bucket to place logs in. +func (o ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput) S3KeyPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterConfigurationExecuteCommandConfigurationLogConfiguration) *string { + if v == nil { + return nil + } + return v.S3KeyPrefix + }).(pulumi.StringPtrOutput) +} + +type ClusterServiceConnectDefaults struct { + // The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + Namespace string `pulumi:"namespace"` +} + +// ClusterServiceConnectDefaultsInput is an input type that accepts ClusterServiceConnectDefaultsArgs and ClusterServiceConnectDefaultsOutput values. +// You can construct a concrete instance of `ClusterServiceConnectDefaultsInput` via: +// +// ClusterServiceConnectDefaultsArgs{...} +type ClusterServiceConnectDefaultsInput interface { + pulumi.Input + + ToClusterServiceConnectDefaultsOutput() ClusterServiceConnectDefaultsOutput + ToClusterServiceConnectDefaultsOutputWithContext(context.Context) ClusterServiceConnectDefaultsOutput +} + +type ClusterServiceConnectDefaultsArgs struct { + // The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. + Namespace pulumi.StringInput `pulumi:"namespace"` +} + +func (ClusterServiceConnectDefaultsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterServiceConnectDefaults)(nil)).Elem() +} + +func (i ClusterServiceConnectDefaultsArgs) ToClusterServiceConnectDefaultsOutput() ClusterServiceConnectDefaultsOutput { + return i.ToClusterServiceConnectDefaultsOutputWithContext(context.Background()) +} + +func (i ClusterServiceConnectDefaultsArgs) ToClusterServiceConnectDefaultsOutputWithContext(ctx context.Context) ClusterServiceConnectDefaultsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterServiceConnectDefaultsOutput) +} + +func (i ClusterServiceConnectDefaultsArgs) ToClusterServiceConnectDefaultsPtrOutput() ClusterServiceConnectDefaultsPtrOutput { + return i.ToClusterServiceConnectDefaultsPtrOutputWithContext(context.Background()) +} + +func (i ClusterServiceConnectDefaultsArgs) ToClusterServiceConnectDefaultsPtrOutputWithContext(ctx context.Context) ClusterServiceConnectDefaultsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterServiceConnectDefaultsOutput).ToClusterServiceConnectDefaultsPtrOutputWithContext(ctx) +} + +// ClusterServiceConnectDefaultsPtrInput is an input type that accepts ClusterServiceConnectDefaultsArgs, ClusterServiceConnectDefaultsPtr and ClusterServiceConnectDefaultsPtrOutput values. +// You can construct a concrete instance of `ClusterServiceConnectDefaultsPtrInput` via: +// +// ClusterServiceConnectDefaultsArgs{...} +// +// or: +// +// nil +type ClusterServiceConnectDefaultsPtrInput interface { + pulumi.Input + + ToClusterServiceConnectDefaultsPtrOutput() ClusterServiceConnectDefaultsPtrOutput + ToClusterServiceConnectDefaultsPtrOutputWithContext(context.Context) ClusterServiceConnectDefaultsPtrOutput +} + +type clusterServiceConnectDefaultsPtrType ClusterServiceConnectDefaultsArgs + +func ClusterServiceConnectDefaultsPtr(v *ClusterServiceConnectDefaultsArgs) ClusterServiceConnectDefaultsPtrInput { + return (*clusterServiceConnectDefaultsPtrType)(v) +} + +func (*clusterServiceConnectDefaultsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterServiceConnectDefaults)(nil)).Elem() +} + +func (i *clusterServiceConnectDefaultsPtrType) ToClusterServiceConnectDefaultsPtrOutput() ClusterServiceConnectDefaultsPtrOutput { + return i.ToClusterServiceConnectDefaultsPtrOutputWithContext(context.Background()) +} + +func (i *clusterServiceConnectDefaultsPtrType) ToClusterServiceConnectDefaultsPtrOutputWithContext(ctx context.Context) ClusterServiceConnectDefaultsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterServiceConnectDefaultsPtrOutput) +} + +type ClusterServiceConnectDefaultsOutput struct{ *pulumi.OutputState } + +func (ClusterServiceConnectDefaultsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterServiceConnectDefaults)(nil)).Elem() +} + +func (o ClusterServiceConnectDefaultsOutput) ToClusterServiceConnectDefaultsOutput() ClusterServiceConnectDefaultsOutput { + return o +} + +func (o ClusterServiceConnectDefaultsOutput) ToClusterServiceConnectDefaultsOutputWithContext(ctx context.Context) ClusterServiceConnectDefaultsOutput { + return o +} + +func (o ClusterServiceConnectDefaultsOutput) ToClusterServiceConnectDefaultsPtrOutput() ClusterServiceConnectDefaultsPtrOutput { + return o.ToClusterServiceConnectDefaultsPtrOutputWithContext(context.Background()) +} + +func (o ClusterServiceConnectDefaultsOutput) ToClusterServiceConnectDefaultsPtrOutputWithContext(ctx context.Context) ClusterServiceConnectDefaultsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterServiceConnectDefaults) *ClusterServiceConnectDefaults { + return &v + }).(ClusterServiceConnectDefaultsPtrOutput) +} + +// The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. +func (o ClusterServiceConnectDefaultsOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v ClusterServiceConnectDefaults) string { return v.Namespace }).(pulumi.StringOutput) +} + +type ClusterServiceConnectDefaultsPtrOutput struct{ *pulumi.OutputState } + +func (ClusterServiceConnectDefaultsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterServiceConnectDefaults)(nil)).Elem() +} + +func (o ClusterServiceConnectDefaultsPtrOutput) ToClusterServiceConnectDefaultsPtrOutput() ClusterServiceConnectDefaultsPtrOutput { + return o +} + +func (o ClusterServiceConnectDefaultsPtrOutput) ToClusterServiceConnectDefaultsPtrOutputWithContext(ctx context.Context) ClusterServiceConnectDefaultsPtrOutput { + return o +} + +func (o ClusterServiceConnectDefaultsPtrOutput) Elem() ClusterServiceConnectDefaultsOutput { + return o.ApplyT(func(v *ClusterServiceConnectDefaults) ClusterServiceConnectDefaults { + if v != nil { + return *v + } + var ret ClusterServiceConnectDefaults + return ret + }).(ClusterServiceConnectDefaultsOutput) +} + +// The ARN of the `servicediscovery.HttpNamespace` that's used when you create a service and don't specify a Service Connect configuration. +func (o ClusterServiceConnectDefaultsPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterServiceConnectDefaults) *string { + if v == nil { + return nil + } + return &v.Namespace + }).(pulumi.StringPtrOutput) +} + +type ClusterSetting struct { + // Name of the setting to manage. Valid values: `containerInsights`. + Name string `pulumi:"name"` + // The value to assign to the setting. Valid values are `enabled` and `disabled`. + Value string `pulumi:"value"` +} + +// ClusterSettingInput is an input type that accepts ClusterSettingArgs and ClusterSettingOutput values. +// You can construct a concrete instance of `ClusterSettingInput` via: +// +// ClusterSettingArgs{...} +type ClusterSettingInput interface { + pulumi.Input + + ToClusterSettingOutput() ClusterSettingOutput + ToClusterSettingOutputWithContext(context.Context) ClusterSettingOutput +} + +type ClusterSettingArgs struct { + // Name of the setting to manage. Valid values: `containerInsights`. + Name pulumi.StringInput `pulumi:"name"` + // The value to assign to the setting. Valid values are `enabled` and `disabled`. + Value pulumi.StringInput `pulumi:"value"` +} + +func (ClusterSettingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterSetting)(nil)).Elem() +} + +func (i ClusterSettingArgs) ToClusterSettingOutput() ClusterSettingOutput { + return i.ToClusterSettingOutputWithContext(context.Background()) +} + +func (i ClusterSettingArgs) ToClusterSettingOutputWithContext(ctx context.Context) ClusterSettingOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSettingOutput) +} + +// ClusterSettingArrayInput is an input type that accepts ClusterSettingArray and ClusterSettingArrayOutput values. +// You can construct a concrete instance of `ClusterSettingArrayInput` via: +// +// ClusterSettingArray{ ClusterSettingArgs{...} } +type ClusterSettingArrayInput interface { + pulumi.Input + + ToClusterSettingArrayOutput() ClusterSettingArrayOutput + ToClusterSettingArrayOutputWithContext(context.Context) ClusterSettingArrayOutput +} + +type ClusterSettingArray []ClusterSettingInput + +func (ClusterSettingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ClusterSetting)(nil)).Elem() +} + +func (i ClusterSettingArray) ToClusterSettingArrayOutput() ClusterSettingArrayOutput { + return i.ToClusterSettingArrayOutputWithContext(context.Background()) +} + +func (i ClusterSettingArray) ToClusterSettingArrayOutputWithContext(ctx context.Context) ClusterSettingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterSettingArrayOutput) +} + +type ClusterSettingOutput struct{ *pulumi.OutputState } + +func (ClusterSettingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterSetting)(nil)).Elem() +} + +func (o ClusterSettingOutput) ToClusterSettingOutput() ClusterSettingOutput { + return o +} + +func (o ClusterSettingOutput) ToClusterSettingOutputWithContext(ctx context.Context) ClusterSettingOutput { + return o +} + +// Name of the setting to manage. Valid values: `containerInsights`. +func (o ClusterSettingOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ClusterSetting) string { return v.Name }).(pulumi.StringOutput) +} + +// The value to assign to the setting. Valid values are `enabled` and `disabled`. +func (o ClusterSettingOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ClusterSetting) string { return v.Value }).(pulumi.StringOutput) +} + +type ClusterSettingArrayOutput struct{ *pulumi.OutputState } + +func (ClusterSettingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ClusterSetting)(nil)).Elem() +} + +func (o ClusterSettingArrayOutput) ToClusterSettingArrayOutput() ClusterSettingArrayOutput { + return o +} + +func (o ClusterSettingArrayOutput) ToClusterSettingArrayOutputWithContext(ctx context.Context) ClusterSettingArrayOutput { + return o +} + +func (o ClusterSettingArrayOutput) Index(i pulumi.IntInput) ClusterSettingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ClusterSetting { + return vs[0].([]ClusterSetting)[vs[1].(int)] + }).(ClusterSettingOutput) +} + +type ServiceAlarms struct { + // One or more CloudWatch alarm names. + AlarmNames []string `pulumi:"alarmNames"` + // Determines whether to use the CloudWatch alarm option in the service deployment process. + Enable bool `pulumi:"enable"` + // Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. + Rollback bool `pulumi:"rollback"` +} + +// ServiceAlarmsInput is an input type that accepts ServiceAlarmsArgs and ServiceAlarmsOutput values. +// You can construct a concrete instance of `ServiceAlarmsInput` via: +// +// ServiceAlarmsArgs{...} +type ServiceAlarmsInput interface { + pulumi.Input + + ToServiceAlarmsOutput() ServiceAlarmsOutput + ToServiceAlarmsOutputWithContext(context.Context) ServiceAlarmsOutput +} + +type ServiceAlarmsArgs struct { + // One or more CloudWatch alarm names. + AlarmNames pulumi.StringArrayInput `pulumi:"alarmNames"` + // Determines whether to use the CloudWatch alarm option in the service deployment process. + Enable pulumi.BoolInput `pulumi:"enable"` + // Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. + Rollback pulumi.BoolInput `pulumi:"rollback"` +} + +func (ServiceAlarmsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAlarms)(nil)).Elem() +} + +func (i ServiceAlarmsArgs) ToServiceAlarmsOutput() ServiceAlarmsOutput { + return i.ToServiceAlarmsOutputWithContext(context.Background()) +} + +func (i ServiceAlarmsArgs) ToServiceAlarmsOutputWithContext(ctx context.Context) ServiceAlarmsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAlarmsOutput) +} + +func (i ServiceAlarmsArgs) ToServiceAlarmsPtrOutput() ServiceAlarmsPtrOutput { + return i.ToServiceAlarmsPtrOutputWithContext(context.Background()) +} + +func (i ServiceAlarmsArgs) ToServiceAlarmsPtrOutputWithContext(ctx context.Context) ServiceAlarmsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAlarmsOutput).ToServiceAlarmsPtrOutputWithContext(ctx) +} + +// ServiceAlarmsPtrInput is an input type that accepts ServiceAlarmsArgs, ServiceAlarmsPtr and ServiceAlarmsPtrOutput values. +// You can construct a concrete instance of `ServiceAlarmsPtrInput` via: +// +// ServiceAlarmsArgs{...} +// +// or: +// +// nil +type ServiceAlarmsPtrInput interface { + pulumi.Input + + ToServiceAlarmsPtrOutput() ServiceAlarmsPtrOutput + ToServiceAlarmsPtrOutputWithContext(context.Context) ServiceAlarmsPtrOutput +} + +type serviceAlarmsPtrType ServiceAlarmsArgs + +func ServiceAlarmsPtr(v *ServiceAlarmsArgs) ServiceAlarmsPtrInput { + return (*serviceAlarmsPtrType)(v) +} + +func (*serviceAlarmsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceAlarms)(nil)).Elem() +} + +func (i *serviceAlarmsPtrType) ToServiceAlarmsPtrOutput() ServiceAlarmsPtrOutput { + return i.ToServiceAlarmsPtrOutputWithContext(context.Background()) +} + +func (i *serviceAlarmsPtrType) ToServiceAlarmsPtrOutputWithContext(ctx context.Context) ServiceAlarmsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAlarmsPtrOutput) +} + +type ServiceAlarmsOutput struct{ *pulumi.OutputState } + +func (ServiceAlarmsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAlarms)(nil)).Elem() +} + +func (o ServiceAlarmsOutput) ToServiceAlarmsOutput() ServiceAlarmsOutput { + return o +} + +func (o ServiceAlarmsOutput) ToServiceAlarmsOutputWithContext(ctx context.Context) ServiceAlarmsOutput { + return o +} + +func (o ServiceAlarmsOutput) ToServiceAlarmsPtrOutput() ServiceAlarmsPtrOutput { + return o.ToServiceAlarmsPtrOutputWithContext(context.Background()) +} + +func (o ServiceAlarmsOutput) ToServiceAlarmsPtrOutputWithContext(ctx context.Context) ServiceAlarmsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceAlarms) *ServiceAlarms { + return &v + }).(ServiceAlarmsPtrOutput) +} + +// One or more CloudWatch alarm names. +func (o ServiceAlarmsOutput) AlarmNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceAlarms) []string { return v.AlarmNames }).(pulumi.StringArrayOutput) +} + +// Determines whether to use the CloudWatch alarm option in the service deployment process. +func (o ServiceAlarmsOutput) Enable() pulumi.BoolOutput { + return o.ApplyT(func(v ServiceAlarms) bool { return v.Enable }).(pulumi.BoolOutput) +} + +// Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. +func (o ServiceAlarmsOutput) Rollback() pulumi.BoolOutput { + return o.ApplyT(func(v ServiceAlarms) bool { return v.Rollback }).(pulumi.BoolOutput) +} + +type ServiceAlarmsPtrOutput struct{ *pulumi.OutputState } + +func (ServiceAlarmsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceAlarms)(nil)).Elem() +} + +func (o ServiceAlarmsPtrOutput) ToServiceAlarmsPtrOutput() ServiceAlarmsPtrOutput { + return o +} + +func (o ServiceAlarmsPtrOutput) ToServiceAlarmsPtrOutputWithContext(ctx context.Context) ServiceAlarmsPtrOutput { + return o +} + +func (o ServiceAlarmsPtrOutput) Elem() ServiceAlarmsOutput { + return o.ApplyT(func(v *ServiceAlarms) ServiceAlarms { + if v != nil { + return *v + } + var ret ServiceAlarms + return ret + }).(ServiceAlarmsOutput) +} + +// One or more CloudWatch alarm names. +func (o ServiceAlarmsPtrOutput) AlarmNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceAlarms) []string { + if v == nil { + return nil + } + return v.AlarmNames + }).(pulumi.StringArrayOutput) +} + +// Determines whether to use the CloudWatch alarm option in the service deployment process. +func (o ServiceAlarmsPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceAlarms) *bool { + if v == nil { + return nil + } + return &v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Determines whether to configure Amazon ECS to roll back the service if a service deployment fails. If rollback is used, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. +func (o ServiceAlarmsPtrOutput) Rollback() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceAlarms) *bool { + if v == nil { + return nil + } + return &v.Rollback + }).(pulumi.BoolPtrOutput) +} + +type ServiceCapacityProviderStrategy struct { + // Number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. + Base *int `pulumi:"base"` + // Short name of the capacity provider. + CapacityProvider string `pulumi:"capacityProvider"` + // Relative percentage of the total number of launched tasks that should use the specified capacity provider. + Weight *int `pulumi:"weight"` +} + +// ServiceCapacityProviderStrategyInput is an input type that accepts ServiceCapacityProviderStrategyArgs and ServiceCapacityProviderStrategyOutput values. +// You can construct a concrete instance of `ServiceCapacityProviderStrategyInput` via: +// +// ServiceCapacityProviderStrategyArgs{...} +type ServiceCapacityProviderStrategyInput interface { + pulumi.Input + + ToServiceCapacityProviderStrategyOutput() ServiceCapacityProviderStrategyOutput + ToServiceCapacityProviderStrategyOutputWithContext(context.Context) ServiceCapacityProviderStrategyOutput +} + +type ServiceCapacityProviderStrategyArgs struct { + // Number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. + Base pulumi.IntPtrInput `pulumi:"base"` + // Short name of the capacity provider. + CapacityProvider pulumi.StringInput `pulumi:"capacityProvider"` + // Relative percentage of the total number of launched tasks that should use the specified capacity provider. + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +func (ServiceCapacityProviderStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceCapacityProviderStrategy)(nil)).Elem() +} + +func (i ServiceCapacityProviderStrategyArgs) ToServiceCapacityProviderStrategyOutput() ServiceCapacityProviderStrategyOutput { + return i.ToServiceCapacityProviderStrategyOutputWithContext(context.Background()) +} + +func (i ServiceCapacityProviderStrategyArgs) ToServiceCapacityProviderStrategyOutputWithContext(ctx context.Context) ServiceCapacityProviderStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceCapacityProviderStrategyOutput) +} + +// ServiceCapacityProviderStrategyArrayInput is an input type that accepts ServiceCapacityProviderStrategyArray and ServiceCapacityProviderStrategyArrayOutput values. +// You can construct a concrete instance of `ServiceCapacityProviderStrategyArrayInput` via: +// +// ServiceCapacityProviderStrategyArray{ ServiceCapacityProviderStrategyArgs{...} } +type ServiceCapacityProviderStrategyArrayInput interface { + pulumi.Input + + ToServiceCapacityProviderStrategyArrayOutput() ServiceCapacityProviderStrategyArrayOutput + ToServiceCapacityProviderStrategyArrayOutputWithContext(context.Context) ServiceCapacityProviderStrategyArrayOutput +} + +type ServiceCapacityProviderStrategyArray []ServiceCapacityProviderStrategyInput + +func (ServiceCapacityProviderStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceCapacityProviderStrategy)(nil)).Elem() +} + +func (i ServiceCapacityProviderStrategyArray) ToServiceCapacityProviderStrategyArrayOutput() ServiceCapacityProviderStrategyArrayOutput { + return i.ToServiceCapacityProviderStrategyArrayOutputWithContext(context.Background()) +} + +func (i ServiceCapacityProviderStrategyArray) ToServiceCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) ServiceCapacityProviderStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceCapacityProviderStrategyArrayOutput) +} + +type ServiceCapacityProviderStrategyOutput struct{ *pulumi.OutputState } + +func (ServiceCapacityProviderStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceCapacityProviderStrategy)(nil)).Elem() +} + +func (o ServiceCapacityProviderStrategyOutput) ToServiceCapacityProviderStrategyOutput() ServiceCapacityProviderStrategyOutput { + return o +} + +func (o ServiceCapacityProviderStrategyOutput) ToServiceCapacityProviderStrategyOutputWithContext(ctx context.Context) ServiceCapacityProviderStrategyOutput { + return o +} + +// Number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. +func (o ServiceCapacityProviderStrategyOutput) Base() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceCapacityProviderStrategy) *int { return v.Base }).(pulumi.IntPtrOutput) +} + +// Short name of the capacity provider. +func (o ServiceCapacityProviderStrategyOutput) CapacityProvider() pulumi.StringOutput { + return o.ApplyT(func(v ServiceCapacityProviderStrategy) string { return v.CapacityProvider }).(pulumi.StringOutput) +} + +// Relative percentage of the total number of launched tasks that should use the specified capacity provider. +func (o ServiceCapacityProviderStrategyOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceCapacityProviderStrategy) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type ServiceCapacityProviderStrategyArrayOutput struct{ *pulumi.OutputState } + +func (ServiceCapacityProviderStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceCapacityProviderStrategy)(nil)).Elem() +} + +func (o ServiceCapacityProviderStrategyArrayOutput) ToServiceCapacityProviderStrategyArrayOutput() ServiceCapacityProviderStrategyArrayOutput { + return o +} + +func (o ServiceCapacityProviderStrategyArrayOutput) ToServiceCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) ServiceCapacityProviderStrategyArrayOutput { + return o +} + +func (o ServiceCapacityProviderStrategyArrayOutput) Index(i pulumi.IntInput) ServiceCapacityProviderStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceCapacityProviderStrategy { + return vs[0].([]ServiceCapacityProviderStrategy)[vs[1].(int)] + }).(ServiceCapacityProviderStrategyOutput) +} + +type ServiceDeploymentCircuitBreaker struct { + // Whether to enable the deployment circuit breaker logic for the service. + Enable bool `pulumi:"enable"` + // Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. + Rollback bool `pulumi:"rollback"` +} + +// ServiceDeploymentCircuitBreakerInput is an input type that accepts ServiceDeploymentCircuitBreakerArgs and ServiceDeploymentCircuitBreakerOutput values. +// You can construct a concrete instance of `ServiceDeploymentCircuitBreakerInput` via: +// +// ServiceDeploymentCircuitBreakerArgs{...} +type ServiceDeploymentCircuitBreakerInput interface { + pulumi.Input + + ToServiceDeploymentCircuitBreakerOutput() ServiceDeploymentCircuitBreakerOutput + ToServiceDeploymentCircuitBreakerOutputWithContext(context.Context) ServiceDeploymentCircuitBreakerOutput +} + +type ServiceDeploymentCircuitBreakerArgs struct { + // Whether to enable the deployment circuit breaker logic for the service. + Enable pulumi.BoolInput `pulumi:"enable"` + // Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. + Rollback pulumi.BoolInput `pulumi:"rollback"` +} + +func (ServiceDeploymentCircuitBreakerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceDeploymentCircuitBreaker)(nil)).Elem() +} + +func (i ServiceDeploymentCircuitBreakerArgs) ToServiceDeploymentCircuitBreakerOutput() ServiceDeploymentCircuitBreakerOutput { + return i.ToServiceDeploymentCircuitBreakerOutputWithContext(context.Background()) +} + +func (i ServiceDeploymentCircuitBreakerArgs) ToServiceDeploymentCircuitBreakerOutputWithContext(ctx context.Context) ServiceDeploymentCircuitBreakerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceDeploymentCircuitBreakerOutput) +} + +func (i ServiceDeploymentCircuitBreakerArgs) ToServiceDeploymentCircuitBreakerPtrOutput() ServiceDeploymentCircuitBreakerPtrOutput { + return i.ToServiceDeploymentCircuitBreakerPtrOutputWithContext(context.Background()) +} + +func (i ServiceDeploymentCircuitBreakerArgs) ToServiceDeploymentCircuitBreakerPtrOutputWithContext(ctx context.Context) ServiceDeploymentCircuitBreakerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceDeploymentCircuitBreakerOutput).ToServiceDeploymentCircuitBreakerPtrOutputWithContext(ctx) +} + +// ServiceDeploymentCircuitBreakerPtrInput is an input type that accepts ServiceDeploymentCircuitBreakerArgs, ServiceDeploymentCircuitBreakerPtr and ServiceDeploymentCircuitBreakerPtrOutput values. +// You can construct a concrete instance of `ServiceDeploymentCircuitBreakerPtrInput` via: +// +// ServiceDeploymentCircuitBreakerArgs{...} +// +// or: +// +// nil +type ServiceDeploymentCircuitBreakerPtrInput interface { + pulumi.Input + + ToServiceDeploymentCircuitBreakerPtrOutput() ServiceDeploymentCircuitBreakerPtrOutput + ToServiceDeploymentCircuitBreakerPtrOutputWithContext(context.Context) ServiceDeploymentCircuitBreakerPtrOutput +} + +type serviceDeploymentCircuitBreakerPtrType ServiceDeploymentCircuitBreakerArgs + +func ServiceDeploymentCircuitBreakerPtr(v *ServiceDeploymentCircuitBreakerArgs) ServiceDeploymentCircuitBreakerPtrInput { + return (*serviceDeploymentCircuitBreakerPtrType)(v) +} + +func (*serviceDeploymentCircuitBreakerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceDeploymentCircuitBreaker)(nil)).Elem() +} + +func (i *serviceDeploymentCircuitBreakerPtrType) ToServiceDeploymentCircuitBreakerPtrOutput() ServiceDeploymentCircuitBreakerPtrOutput { + return i.ToServiceDeploymentCircuitBreakerPtrOutputWithContext(context.Background()) +} + +func (i *serviceDeploymentCircuitBreakerPtrType) ToServiceDeploymentCircuitBreakerPtrOutputWithContext(ctx context.Context) ServiceDeploymentCircuitBreakerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceDeploymentCircuitBreakerPtrOutput) +} + +type ServiceDeploymentCircuitBreakerOutput struct{ *pulumi.OutputState } + +func (ServiceDeploymentCircuitBreakerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceDeploymentCircuitBreaker)(nil)).Elem() +} + +func (o ServiceDeploymentCircuitBreakerOutput) ToServiceDeploymentCircuitBreakerOutput() ServiceDeploymentCircuitBreakerOutput { + return o +} + +func (o ServiceDeploymentCircuitBreakerOutput) ToServiceDeploymentCircuitBreakerOutputWithContext(ctx context.Context) ServiceDeploymentCircuitBreakerOutput { + return o +} + +func (o ServiceDeploymentCircuitBreakerOutput) ToServiceDeploymentCircuitBreakerPtrOutput() ServiceDeploymentCircuitBreakerPtrOutput { + return o.ToServiceDeploymentCircuitBreakerPtrOutputWithContext(context.Background()) +} + +func (o ServiceDeploymentCircuitBreakerOutput) ToServiceDeploymentCircuitBreakerPtrOutputWithContext(ctx context.Context) ServiceDeploymentCircuitBreakerPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceDeploymentCircuitBreaker) *ServiceDeploymentCircuitBreaker { + return &v + }).(ServiceDeploymentCircuitBreakerPtrOutput) +} + +// Whether to enable the deployment circuit breaker logic for the service. +func (o ServiceDeploymentCircuitBreakerOutput) Enable() pulumi.BoolOutput { + return o.ApplyT(func(v ServiceDeploymentCircuitBreaker) bool { return v.Enable }).(pulumi.BoolOutput) +} + +// Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. +func (o ServiceDeploymentCircuitBreakerOutput) Rollback() pulumi.BoolOutput { + return o.ApplyT(func(v ServiceDeploymentCircuitBreaker) bool { return v.Rollback }).(pulumi.BoolOutput) +} + +type ServiceDeploymentCircuitBreakerPtrOutput struct{ *pulumi.OutputState } + +func (ServiceDeploymentCircuitBreakerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceDeploymentCircuitBreaker)(nil)).Elem() +} + +func (o ServiceDeploymentCircuitBreakerPtrOutput) ToServiceDeploymentCircuitBreakerPtrOutput() ServiceDeploymentCircuitBreakerPtrOutput { + return o +} + +func (o ServiceDeploymentCircuitBreakerPtrOutput) ToServiceDeploymentCircuitBreakerPtrOutputWithContext(ctx context.Context) ServiceDeploymentCircuitBreakerPtrOutput { + return o +} + +func (o ServiceDeploymentCircuitBreakerPtrOutput) Elem() ServiceDeploymentCircuitBreakerOutput { + return o.ApplyT(func(v *ServiceDeploymentCircuitBreaker) ServiceDeploymentCircuitBreaker { + if v != nil { + return *v + } + var ret ServiceDeploymentCircuitBreaker + return ret + }).(ServiceDeploymentCircuitBreakerOutput) +} + +// Whether to enable the deployment circuit breaker logic for the service. +func (o ServiceDeploymentCircuitBreakerPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceDeploymentCircuitBreaker) *bool { + if v == nil { + return nil + } + return &v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Whether to enable Amazon ECS to roll back the service if a service deployment fails. If rollback is enabled, when a service deployment fails, the service is rolled back to the last deployment that completed successfully. +func (o ServiceDeploymentCircuitBreakerPtrOutput) Rollback() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceDeploymentCircuitBreaker) *bool { + if v == nil { + return nil + } + return &v.Rollback + }).(pulumi.BoolPtrOutput) +} + +type ServiceDeploymentController struct { + // Type of deployment controller. Valid values: `CODE_DEPLOY`, `ECS`, `EXTERNAL`. Default: `ECS`. + Type *string `pulumi:"type"` +} + +// ServiceDeploymentControllerInput is an input type that accepts ServiceDeploymentControllerArgs and ServiceDeploymentControllerOutput values. +// You can construct a concrete instance of `ServiceDeploymentControllerInput` via: +// +// ServiceDeploymentControllerArgs{...} +type ServiceDeploymentControllerInput interface { + pulumi.Input + + ToServiceDeploymentControllerOutput() ServiceDeploymentControllerOutput + ToServiceDeploymentControllerOutputWithContext(context.Context) ServiceDeploymentControllerOutput +} + +type ServiceDeploymentControllerArgs struct { + // Type of deployment controller. Valid values: `CODE_DEPLOY`, `ECS`, `EXTERNAL`. Default: `ECS`. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (ServiceDeploymentControllerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceDeploymentController)(nil)).Elem() +} + +func (i ServiceDeploymentControllerArgs) ToServiceDeploymentControllerOutput() ServiceDeploymentControllerOutput { + return i.ToServiceDeploymentControllerOutputWithContext(context.Background()) +} + +func (i ServiceDeploymentControllerArgs) ToServiceDeploymentControllerOutputWithContext(ctx context.Context) ServiceDeploymentControllerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceDeploymentControllerOutput) +} + +func (i ServiceDeploymentControllerArgs) ToServiceDeploymentControllerPtrOutput() ServiceDeploymentControllerPtrOutput { + return i.ToServiceDeploymentControllerPtrOutputWithContext(context.Background()) +} + +func (i ServiceDeploymentControllerArgs) ToServiceDeploymentControllerPtrOutputWithContext(ctx context.Context) ServiceDeploymentControllerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceDeploymentControllerOutput).ToServiceDeploymentControllerPtrOutputWithContext(ctx) +} + +// ServiceDeploymentControllerPtrInput is an input type that accepts ServiceDeploymentControllerArgs, ServiceDeploymentControllerPtr and ServiceDeploymentControllerPtrOutput values. +// You can construct a concrete instance of `ServiceDeploymentControllerPtrInput` via: +// +// ServiceDeploymentControllerArgs{...} +// +// or: +// +// nil +type ServiceDeploymentControllerPtrInput interface { + pulumi.Input + + ToServiceDeploymentControllerPtrOutput() ServiceDeploymentControllerPtrOutput + ToServiceDeploymentControllerPtrOutputWithContext(context.Context) ServiceDeploymentControllerPtrOutput +} + +type serviceDeploymentControllerPtrType ServiceDeploymentControllerArgs + +func ServiceDeploymentControllerPtr(v *ServiceDeploymentControllerArgs) ServiceDeploymentControllerPtrInput { + return (*serviceDeploymentControllerPtrType)(v) +} + +func (*serviceDeploymentControllerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceDeploymentController)(nil)).Elem() +} + +func (i *serviceDeploymentControllerPtrType) ToServiceDeploymentControllerPtrOutput() ServiceDeploymentControllerPtrOutput { + return i.ToServiceDeploymentControllerPtrOutputWithContext(context.Background()) +} + +func (i *serviceDeploymentControllerPtrType) ToServiceDeploymentControllerPtrOutputWithContext(ctx context.Context) ServiceDeploymentControllerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceDeploymentControllerPtrOutput) +} + +type ServiceDeploymentControllerOutput struct{ *pulumi.OutputState } + +func (ServiceDeploymentControllerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceDeploymentController)(nil)).Elem() +} + +func (o ServiceDeploymentControllerOutput) ToServiceDeploymentControllerOutput() ServiceDeploymentControllerOutput { + return o +} + +func (o ServiceDeploymentControllerOutput) ToServiceDeploymentControllerOutputWithContext(ctx context.Context) ServiceDeploymentControllerOutput { + return o +} + +func (o ServiceDeploymentControllerOutput) ToServiceDeploymentControllerPtrOutput() ServiceDeploymentControllerPtrOutput { + return o.ToServiceDeploymentControllerPtrOutputWithContext(context.Background()) +} + +func (o ServiceDeploymentControllerOutput) ToServiceDeploymentControllerPtrOutputWithContext(ctx context.Context) ServiceDeploymentControllerPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceDeploymentController) *ServiceDeploymentController { + return &v + }).(ServiceDeploymentControllerPtrOutput) +} + +// Type of deployment controller. Valid values: `CODE_DEPLOY`, `ECS`, `EXTERNAL`. Default: `ECS`. +func (o ServiceDeploymentControllerOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceDeploymentController) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type ServiceDeploymentControllerPtrOutput struct{ *pulumi.OutputState } + +func (ServiceDeploymentControllerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceDeploymentController)(nil)).Elem() +} + +func (o ServiceDeploymentControllerPtrOutput) ToServiceDeploymentControllerPtrOutput() ServiceDeploymentControllerPtrOutput { + return o +} + +func (o ServiceDeploymentControllerPtrOutput) ToServiceDeploymentControllerPtrOutputWithContext(ctx context.Context) ServiceDeploymentControllerPtrOutput { + return o +} + +func (o ServiceDeploymentControllerPtrOutput) Elem() ServiceDeploymentControllerOutput { + return o.ApplyT(func(v *ServiceDeploymentController) ServiceDeploymentController { + if v != nil { + return *v + } + var ret ServiceDeploymentController + return ret + }).(ServiceDeploymentControllerOutput) +} + +// Type of deployment controller. Valid values: `CODE_DEPLOY`, `ECS`, `EXTERNAL`. Default: `ECS`. +func (o ServiceDeploymentControllerPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceDeploymentController) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +type ServiceLoadBalancer struct { + // Name of the container to associate with the load balancer (as it appears in a container definition). + ContainerName string `pulumi:"containerName"` + // Port on the container to associate with the load balancer. + // + // > **Version note:** Multiple `loadBalancer` configuration block support was added in version 2.22.0 of the provider. This allows configuration of [ECS service support for multiple target groups](https://aws.amazon.com/about-aws/whats-new/2019/07/amazon-ecs-services-now-support-multiple-load-balancer-target-groups/). + ContainerPort int `pulumi:"containerPort"` + // Name of the ELB (Classic) to associate with the service. + ElbName *string `pulumi:"elbName"` + // ARN of the Load Balancer target group to associate with the service. + TargetGroupArn *string `pulumi:"targetGroupArn"` +} + +// ServiceLoadBalancerInput is an input type that accepts ServiceLoadBalancerArgs and ServiceLoadBalancerOutput values. +// You can construct a concrete instance of `ServiceLoadBalancerInput` via: +// +// ServiceLoadBalancerArgs{...} +type ServiceLoadBalancerInput interface { + pulumi.Input + + ToServiceLoadBalancerOutput() ServiceLoadBalancerOutput + ToServiceLoadBalancerOutputWithContext(context.Context) ServiceLoadBalancerOutput +} + +type ServiceLoadBalancerArgs struct { + // Name of the container to associate with the load balancer (as it appears in a container definition). + ContainerName pulumi.StringInput `pulumi:"containerName"` + // Port on the container to associate with the load balancer. + // + // > **Version note:** Multiple `loadBalancer` configuration block support was added in version 2.22.0 of the provider. This allows configuration of [ECS service support for multiple target groups](https://aws.amazon.com/about-aws/whats-new/2019/07/amazon-ecs-services-now-support-multiple-load-balancer-target-groups/). + ContainerPort pulumi.IntInput `pulumi:"containerPort"` + // Name of the ELB (Classic) to associate with the service. + ElbName pulumi.StringPtrInput `pulumi:"elbName"` + // ARN of the Load Balancer target group to associate with the service. + TargetGroupArn pulumi.StringPtrInput `pulumi:"targetGroupArn"` +} + +func (ServiceLoadBalancerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceLoadBalancer)(nil)).Elem() +} + +func (i ServiceLoadBalancerArgs) ToServiceLoadBalancerOutput() ServiceLoadBalancerOutput { + return i.ToServiceLoadBalancerOutputWithContext(context.Background()) +} + +func (i ServiceLoadBalancerArgs) ToServiceLoadBalancerOutputWithContext(ctx context.Context) ServiceLoadBalancerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLoadBalancerOutput) +} + +// ServiceLoadBalancerArrayInput is an input type that accepts ServiceLoadBalancerArray and ServiceLoadBalancerArrayOutput values. +// You can construct a concrete instance of `ServiceLoadBalancerArrayInput` via: +// +// ServiceLoadBalancerArray{ ServiceLoadBalancerArgs{...} } +type ServiceLoadBalancerArrayInput interface { + pulumi.Input + + ToServiceLoadBalancerArrayOutput() ServiceLoadBalancerArrayOutput + ToServiceLoadBalancerArrayOutputWithContext(context.Context) ServiceLoadBalancerArrayOutput +} + +type ServiceLoadBalancerArray []ServiceLoadBalancerInput + +func (ServiceLoadBalancerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceLoadBalancer)(nil)).Elem() +} + +func (i ServiceLoadBalancerArray) ToServiceLoadBalancerArrayOutput() ServiceLoadBalancerArrayOutput { + return i.ToServiceLoadBalancerArrayOutputWithContext(context.Background()) +} + +func (i ServiceLoadBalancerArray) ToServiceLoadBalancerArrayOutputWithContext(ctx context.Context) ServiceLoadBalancerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLoadBalancerArrayOutput) +} + +type ServiceLoadBalancerOutput struct{ *pulumi.OutputState } + +func (ServiceLoadBalancerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceLoadBalancer)(nil)).Elem() +} + +func (o ServiceLoadBalancerOutput) ToServiceLoadBalancerOutput() ServiceLoadBalancerOutput { + return o +} + +func (o ServiceLoadBalancerOutput) ToServiceLoadBalancerOutputWithContext(ctx context.Context) ServiceLoadBalancerOutput { + return o +} + +// Name of the container to associate with the load balancer (as it appears in a container definition). +func (o ServiceLoadBalancerOutput) ContainerName() pulumi.StringOutput { + return o.ApplyT(func(v ServiceLoadBalancer) string { return v.ContainerName }).(pulumi.StringOutput) +} + +// Port on the container to associate with the load balancer. +// +// > **Version note:** Multiple `loadBalancer` configuration block support was added in version 2.22.0 of the provider. This allows configuration of [ECS service support for multiple target groups](https://aws.amazon.com/about-aws/whats-new/2019/07/amazon-ecs-services-now-support-multiple-load-balancer-target-groups/). +func (o ServiceLoadBalancerOutput) ContainerPort() pulumi.IntOutput { + return o.ApplyT(func(v ServiceLoadBalancer) int { return v.ContainerPort }).(pulumi.IntOutput) +} + +// Name of the ELB (Classic) to associate with the service. +func (o ServiceLoadBalancerOutput) ElbName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceLoadBalancer) *string { return v.ElbName }).(pulumi.StringPtrOutput) +} + +// ARN of the Load Balancer target group to associate with the service. +func (o ServiceLoadBalancerOutput) TargetGroupArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceLoadBalancer) *string { return v.TargetGroupArn }).(pulumi.StringPtrOutput) +} + +type ServiceLoadBalancerArrayOutput struct{ *pulumi.OutputState } + +func (ServiceLoadBalancerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceLoadBalancer)(nil)).Elem() +} + +func (o ServiceLoadBalancerArrayOutput) ToServiceLoadBalancerArrayOutput() ServiceLoadBalancerArrayOutput { + return o +} + +func (o ServiceLoadBalancerArrayOutput) ToServiceLoadBalancerArrayOutputWithContext(ctx context.Context) ServiceLoadBalancerArrayOutput { + return o +} + +func (o ServiceLoadBalancerArrayOutput) Index(i pulumi.IntInput) ServiceLoadBalancerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceLoadBalancer { + return vs[0].([]ServiceLoadBalancer)[vs[1].(int)] + }).(ServiceLoadBalancerOutput) +} + +type ServiceNetworkConfiguration struct { + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. + // + // For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + AssignPublicIp *bool `pulumi:"assignPublicIp"` + // Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + SecurityGroups []string `pulumi:"securityGroups"` + // Subnets associated with the task or service. + Subnets []string `pulumi:"subnets"` +} + +// ServiceNetworkConfigurationInput is an input type that accepts ServiceNetworkConfigurationArgs and ServiceNetworkConfigurationOutput values. +// You can construct a concrete instance of `ServiceNetworkConfigurationInput` via: +// +// ServiceNetworkConfigurationArgs{...} +type ServiceNetworkConfigurationInput interface { + pulumi.Input + + ToServiceNetworkConfigurationOutput() ServiceNetworkConfigurationOutput + ToServiceNetworkConfigurationOutputWithContext(context.Context) ServiceNetworkConfigurationOutput +} + +type ServiceNetworkConfigurationArgs struct { + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. + // + // For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + AssignPublicIp pulumi.BoolPtrInput `pulumi:"assignPublicIp"` + // Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"` + // Subnets associated with the task or service. + Subnets pulumi.StringArrayInput `pulumi:"subnets"` +} + +func (ServiceNetworkConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceNetworkConfiguration)(nil)).Elem() +} + +func (i ServiceNetworkConfigurationArgs) ToServiceNetworkConfigurationOutput() ServiceNetworkConfigurationOutput { + return i.ToServiceNetworkConfigurationOutputWithContext(context.Background()) +} + +func (i ServiceNetworkConfigurationArgs) ToServiceNetworkConfigurationOutputWithContext(ctx context.Context) ServiceNetworkConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceNetworkConfigurationOutput) +} + +func (i ServiceNetworkConfigurationArgs) ToServiceNetworkConfigurationPtrOutput() ServiceNetworkConfigurationPtrOutput { + return i.ToServiceNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ServiceNetworkConfigurationArgs) ToServiceNetworkConfigurationPtrOutputWithContext(ctx context.Context) ServiceNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceNetworkConfigurationOutput).ToServiceNetworkConfigurationPtrOutputWithContext(ctx) +} + +// ServiceNetworkConfigurationPtrInput is an input type that accepts ServiceNetworkConfigurationArgs, ServiceNetworkConfigurationPtr and ServiceNetworkConfigurationPtrOutput values. +// You can construct a concrete instance of `ServiceNetworkConfigurationPtrInput` via: +// +// ServiceNetworkConfigurationArgs{...} +// +// or: +// +// nil +type ServiceNetworkConfigurationPtrInput interface { + pulumi.Input + + ToServiceNetworkConfigurationPtrOutput() ServiceNetworkConfigurationPtrOutput + ToServiceNetworkConfigurationPtrOutputWithContext(context.Context) ServiceNetworkConfigurationPtrOutput +} + +type serviceNetworkConfigurationPtrType ServiceNetworkConfigurationArgs + +func ServiceNetworkConfigurationPtr(v *ServiceNetworkConfigurationArgs) ServiceNetworkConfigurationPtrInput { + return (*serviceNetworkConfigurationPtrType)(v) +} + +func (*serviceNetworkConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceNetworkConfiguration)(nil)).Elem() +} + +func (i *serviceNetworkConfigurationPtrType) ToServiceNetworkConfigurationPtrOutput() ServiceNetworkConfigurationPtrOutput { + return i.ToServiceNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *serviceNetworkConfigurationPtrType) ToServiceNetworkConfigurationPtrOutputWithContext(ctx context.Context) ServiceNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceNetworkConfigurationPtrOutput) +} + +type ServiceNetworkConfigurationOutput struct{ *pulumi.OutputState } + +func (ServiceNetworkConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceNetworkConfiguration)(nil)).Elem() +} + +func (o ServiceNetworkConfigurationOutput) ToServiceNetworkConfigurationOutput() ServiceNetworkConfigurationOutput { + return o +} + +func (o ServiceNetworkConfigurationOutput) ToServiceNetworkConfigurationOutputWithContext(ctx context.Context) ServiceNetworkConfigurationOutput { + return o +} + +func (o ServiceNetworkConfigurationOutput) ToServiceNetworkConfigurationPtrOutput() ServiceNetworkConfigurationPtrOutput { + return o.ToServiceNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ServiceNetworkConfigurationOutput) ToServiceNetworkConfigurationPtrOutputWithContext(ctx context.Context) ServiceNetworkConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceNetworkConfiguration) *ServiceNetworkConfiguration { + return &v + }).(ServiceNetworkConfigurationPtrOutput) +} + +// Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. +// +// For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) +func (o ServiceNetworkConfigurationOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceNetworkConfiguration) *bool { return v.AssignPublicIp }).(pulumi.BoolPtrOutput) +} + +// Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. +func (o ServiceNetworkConfigurationOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceNetworkConfiguration) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) +} + +// Subnets associated with the task or service. +func (o ServiceNetworkConfigurationOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceNetworkConfiguration) []string { return v.Subnets }).(pulumi.StringArrayOutput) +} + +type ServiceNetworkConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ServiceNetworkConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceNetworkConfiguration)(nil)).Elem() +} + +func (o ServiceNetworkConfigurationPtrOutput) ToServiceNetworkConfigurationPtrOutput() ServiceNetworkConfigurationPtrOutput { + return o +} + +func (o ServiceNetworkConfigurationPtrOutput) ToServiceNetworkConfigurationPtrOutputWithContext(ctx context.Context) ServiceNetworkConfigurationPtrOutput { + return o +} + +func (o ServiceNetworkConfigurationPtrOutput) Elem() ServiceNetworkConfigurationOutput { + return o.ApplyT(func(v *ServiceNetworkConfiguration) ServiceNetworkConfiguration { + if v != nil { + return *v + } + var ret ServiceNetworkConfiguration + return ret + }).(ServiceNetworkConfigurationOutput) +} + +// Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. +// +// For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) +func (o ServiceNetworkConfigurationPtrOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceNetworkConfiguration) *bool { + if v == nil { + return nil + } + return v.AssignPublicIp + }).(pulumi.BoolPtrOutput) +} + +// Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. +func (o ServiceNetworkConfigurationPtrOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.SecurityGroups + }).(pulumi.StringArrayOutput) +} + +// Subnets associated with the task or service. +func (o ServiceNetworkConfigurationPtrOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.Subnets + }).(pulumi.StringArrayOutput) +} + +type ServiceOrderedPlacementStrategy struct { + // For the `spread` placement strategy, valid values are `instanceId` (or `host`, + // which has the same effect), or any platform or custom attribute that is applied to a container instance. + // For the `binpack` type, valid values are `memory` and `cpu`. For the `random` type, this attribute is not + // needed. For more information, see [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html). + // + // > **Note:** for `spread`, `host` and `instanceId` will be normalized, by AWS, to be `instanceId`. This means the statefile will show `instanceId` but your config will differ if you use `host`. + Field *string `pulumi:"field"` + // Type of placement strategy. Must be one of: `binpack`, `random`, or `spread` + Type string `pulumi:"type"` +} + +// ServiceOrderedPlacementStrategyInput is an input type that accepts ServiceOrderedPlacementStrategyArgs and ServiceOrderedPlacementStrategyOutput values. +// You can construct a concrete instance of `ServiceOrderedPlacementStrategyInput` via: +// +// ServiceOrderedPlacementStrategyArgs{...} +type ServiceOrderedPlacementStrategyInput interface { + pulumi.Input + + ToServiceOrderedPlacementStrategyOutput() ServiceOrderedPlacementStrategyOutput + ToServiceOrderedPlacementStrategyOutputWithContext(context.Context) ServiceOrderedPlacementStrategyOutput +} + +type ServiceOrderedPlacementStrategyArgs struct { + // For the `spread` placement strategy, valid values are `instanceId` (or `host`, + // which has the same effect), or any platform or custom attribute that is applied to a container instance. + // For the `binpack` type, valid values are `memory` and `cpu`. For the `random` type, this attribute is not + // needed. For more information, see [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html). + // + // > **Note:** for `spread`, `host` and `instanceId` will be normalized, by AWS, to be `instanceId`. This means the statefile will show `instanceId` but your config will differ if you use `host`. + Field pulumi.StringPtrInput `pulumi:"field"` + // Type of placement strategy. Must be one of: `binpack`, `random`, or `spread` + Type pulumi.StringInput `pulumi:"type"` +} + +func (ServiceOrderedPlacementStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceOrderedPlacementStrategy)(nil)).Elem() +} + +func (i ServiceOrderedPlacementStrategyArgs) ToServiceOrderedPlacementStrategyOutput() ServiceOrderedPlacementStrategyOutput { + return i.ToServiceOrderedPlacementStrategyOutputWithContext(context.Background()) +} + +func (i ServiceOrderedPlacementStrategyArgs) ToServiceOrderedPlacementStrategyOutputWithContext(ctx context.Context) ServiceOrderedPlacementStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceOrderedPlacementStrategyOutput) +} + +// ServiceOrderedPlacementStrategyArrayInput is an input type that accepts ServiceOrderedPlacementStrategyArray and ServiceOrderedPlacementStrategyArrayOutput values. +// You can construct a concrete instance of `ServiceOrderedPlacementStrategyArrayInput` via: +// +// ServiceOrderedPlacementStrategyArray{ ServiceOrderedPlacementStrategyArgs{...} } +type ServiceOrderedPlacementStrategyArrayInput interface { + pulumi.Input + + ToServiceOrderedPlacementStrategyArrayOutput() ServiceOrderedPlacementStrategyArrayOutput + ToServiceOrderedPlacementStrategyArrayOutputWithContext(context.Context) ServiceOrderedPlacementStrategyArrayOutput +} + +type ServiceOrderedPlacementStrategyArray []ServiceOrderedPlacementStrategyInput + +func (ServiceOrderedPlacementStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceOrderedPlacementStrategy)(nil)).Elem() +} + +func (i ServiceOrderedPlacementStrategyArray) ToServiceOrderedPlacementStrategyArrayOutput() ServiceOrderedPlacementStrategyArrayOutput { + return i.ToServiceOrderedPlacementStrategyArrayOutputWithContext(context.Background()) +} + +func (i ServiceOrderedPlacementStrategyArray) ToServiceOrderedPlacementStrategyArrayOutputWithContext(ctx context.Context) ServiceOrderedPlacementStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceOrderedPlacementStrategyArrayOutput) +} + +type ServiceOrderedPlacementStrategyOutput struct{ *pulumi.OutputState } + +func (ServiceOrderedPlacementStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceOrderedPlacementStrategy)(nil)).Elem() +} + +func (o ServiceOrderedPlacementStrategyOutput) ToServiceOrderedPlacementStrategyOutput() ServiceOrderedPlacementStrategyOutput { + return o +} + +func (o ServiceOrderedPlacementStrategyOutput) ToServiceOrderedPlacementStrategyOutputWithContext(ctx context.Context) ServiceOrderedPlacementStrategyOutput { + return o +} + +// For the `spread` placement strategy, valid values are `instanceId` (or `host`, +// which has the same effect), or any platform or custom attribute that is applied to a container instance. +// For the `binpack` type, valid values are `memory` and `cpu`. For the `random` type, this attribute is not +// needed. For more information, see [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html). +// +// > **Note:** for `spread`, `host` and `instanceId` will be normalized, by AWS, to be `instanceId`. This means the statefile will show `instanceId` but your config will differ if you use `host`. +func (o ServiceOrderedPlacementStrategyOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceOrderedPlacementStrategy) *string { return v.Field }).(pulumi.StringPtrOutput) +} + +// Type of placement strategy. Must be one of: `binpack`, `random`, or `spread` +func (o ServiceOrderedPlacementStrategyOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ServiceOrderedPlacementStrategy) string { return v.Type }).(pulumi.StringOutput) +} + +type ServiceOrderedPlacementStrategyArrayOutput struct{ *pulumi.OutputState } + +func (ServiceOrderedPlacementStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceOrderedPlacementStrategy)(nil)).Elem() +} + +func (o ServiceOrderedPlacementStrategyArrayOutput) ToServiceOrderedPlacementStrategyArrayOutput() ServiceOrderedPlacementStrategyArrayOutput { + return o +} + +func (o ServiceOrderedPlacementStrategyArrayOutput) ToServiceOrderedPlacementStrategyArrayOutputWithContext(ctx context.Context) ServiceOrderedPlacementStrategyArrayOutput { + return o +} + +func (o ServiceOrderedPlacementStrategyArrayOutput) Index(i pulumi.IntInput) ServiceOrderedPlacementStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceOrderedPlacementStrategy { + return vs[0].([]ServiceOrderedPlacementStrategy)[vs[1].(int)] + }).(ServiceOrderedPlacementStrategyOutput) +} + +type ServicePlacementConstraint struct { + // Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). + Expression *string `pulumi:"expression"` + // Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. + Type string `pulumi:"type"` +} + +// ServicePlacementConstraintInput is an input type that accepts ServicePlacementConstraintArgs and ServicePlacementConstraintOutput values. +// You can construct a concrete instance of `ServicePlacementConstraintInput` via: +// +// ServicePlacementConstraintArgs{...} +type ServicePlacementConstraintInput interface { + pulumi.Input + + ToServicePlacementConstraintOutput() ServicePlacementConstraintOutput + ToServicePlacementConstraintOutputWithContext(context.Context) ServicePlacementConstraintOutput +} + +type ServicePlacementConstraintArgs struct { + // Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). + Expression pulumi.StringPtrInput `pulumi:"expression"` + // Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (ServicePlacementConstraintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServicePlacementConstraint)(nil)).Elem() +} + +func (i ServicePlacementConstraintArgs) ToServicePlacementConstraintOutput() ServicePlacementConstraintOutput { + return i.ToServicePlacementConstraintOutputWithContext(context.Background()) +} + +func (i ServicePlacementConstraintArgs) ToServicePlacementConstraintOutputWithContext(ctx context.Context) ServicePlacementConstraintOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServicePlacementConstraintOutput) +} + +// ServicePlacementConstraintArrayInput is an input type that accepts ServicePlacementConstraintArray and ServicePlacementConstraintArrayOutput values. +// You can construct a concrete instance of `ServicePlacementConstraintArrayInput` via: +// +// ServicePlacementConstraintArray{ ServicePlacementConstraintArgs{...} } +type ServicePlacementConstraintArrayInput interface { + pulumi.Input + + ToServicePlacementConstraintArrayOutput() ServicePlacementConstraintArrayOutput + ToServicePlacementConstraintArrayOutputWithContext(context.Context) ServicePlacementConstraintArrayOutput +} + +type ServicePlacementConstraintArray []ServicePlacementConstraintInput + +func (ServicePlacementConstraintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServicePlacementConstraint)(nil)).Elem() +} + +func (i ServicePlacementConstraintArray) ToServicePlacementConstraintArrayOutput() ServicePlacementConstraintArrayOutput { + return i.ToServicePlacementConstraintArrayOutputWithContext(context.Background()) +} + +func (i ServicePlacementConstraintArray) ToServicePlacementConstraintArrayOutputWithContext(ctx context.Context) ServicePlacementConstraintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServicePlacementConstraintArrayOutput) +} + +type ServicePlacementConstraintOutput struct{ *pulumi.OutputState } + +func (ServicePlacementConstraintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServicePlacementConstraint)(nil)).Elem() +} + +func (o ServicePlacementConstraintOutput) ToServicePlacementConstraintOutput() ServicePlacementConstraintOutput { + return o +} + +func (o ServicePlacementConstraintOutput) ToServicePlacementConstraintOutputWithContext(ctx context.Context) ServicePlacementConstraintOutput { + return o +} + +// Cluster Query Language expression to apply to the constraint. Does not need to be specified for the `distinctInstance` type. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). +func (o ServicePlacementConstraintOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServicePlacementConstraint) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// Type of constraint. The only valid values at this time are `memberOf` and `distinctInstance`. +func (o ServicePlacementConstraintOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ServicePlacementConstraint) string { return v.Type }).(pulumi.StringOutput) +} + +type ServicePlacementConstraintArrayOutput struct{ *pulumi.OutputState } + +func (ServicePlacementConstraintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServicePlacementConstraint)(nil)).Elem() +} + +func (o ServicePlacementConstraintArrayOutput) ToServicePlacementConstraintArrayOutput() ServicePlacementConstraintArrayOutput { + return o +} + +func (o ServicePlacementConstraintArrayOutput) ToServicePlacementConstraintArrayOutputWithContext(ctx context.Context) ServicePlacementConstraintArrayOutput { + return o +} + +func (o ServicePlacementConstraintArrayOutput) Index(i pulumi.IntInput) ServicePlacementConstraintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServicePlacementConstraint { + return vs[0].([]ServicePlacementConstraint)[vs[1].(int)] + }).(ServicePlacementConstraintOutput) +} + +type ServiceServiceConnectConfiguration struct { + // Specifies whether to use Service Connect with this service. + Enabled bool `pulumi:"enabled"` + // The log configuration for the container. See below. + LogConfiguration *ServiceServiceConnectConfigurationLogConfiguration `pulumi:"logConfiguration"` + // The namespace name or ARN of the `servicediscovery.HttpNamespace` for use with Service Connect. + Namespace *string `pulumi:"namespace"` + // The list of Service Connect service objects. See below. + Services []ServiceServiceConnectConfigurationService `pulumi:"services"` +} + +// ServiceServiceConnectConfigurationInput is an input type that accepts ServiceServiceConnectConfigurationArgs and ServiceServiceConnectConfigurationOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationInput` via: +// +// ServiceServiceConnectConfigurationArgs{...} +type ServiceServiceConnectConfigurationInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationOutput() ServiceServiceConnectConfigurationOutput + ToServiceServiceConnectConfigurationOutputWithContext(context.Context) ServiceServiceConnectConfigurationOutput +} + +type ServiceServiceConnectConfigurationArgs struct { + // Specifies whether to use Service Connect with this service. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // The log configuration for the container. See below. + LogConfiguration ServiceServiceConnectConfigurationLogConfigurationPtrInput `pulumi:"logConfiguration"` + // The namespace name or ARN of the `servicediscovery.HttpNamespace` for use with Service Connect. + Namespace pulumi.StringPtrInput `pulumi:"namespace"` + // The list of Service Connect service objects. See below. + Services ServiceServiceConnectConfigurationServiceArrayInput `pulumi:"services"` +} + +func (ServiceServiceConnectConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfiguration)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationArgs) ToServiceServiceConnectConfigurationOutput() ServiceServiceConnectConfigurationOutput { + return i.ToServiceServiceConnectConfigurationOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationArgs) ToServiceServiceConnectConfigurationOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationOutput) +} + +func (i ServiceServiceConnectConfigurationArgs) ToServiceServiceConnectConfigurationPtrOutput() ServiceServiceConnectConfigurationPtrOutput { + return i.ToServiceServiceConnectConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationArgs) ToServiceServiceConnectConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationOutput).ToServiceServiceConnectConfigurationPtrOutputWithContext(ctx) +} + +// ServiceServiceConnectConfigurationPtrInput is an input type that accepts ServiceServiceConnectConfigurationArgs, ServiceServiceConnectConfigurationPtr and ServiceServiceConnectConfigurationPtrOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationPtrInput` via: +// +// ServiceServiceConnectConfigurationArgs{...} +// +// or: +// +// nil +type ServiceServiceConnectConfigurationPtrInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationPtrOutput() ServiceServiceConnectConfigurationPtrOutput + ToServiceServiceConnectConfigurationPtrOutputWithContext(context.Context) ServiceServiceConnectConfigurationPtrOutput +} + +type serviceServiceConnectConfigurationPtrType ServiceServiceConnectConfigurationArgs + +func ServiceServiceConnectConfigurationPtr(v *ServiceServiceConnectConfigurationArgs) ServiceServiceConnectConfigurationPtrInput { + return (*serviceServiceConnectConfigurationPtrType)(v) +} + +func (*serviceServiceConnectConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceServiceConnectConfiguration)(nil)).Elem() +} + +func (i *serviceServiceConnectConfigurationPtrType) ToServiceServiceConnectConfigurationPtrOutput() ServiceServiceConnectConfigurationPtrOutput { + return i.ToServiceServiceConnectConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *serviceServiceConnectConfigurationPtrType) ToServiceServiceConnectConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationPtrOutput) +} + +type ServiceServiceConnectConfigurationOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfiguration)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationOutput) ToServiceServiceConnectConfigurationOutput() ServiceServiceConnectConfigurationOutput { + return o +} + +func (o ServiceServiceConnectConfigurationOutput) ToServiceServiceConnectConfigurationOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationOutput { + return o +} + +func (o ServiceServiceConnectConfigurationOutput) ToServiceServiceConnectConfigurationPtrOutput() ServiceServiceConnectConfigurationPtrOutput { + return o.ToServiceServiceConnectConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ServiceServiceConnectConfigurationOutput) ToServiceServiceConnectConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceServiceConnectConfiguration) *ServiceServiceConnectConfiguration { + return &v + }).(ServiceServiceConnectConfigurationPtrOutput) +} + +// Specifies whether to use Service Connect with this service. +func (o ServiceServiceConnectConfigurationOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ServiceServiceConnectConfiguration) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// The log configuration for the container. See below. +func (o ServiceServiceConnectConfigurationOutput) LogConfiguration() ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return o.ApplyT(func(v ServiceServiceConnectConfiguration) *ServiceServiceConnectConfigurationLogConfiguration { + return v.LogConfiguration + }).(ServiceServiceConnectConfigurationLogConfigurationPtrOutput) +} + +// The namespace name or ARN of the `servicediscovery.HttpNamespace` for use with Service Connect. +func (o ServiceServiceConnectConfigurationOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceServiceConnectConfiguration) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// The list of Service Connect service objects. See below. +func (o ServiceServiceConnectConfigurationOutput) Services() ServiceServiceConnectConfigurationServiceArrayOutput { + return o.ApplyT(func(v ServiceServiceConnectConfiguration) []ServiceServiceConnectConfigurationService { + return v.Services + }).(ServiceServiceConnectConfigurationServiceArrayOutput) +} + +type ServiceServiceConnectConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceServiceConnectConfiguration)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationPtrOutput) ToServiceServiceConnectConfigurationPtrOutput() ServiceServiceConnectConfigurationPtrOutput { + return o +} + +func (o ServiceServiceConnectConfigurationPtrOutput) ToServiceServiceConnectConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationPtrOutput { + return o +} + +func (o ServiceServiceConnectConfigurationPtrOutput) Elem() ServiceServiceConnectConfigurationOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfiguration) ServiceServiceConnectConfiguration { + if v != nil { + return *v + } + var ret ServiceServiceConnectConfiguration + return ret + }).(ServiceServiceConnectConfigurationOutput) +} + +// Specifies whether to use Service Connect with this service. +func (o ServiceServiceConnectConfigurationPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfiguration) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// The log configuration for the container. See below. +func (o ServiceServiceConnectConfigurationPtrOutput) LogConfiguration() ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfiguration) *ServiceServiceConnectConfigurationLogConfiguration { + if v == nil { + return nil + } + return v.LogConfiguration + }).(ServiceServiceConnectConfigurationLogConfigurationPtrOutput) +} + +// The namespace name or ARN of the `servicediscovery.HttpNamespace` for use with Service Connect. +func (o ServiceServiceConnectConfigurationPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfiguration) *string { + if v == nil { + return nil + } + return v.Namespace + }).(pulumi.StringPtrOutput) +} + +// The list of Service Connect service objects. See below. +func (o ServiceServiceConnectConfigurationPtrOutput) Services() ServiceServiceConnectConfigurationServiceArrayOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfiguration) []ServiceServiceConnectConfigurationService { + if v == nil { + return nil + } + return v.Services + }).(ServiceServiceConnectConfigurationServiceArrayOutput) +} + +type ServiceServiceConnectConfigurationLogConfiguration struct { + // The log driver to use for the container. + LogDriver string `pulumi:"logDriver"` + // The configuration options to send to the log driver. + Options map[string]string `pulumi:"options"` + // The secrets to pass to the log configuration. See below. + SecretOptions []ServiceServiceConnectConfigurationLogConfigurationSecretOption `pulumi:"secretOptions"` +} + +// ServiceServiceConnectConfigurationLogConfigurationInput is an input type that accepts ServiceServiceConnectConfigurationLogConfigurationArgs and ServiceServiceConnectConfigurationLogConfigurationOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationLogConfigurationInput` via: +// +// ServiceServiceConnectConfigurationLogConfigurationArgs{...} +type ServiceServiceConnectConfigurationLogConfigurationInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationLogConfigurationOutput() ServiceServiceConnectConfigurationLogConfigurationOutput + ToServiceServiceConnectConfigurationLogConfigurationOutputWithContext(context.Context) ServiceServiceConnectConfigurationLogConfigurationOutput +} + +type ServiceServiceConnectConfigurationLogConfigurationArgs struct { + // The log driver to use for the container. + LogDriver pulumi.StringInput `pulumi:"logDriver"` + // The configuration options to send to the log driver. + Options pulumi.StringMapInput `pulumi:"options"` + // The secrets to pass to the log configuration. See below. + SecretOptions ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayInput `pulumi:"secretOptions"` +} + +func (ServiceServiceConnectConfigurationLogConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfiguration)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationLogConfigurationArgs) ToServiceServiceConnectConfigurationLogConfigurationOutput() ServiceServiceConnectConfigurationLogConfigurationOutput { + return i.ToServiceServiceConnectConfigurationLogConfigurationOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationLogConfigurationArgs) ToServiceServiceConnectConfigurationLogConfigurationOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationLogConfigurationOutput) +} + +func (i ServiceServiceConnectConfigurationLogConfigurationArgs) ToServiceServiceConnectConfigurationLogConfigurationPtrOutput() ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return i.ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationLogConfigurationArgs) ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationLogConfigurationOutput).ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(ctx) +} + +// ServiceServiceConnectConfigurationLogConfigurationPtrInput is an input type that accepts ServiceServiceConnectConfigurationLogConfigurationArgs, ServiceServiceConnectConfigurationLogConfigurationPtr and ServiceServiceConnectConfigurationLogConfigurationPtrOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationLogConfigurationPtrInput` via: +// +// ServiceServiceConnectConfigurationLogConfigurationArgs{...} +// +// or: +// +// nil +type ServiceServiceConnectConfigurationLogConfigurationPtrInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationLogConfigurationPtrOutput() ServiceServiceConnectConfigurationLogConfigurationPtrOutput + ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(context.Context) ServiceServiceConnectConfigurationLogConfigurationPtrOutput +} + +type serviceServiceConnectConfigurationLogConfigurationPtrType ServiceServiceConnectConfigurationLogConfigurationArgs + +func ServiceServiceConnectConfigurationLogConfigurationPtr(v *ServiceServiceConnectConfigurationLogConfigurationArgs) ServiceServiceConnectConfigurationLogConfigurationPtrInput { + return (*serviceServiceConnectConfigurationLogConfigurationPtrType)(v) +} + +func (*serviceServiceConnectConfigurationLogConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceServiceConnectConfigurationLogConfiguration)(nil)).Elem() +} + +func (i *serviceServiceConnectConfigurationLogConfigurationPtrType) ToServiceServiceConnectConfigurationLogConfigurationPtrOutput() ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return i.ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *serviceServiceConnectConfigurationLogConfigurationPtrType) ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationLogConfigurationPtrOutput) +} + +type ServiceServiceConnectConfigurationLogConfigurationOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationLogConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfiguration)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) ToServiceServiceConnectConfigurationLogConfigurationOutput() ServiceServiceConnectConfigurationLogConfigurationOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) ToServiceServiceConnectConfigurationLogConfigurationOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) ToServiceServiceConnectConfigurationLogConfigurationPtrOutput() ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return o.ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceServiceConnectConfigurationLogConfiguration) *ServiceServiceConnectConfigurationLogConfiguration { + return &v + }).(ServiceServiceConnectConfigurationLogConfigurationPtrOutput) +} + +// The log driver to use for the container. +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) LogDriver() pulumi.StringOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationLogConfiguration) string { return v.LogDriver }).(pulumi.StringOutput) +} + +// The configuration options to send to the log driver. +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) Options() pulumi.StringMapOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationLogConfiguration) map[string]string { return v.Options }).(pulumi.StringMapOutput) +} + +// The secrets to pass to the log configuration. See below. +func (o ServiceServiceConnectConfigurationLogConfigurationOutput) SecretOptions() ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationLogConfiguration) []ServiceServiceConnectConfigurationLogConfigurationSecretOption { + return v.SecretOptions + }).(ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) +} + +type ServiceServiceConnectConfigurationLogConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationLogConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceServiceConnectConfigurationLogConfiguration)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationLogConfigurationPtrOutput) ToServiceServiceConnectConfigurationLogConfigurationPtrOutput() ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationPtrOutput) ToServiceServiceConnectConfigurationLogConfigurationPtrOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationPtrOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationPtrOutput) Elem() ServiceServiceConnectConfigurationLogConfigurationOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfigurationLogConfiguration) ServiceServiceConnectConfigurationLogConfiguration { + if v != nil { + return *v + } + var ret ServiceServiceConnectConfigurationLogConfiguration + return ret + }).(ServiceServiceConnectConfigurationLogConfigurationOutput) +} + +// The log driver to use for the container. +func (o ServiceServiceConnectConfigurationLogConfigurationPtrOutput) LogDriver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfigurationLogConfiguration) *string { + if v == nil { + return nil + } + return &v.LogDriver + }).(pulumi.StringPtrOutput) +} + +// The configuration options to send to the log driver. +func (o ServiceServiceConnectConfigurationLogConfigurationPtrOutput) Options() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfigurationLogConfiguration) map[string]string { + if v == nil { + return nil + } + return v.Options + }).(pulumi.StringMapOutput) +} + +// The secrets to pass to the log configuration. See below. +func (o ServiceServiceConnectConfigurationLogConfigurationPtrOutput) SecretOptions() ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput { + return o.ApplyT(func(v *ServiceServiceConnectConfigurationLogConfiguration) []ServiceServiceConnectConfigurationLogConfigurationSecretOption { + if v == nil { + return nil + } + return v.SecretOptions + }).(ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) +} + +type ServiceServiceConnectConfigurationLogConfigurationSecretOption struct { + // The name of the secret. + Name string `pulumi:"name"` + // The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store. + ValueFrom string `pulumi:"valueFrom"` +} + +// ServiceServiceConnectConfigurationLogConfigurationSecretOptionInput is an input type that accepts ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs and ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationLogConfigurationSecretOptionInput` via: +// +// ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs{...} +type ServiceServiceConnectConfigurationLogConfigurationSecretOptionInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput() ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput + ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutputWithContext(context.Context) ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput +} + +type ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs struct { + // The name of the secret. + Name pulumi.StringInput `pulumi:"name"` + // The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store. + ValueFrom pulumi.StringInput `pulumi:"valueFrom"` +} + +func (ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfigurationSecretOption)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput() ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput { + return i.ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) +} + +// ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayInput is an input type that accepts ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray and ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayInput` via: +// +// ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray{ ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs{...} } +type ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput() ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput + ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutputWithContext(context.Context) ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput +} + +type ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray []ServiceServiceConnectConfigurationLogConfigurationSecretOptionInput + +func (ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceServiceConnectConfigurationLogConfigurationSecretOption)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput() ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput { + return i.ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) +} + +type ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfigurationSecretOption)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput() ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput { + return o +} + +// The name of the secret. +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationLogConfigurationSecretOption) string { return v.Name }).(pulumi.StringOutput) +} + +// The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store. +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) ValueFrom() pulumi.StringOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationLogConfigurationSecretOption) string { return v.ValueFrom }).(pulumi.StringOutput) +} + +type ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceServiceConnectConfigurationLogConfigurationSecretOption)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput() ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) ToServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput { + return o +} + +func (o ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput) Index(i pulumi.IntInput) ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceServiceConnectConfigurationLogConfigurationSecretOption { + return vs[0].([]ServiceServiceConnectConfigurationLogConfigurationSecretOption)[vs[1].(int)] + }).(ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput) +} + +type ServiceServiceConnectConfigurationService struct { + // The list of client aliases for this Service Connect service. You use these to assign names that can be used by client applications. The maximum number of client aliases that you can have in this list is 1. See below. + ClientAlias []ServiceServiceConnectConfigurationServiceClientAlias `pulumi:"clientAlias"` + // The name of the new AWS Cloud Map service that Amazon ECS creates for this Amazon ECS service. + DiscoveryName *string `pulumi:"discoveryName"` + // The port number for the Service Connect proxy to listen on. + IngressPortOverride *int `pulumi:"ingressPortOverride"` + // The name of one of the `portMappings` from all the containers in the task definition of this Amazon ECS service. + PortName string `pulumi:"portName"` +} + +// ServiceServiceConnectConfigurationServiceInput is an input type that accepts ServiceServiceConnectConfigurationServiceArgs and ServiceServiceConnectConfigurationServiceOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationServiceInput` via: +// +// ServiceServiceConnectConfigurationServiceArgs{...} +type ServiceServiceConnectConfigurationServiceInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationServiceOutput() ServiceServiceConnectConfigurationServiceOutput + ToServiceServiceConnectConfigurationServiceOutputWithContext(context.Context) ServiceServiceConnectConfigurationServiceOutput +} + +type ServiceServiceConnectConfigurationServiceArgs struct { + // The list of client aliases for this Service Connect service. You use these to assign names that can be used by client applications. The maximum number of client aliases that you can have in this list is 1. See below. + ClientAlias ServiceServiceConnectConfigurationServiceClientAliasArrayInput `pulumi:"clientAlias"` + // The name of the new AWS Cloud Map service that Amazon ECS creates for this Amazon ECS service. + DiscoveryName pulumi.StringPtrInput `pulumi:"discoveryName"` + // The port number for the Service Connect proxy to listen on. + IngressPortOverride pulumi.IntPtrInput `pulumi:"ingressPortOverride"` + // The name of one of the `portMappings` from all the containers in the task definition of this Amazon ECS service. + PortName pulumi.StringInput `pulumi:"portName"` +} + +func (ServiceServiceConnectConfigurationServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationService)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationServiceArgs) ToServiceServiceConnectConfigurationServiceOutput() ServiceServiceConnectConfigurationServiceOutput { + return i.ToServiceServiceConnectConfigurationServiceOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationServiceArgs) ToServiceServiceConnectConfigurationServiceOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationServiceOutput) +} + +// ServiceServiceConnectConfigurationServiceArrayInput is an input type that accepts ServiceServiceConnectConfigurationServiceArray and ServiceServiceConnectConfigurationServiceArrayOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationServiceArrayInput` via: +// +// ServiceServiceConnectConfigurationServiceArray{ ServiceServiceConnectConfigurationServiceArgs{...} } +type ServiceServiceConnectConfigurationServiceArrayInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationServiceArrayOutput() ServiceServiceConnectConfigurationServiceArrayOutput + ToServiceServiceConnectConfigurationServiceArrayOutputWithContext(context.Context) ServiceServiceConnectConfigurationServiceArrayOutput +} + +type ServiceServiceConnectConfigurationServiceArray []ServiceServiceConnectConfigurationServiceInput + +func (ServiceServiceConnectConfigurationServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceServiceConnectConfigurationService)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationServiceArray) ToServiceServiceConnectConfigurationServiceArrayOutput() ServiceServiceConnectConfigurationServiceArrayOutput { + return i.ToServiceServiceConnectConfigurationServiceArrayOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationServiceArray) ToServiceServiceConnectConfigurationServiceArrayOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationServiceArrayOutput) +} + +type ServiceServiceConnectConfigurationServiceOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationService)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationServiceOutput) ToServiceServiceConnectConfigurationServiceOutput() ServiceServiceConnectConfigurationServiceOutput { + return o +} + +func (o ServiceServiceConnectConfigurationServiceOutput) ToServiceServiceConnectConfigurationServiceOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceOutput { + return o +} + +// The list of client aliases for this Service Connect service. You use these to assign names that can be used by client applications. The maximum number of client aliases that you can have in this list is 1. See below. +func (o ServiceServiceConnectConfigurationServiceOutput) ClientAlias() ServiceServiceConnectConfigurationServiceClientAliasArrayOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationService) []ServiceServiceConnectConfigurationServiceClientAlias { + return v.ClientAlias + }).(ServiceServiceConnectConfigurationServiceClientAliasArrayOutput) +} + +// The name of the new AWS Cloud Map service that Amazon ECS creates for this Amazon ECS service. +func (o ServiceServiceConnectConfigurationServiceOutput) DiscoveryName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationService) *string { return v.DiscoveryName }).(pulumi.StringPtrOutput) +} + +// The port number for the Service Connect proxy to listen on. +func (o ServiceServiceConnectConfigurationServiceOutput) IngressPortOverride() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationService) *int { return v.IngressPortOverride }).(pulumi.IntPtrOutput) +} + +// The name of one of the `portMappings` from all the containers in the task definition of this Amazon ECS service. +func (o ServiceServiceConnectConfigurationServiceOutput) PortName() pulumi.StringOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationService) string { return v.PortName }).(pulumi.StringOutput) +} + +type ServiceServiceConnectConfigurationServiceArrayOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceServiceConnectConfigurationService)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationServiceArrayOutput) ToServiceServiceConnectConfigurationServiceArrayOutput() ServiceServiceConnectConfigurationServiceArrayOutput { + return o +} + +func (o ServiceServiceConnectConfigurationServiceArrayOutput) ToServiceServiceConnectConfigurationServiceArrayOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceArrayOutput { + return o +} + +func (o ServiceServiceConnectConfigurationServiceArrayOutput) Index(i pulumi.IntInput) ServiceServiceConnectConfigurationServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceServiceConnectConfigurationService { + return vs[0].([]ServiceServiceConnectConfigurationService)[vs[1].(int)] + }).(ServiceServiceConnectConfigurationServiceOutput) +} + +type ServiceServiceConnectConfigurationServiceClientAlias struct { + // The name that you use in the applications of client tasks to connect to this service. + DnsName *string `pulumi:"dnsName"` + // The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace. + Port int `pulumi:"port"` +} + +// ServiceServiceConnectConfigurationServiceClientAliasInput is an input type that accepts ServiceServiceConnectConfigurationServiceClientAliasArgs and ServiceServiceConnectConfigurationServiceClientAliasOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationServiceClientAliasInput` via: +// +// ServiceServiceConnectConfigurationServiceClientAliasArgs{...} +type ServiceServiceConnectConfigurationServiceClientAliasInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationServiceClientAliasOutput() ServiceServiceConnectConfigurationServiceClientAliasOutput + ToServiceServiceConnectConfigurationServiceClientAliasOutputWithContext(context.Context) ServiceServiceConnectConfigurationServiceClientAliasOutput +} + +type ServiceServiceConnectConfigurationServiceClientAliasArgs struct { + // The name that you use in the applications of client tasks to connect to this service. + DnsName pulumi.StringPtrInput `pulumi:"dnsName"` + // The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace. + Port pulumi.IntInput `pulumi:"port"` +} + +func (ServiceServiceConnectConfigurationServiceClientAliasArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationServiceClientAlias)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationServiceClientAliasArgs) ToServiceServiceConnectConfigurationServiceClientAliasOutput() ServiceServiceConnectConfigurationServiceClientAliasOutput { + return i.ToServiceServiceConnectConfigurationServiceClientAliasOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationServiceClientAliasArgs) ToServiceServiceConnectConfigurationServiceClientAliasOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceClientAliasOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationServiceClientAliasOutput) +} + +// ServiceServiceConnectConfigurationServiceClientAliasArrayInput is an input type that accepts ServiceServiceConnectConfigurationServiceClientAliasArray and ServiceServiceConnectConfigurationServiceClientAliasArrayOutput values. +// You can construct a concrete instance of `ServiceServiceConnectConfigurationServiceClientAliasArrayInput` via: +// +// ServiceServiceConnectConfigurationServiceClientAliasArray{ ServiceServiceConnectConfigurationServiceClientAliasArgs{...} } +type ServiceServiceConnectConfigurationServiceClientAliasArrayInput interface { + pulumi.Input + + ToServiceServiceConnectConfigurationServiceClientAliasArrayOutput() ServiceServiceConnectConfigurationServiceClientAliasArrayOutput + ToServiceServiceConnectConfigurationServiceClientAliasArrayOutputWithContext(context.Context) ServiceServiceConnectConfigurationServiceClientAliasArrayOutput +} + +type ServiceServiceConnectConfigurationServiceClientAliasArray []ServiceServiceConnectConfigurationServiceClientAliasInput + +func (ServiceServiceConnectConfigurationServiceClientAliasArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceServiceConnectConfigurationServiceClientAlias)(nil)).Elem() +} + +func (i ServiceServiceConnectConfigurationServiceClientAliasArray) ToServiceServiceConnectConfigurationServiceClientAliasArrayOutput() ServiceServiceConnectConfigurationServiceClientAliasArrayOutput { + return i.ToServiceServiceConnectConfigurationServiceClientAliasArrayOutputWithContext(context.Background()) +} + +func (i ServiceServiceConnectConfigurationServiceClientAliasArray) ToServiceServiceConnectConfigurationServiceClientAliasArrayOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceClientAliasArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceConnectConfigurationServiceClientAliasArrayOutput) +} + +type ServiceServiceConnectConfigurationServiceClientAliasOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationServiceClientAliasOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceConnectConfigurationServiceClientAlias)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationServiceClientAliasOutput) ToServiceServiceConnectConfigurationServiceClientAliasOutput() ServiceServiceConnectConfigurationServiceClientAliasOutput { + return o +} + +func (o ServiceServiceConnectConfigurationServiceClientAliasOutput) ToServiceServiceConnectConfigurationServiceClientAliasOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceClientAliasOutput { + return o +} + +// The name that you use in the applications of client tasks to connect to this service. +func (o ServiceServiceConnectConfigurationServiceClientAliasOutput) DnsName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationServiceClientAlias) *string { return v.DnsName }).(pulumi.StringPtrOutput) +} + +// The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace. +func (o ServiceServiceConnectConfigurationServiceClientAliasOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v ServiceServiceConnectConfigurationServiceClientAlias) int { return v.Port }).(pulumi.IntOutput) +} + +type ServiceServiceConnectConfigurationServiceClientAliasArrayOutput struct{ *pulumi.OutputState } + +func (ServiceServiceConnectConfigurationServiceClientAliasArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceServiceConnectConfigurationServiceClientAlias)(nil)).Elem() +} + +func (o ServiceServiceConnectConfigurationServiceClientAliasArrayOutput) ToServiceServiceConnectConfigurationServiceClientAliasArrayOutput() ServiceServiceConnectConfigurationServiceClientAliasArrayOutput { + return o +} + +func (o ServiceServiceConnectConfigurationServiceClientAliasArrayOutput) ToServiceServiceConnectConfigurationServiceClientAliasArrayOutputWithContext(ctx context.Context) ServiceServiceConnectConfigurationServiceClientAliasArrayOutput { + return o +} + +func (o ServiceServiceConnectConfigurationServiceClientAliasArrayOutput) Index(i pulumi.IntInput) ServiceServiceConnectConfigurationServiceClientAliasOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceServiceConnectConfigurationServiceClientAlias { + return vs[0].([]ServiceServiceConnectConfigurationServiceClientAlias)[vs[1].(int)] + }).(ServiceServiceConnectConfigurationServiceClientAliasOutput) +} + +type ServiceServiceRegistries struct { + // Container name value, already specified in the task definition, to be used for your service discovery service. + ContainerName *string `pulumi:"containerName"` + // Port value, already specified in the task definition, to be used for your service discovery service. + ContainerPort *int `pulumi:"containerPort"` + // Port value used if your Service Discovery service specified an SRV record. + Port *int `pulumi:"port"` + // ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service`). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html) + RegistryArn string `pulumi:"registryArn"` +} + +// ServiceServiceRegistriesInput is an input type that accepts ServiceServiceRegistriesArgs and ServiceServiceRegistriesOutput values. +// You can construct a concrete instance of `ServiceServiceRegistriesInput` via: +// +// ServiceServiceRegistriesArgs{...} +type ServiceServiceRegistriesInput interface { + pulumi.Input + + ToServiceServiceRegistriesOutput() ServiceServiceRegistriesOutput + ToServiceServiceRegistriesOutputWithContext(context.Context) ServiceServiceRegistriesOutput +} + +type ServiceServiceRegistriesArgs struct { + // Container name value, already specified in the task definition, to be used for your service discovery service. + ContainerName pulumi.StringPtrInput `pulumi:"containerName"` + // Port value, already specified in the task definition, to be used for your service discovery service. + ContainerPort pulumi.IntPtrInput `pulumi:"containerPort"` + // Port value used if your Service Discovery service specified an SRV record. + Port pulumi.IntPtrInput `pulumi:"port"` + // ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service`). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html) + RegistryArn pulumi.StringInput `pulumi:"registryArn"` +} + +func (ServiceServiceRegistriesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceRegistries)(nil)).Elem() +} + +func (i ServiceServiceRegistriesArgs) ToServiceServiceRegistriesOutput() ServiceServiceRegistriesOutput { + return i.ToServiceServiceRegistriesOutputWithContext(context.Background()) +} + +func (i ServiceServiceRegistriesArgs) ToServiceServiceRegistriesOutputWithContext(ctx context.Context) ServiceServiceRegistriesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceRegistriesOutput) +} + +func (i ServiceServiceRegistriesArgs) ToServiceServiceRegistriesPtrOutput() ServiceServiceRegistriesPtrOutput { + return i.ToServiceServiceRegistriesPtrOutputWithContext(context.Background()) +} + +func (i ServiceServiceRegistriesArgs) ToServiceServiceRegistriesPtrOutputWithContext(ctx context.Context) ServiceServiceRegistriesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceRegistriesOutput).ToServiceServiceRegistriesPtrOutputWithContext(ctx) +} + +// ServiceServiceRegistriesPtrInput is an input type that accepts ServiceServiceRegistriesArgs, ServiceServiceRegistriesPtr and ServiceServiceRegistriesPtrOutput values. +// You can construct a concrete instance of `ServiceServiceRegistriesPtrInput` via: +// +// ServiceServiceRegistriesArgs{...} +// +// or: +// +// nil +type ServiceServiceRegistriesPtrInput interface { + pulumi.Input + + ToServiceServiceRegistriesPtrOutput() ServiceServiceRegistriesPtrOutput + ToServiceServiceRegistriesPtrOutputWithContext(context.Context) ServiceServiceRegistriesPtrOutput +} + +type serviceServiceRegistriesPtrType ServiceServiceRegistriesArgs + +func ServiceServiceRegistriesPtr(v *ServiceServiceRegistriesArgs) ServiceServiceRegistriesPtrInput { + return (*serviceServiceRegistriesPtrType)(v) +} + +func (*serviceServiceRegistriesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceServiceRegistries)(nil)).Elem() +} + +func (i *serviceServiceRegistriesPtrType) ToServiceServiceRegistriesPtrOutput() ServiceServiceRegistriesPtrOutput { + return i.ToServiceServiceRegistriesPtrOutputWithContext(context.Background()) +} + +func (i *serviceServiceRegistriesPtrType) ToServiceServiceRegistriesPtrOutputWithContext(ctx context.Context) ServiceServiceRegistriesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceServiceRegistriesPtrOutput) +} + +type ServiceServiceRegistriesOutput struct{ *pulumi.OutputState } + +func (ServiceServiceRegistriesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceServiceRegistries)(nil)).Elem() +} + +func (o ServiceServiceRegistriesOutput) ToServiceServiceRegistriesOutput() ServiceServiceRegistriesOutput { + return o +} + +func (o ServiceServiceRegistriesOutput) ToServiceServiceRegistriesOutputWithContext(ctx context.Context) ServiceServiceRegistriesOutput { + return o +} + +func (o ServiceServiceRegistriesOutput) ToServiceServiceRegistriesPtrOutput() ServiceServiceRegistriesPtrOutput { + return o.ToServiceServiceRegistriesPtrOutputWithContext(context.Background()) +} + +func (o ServiceServiceRegistriesOutput) ToServiceServiceRegistriesPtrOutputWithContext(ctx context.Context) ServiceServiceRegistriesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceServiceRegistries) *ServiceServiceRegistries { + return &v + }).(ServiceServiceRegistriesPtrOutput) +} + +// Container name value, already specified in the task definition, to be used for your service discovery service. +func (o ServiceServiceRegistriesOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceServiceRegistries) *string { return v.ContainerName }).(pulumi.StringPtrOutput) +} + +// Port value, already specified in the task definition, to be used for your service discovery service. +func (o ServiceServiceRegistriesOutput) ContainerPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceServiceRegistries) *int { return v.ContainerPort }).(pulumi.IntPtrOutput) +} + +// Port value used if your Service Discovery service specified an SRV record. +func (o ServiceServiceRegistriesOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceServiceRegistries) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service`). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html) +func (o ServiceServiceRegistriesOutput) RegistryArn() pulumi.StringOutput { + return o.ApplyT(func(v ServiceServiceRegistries) string { return v.RegistryArn }).(pulumi.StringOutput) +} + +type ServiceServiceRegistriesPtrOutput struct{ *pulumi.OutputState } + +func (ServiceServiceRegistriesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceServiceRegistries)(nil)).Elem() +} + +func (o ServiceServiceRegistriesPtrOutput) ToServiceServiceRegistriesPtrOutput() ServiceServiceRegistriesPtrOutput { + return o +} + +func (o ServiceServiceRegistriesPtrOutput) ToServiceServiceRegistriesPtrOutputWithContext(ctx context.Context) ServiceServiceRegistriesPtrOutput { + return o +} + +func (o ServiceServiceRegistriesPtrOutput) Elem() ServiceServiceRegistriesOutput { + return o.ApplyT(func(v *ServiceServiceRegistries) ServiceServiceRegistries { + if v != nil { + return *v + } + var ret ServiceServiceRegistries + return ret + }).(ServiceServiceRegistriesOutput) +} + +// Container name value, already specified in the task definition, to be used for your service discovery service. +func (o ServiceServiceRegistriesPtrOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceServiceRegistries) *string { + if v == nil { + return nil + } + return v.ContainerName + }).(pulumi.StringPtrOutput) +} + +// Port value, already specified in the task definition, to be used for your service discovery service. +func (o ServiceServiceRegistriesPtrOutput) ContainerPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceServiceRegistries) *int { + if v == nil { + return nil + } + return v.ContainerPort + }).(pulumi.IntPtrOutput) +} + +// Port value used if your Service Discovery service specified an SRV record. +func (o ServiceServiceRegistriesPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceServiceRegistries) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service`). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html) +func (o ServiceServiceRegistriesPtrOutput) RegistryArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceServiceRegistries) *string { + if v == nil { + return nil + } + return &v.RegistryArn + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionEphemeralStorage struct { + // The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. + SizeInGib int `pulumi:"sizeInGib"` +} + +// TaskDefinitionEphemeralStorageInput is an input type that accepts TaskDefinitionEphemeralStorageArgs and TaskDefinitionEphemeralStorageOutput values. +// You can construct a concrete instance of `TaskDefinitionEphemeralStorageInput` via: +// +// TaskDefinitionEphemeralStorageArgs{...} +type TaskDefinitionEphemeralStorageInput interface { + pulumi.Input + + ToTaskDefinitionEphemeralStorageOutput() TaskDefinitionEphemeralStorageOutput + ToTaskDefinitionEphemeralStorageOutputWithContext(context.Context) TaskDefinitionEphemeralStorageOutput +} + +type TaskDefinitionEphemeralStorageArgs struct { + // The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. + SizeInGib pulumi.IntInput `pulumi:"sizeInGib"` +} + +func (TaskDefinitionEphemeralStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionEphemeralStorage)(nil)).Elem() +} + +func (i TaskDefinitionEphemeralStorageArgs) ToTaskDefinitionEphemeralStorageOutput() TaskDefinitionEphemeralStorageOutput { + return i.ToTaskDefinitionEphemeralStorageOutputWithContext(context.Background()) +} + +func (i TaskDefinitionEphemeralStorageArgs) ToTaskDefinitionEphemeralStorageOutputWithContext(ctx context.Context) TaskDefinitionEphemeralStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionEphemeralStorageOutput) +} + +func (i TaskDefinitionEphemeralStorageArgs) ToTaskDefinitionEphemeralStoragePtrOutput() TaskDefinitionEphemeralStoragePtrOutput { + return i.ToTaskDefinitionEphemeralStoragePtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionEphemeralStorageArgs) ToTaskDefinitionEphemeralStoragePtrOutputWithContext(ctx context.Context) TaskDefinitionEphemeralStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionEphemeralStorageOutput).ToTaskDefinitionEphemeralStoragePtrOutputWithContext(ctx) +} + +// TaskDefinitionEphemeralStoragePtrInput is an input type that accepts TaskDefinitionEphemeralStorageArgs, TaskDefinitionEphemeralStoragePtr and TaskDefinitionEphemeralStoragePtrOutput values. +// You can construct a concrete instance of `TaskDefinitionEphemeralStoragePtrInput` via: +// +// TaskDefinitionEphemeralStorageArgs{...} +// +// or: +// +// nil +type TaskDefinitionEphemeralStoragePtrInput interface { + pulumi.Input + + ToTaskDefinitionEphemeralStoragePtrOutput() TaskDefinitionEphemeralStoragePtrOutput + ToTaskDefinitionEphemeralStoragePtrOutputWithContext(context.Context) TaskDefinitionEphemeralStoragePtrOutput +} + +type taskDefinitionEphemeralStoragePtrType TaskDefinitionEphemeralStorageArgs + +func TaskDefinitionEphemeralStoragePtr(v *TaskDefinitionEphemeralStorageArgs) TaskDefinitionEphemeralStoragePtrInput { + return (*taskDefinitionEphemeralStoragePtrType)(v) +} + +func (*taskDefinitionEphemeralStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionEphemeralStorage)(nil)).Elem() +} + +func (i *taskDefinitionEphemeralStoragePtrType) ToTaskDefinitionEphemeralStoragePtrOutput() TaskDefinitionEphemeralStoragePtrOutput { + return i.ToTaskDefinitionEphemeralStoragePtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionEphemeralStoragePtrType) ToTaskDefinitionEphemeralStoragePtrOutputWithContext(ctx context.Context) TaskDefinitionEphemeralStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionEphemeralStoragePtrOutput) +} + +type TaskDefinitionEphemeralStorageOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionEphemeralStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionEphemeralStorage)(nil)).Elem() +} + +func (o TaskDefinitionEphemeralStorageOutput) ToTaskDefinitionEphemeralStorageOutput() TaskDefinitionEphemeralStorageOutput { + return o +} + +func (o TaskDefinitionEphemeralStorageOutput) ToTaskDefinitionEphemeralStorageOutputWithContext(ctx context.Context) TaskDefinitionEphemeralStorageOutput { + return o +} + +func (o TaskDefinitionEphemeralStorageOutput) ToTaskDefinitionEphemeralStoragePtrOutput() TaskDefinitionEphemeralStoragePtrOutput { + return o.ToTaskDefinitionEphemeralStoragePtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionEphemeralStorageOutput) ToTaskDefinitionEphemeralStoragePtrOutputWithContext(ctx context.Context) TaskDefinitionEphemeralStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionEphemeralStorage) *TaskDefinitionEphemeralStorage { + return &v + }).(TaskDefinitionEphemeralStoragePtrOutput) +} + +// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. +func (o TaskDefinitionEphemeralStorageOutput) SizeInGib() pulumi.IntOutput { + return o.ApplyT(func(v TaskDefinitionEphemeralStorage) int { return v.SizeInGib }).(pulumi.IntOutput) +} + +type TaskDefinitionEphemeralStoragePtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionEphemeralStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionEphemeralStorage)(nil)).Elem() +} + +func (o TaskDefinitionEphemeralStoragePtrOutput) ToTaskDefinitionEphemeralStoragePtrOutput() TaskDefinitionEphemeralStoragePtrOutput { + return o +} + +func (o TaskDefinitionEphemeralStoragePtrOutput) ToTaskDefinitionEphemeralStoragePtrOutputWithContext(ctx context.Context) TaskDefinitionEphemeralStoragePtrOutput { + return o +} + +func (o TaskDefinitionEphemeralStoragePtrOutput) Elem() TaskDefinitionEphemeralStorageOutput { + return o.ApplyT(func(v *TaskDefinitionEphemeralStorage) TaskDefinitionEphemeralStorage { + if v != nil { + return *v + } + var ret TaskDefinitionEphemeralStorage + return ret + }).(TaskDefinitionEphemeralStorageOutput) +} + +// The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is `21` GiB and the maximum supported value is `200` GiB. +func (o TaskDefinitionEphemeralStoragePtrOutput) SizeInGib() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionEphemeralStorage) *int { + if v == nil { + return nil + } + return &v.SizeInGib + }).(pulumi.IntPtrOutput) +} + +type TaskDefinitionInferenceAccelerator struct { + // Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement. + DeviceName string `pulumi:"deviceName"` + // Elastic Inference accelerator type to use. + DeviceType string `pulumi:"deviceType"` +} + +// TaskDefinitionInferenceAcceleratorInput is an input type that accepts TaskDefinitionInferenceAcceleratorArgs and TaskDefinitionInferenceAcceleratorOutput values. +// You can construct a concrete instance of `TaskDefinitionInferenceAcceleratorInput` via: +// +// TaskDefinitionInferenceAcceleratorArgs{...} +type TaskDefinitionInferenceAcceleratorInput interface { + pulumi.Input + + ToTaskDefinitionInferenceAcceleratorOutput() TaskDefinitionInferenceAcceleratorOutput + ToTaskDefinitionInferenceAcceleratorOutputWithContext(context.Context) TaskDefinitionInferenceAcceleratorOutput +} + +type TaskDefinitionInferenceAcceleratorArgs struct { + // Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement. + DeviceName pulumi.StringInput `pulumi:"deviceName"` + // Elastic Inference accelerator type to use. + DeviceType pulumi.StringInput `pulumi:"deviceType"` +} + +func (TaskDefinitionInferenceAcceleratorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionInferenceAccelerator)(nil)).Elem() +} + +func (i TaskDefinitionInferenceAcceleratorArgs) ToTaskDefinitionInferenceAcceleratorOutput() TaskDefinitionInferenceAcceleratorOutput { + return i.ToTaskDefinitionInferenceAcceleratorOutputWithContext(context.Background()) +} + +func (i TaskDefinitionInferenceAcceleratorArgs) ToTaskDefinitionInferenceAcceleratorOutputWithContext(ctx context.Context) TaskDefinitionInferenceAcceleratorOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionInferenceAcceleratorOutput) +} + +// TaskDefinitionInferenceAcceleratorArrayInput is an input type that accepts TaskDefinitionInferenceAcceleratorArray and TaskDefinitionInferenceAcceleratorArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionInferenceAcceleratorArrayInput` via: +// +// TaskDefinitionInferenceAcceleratorArray{ TaskDefinitionInferenceAcceleratorArgs{...} } +type TaskDefinitionInferenceAcceleratorArrayInput interface { + pulumi.Input + + ToTaskDefinitionInferenceAcceleratorArrayOutput() TaskDefinitionInferenceAcceleratorArrayOutput + ToTaskDefinitionInferenceAcceleratorArrayOutputWithContext(context.Context) TaskDefinitionInferenceAcceleratorArrayOutput +} + +type TaskDefinitionInferenceAcceleratorArray []TaskDefinitionInferenceAcceleratorInput + +func (TaskDefinitionInferenceAcceleratorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionInferenceAccelerator)(nil)).Elem() +} + +func (i TaskDefinitionInferenceAcceleratorArray) ToTaskDefinitionInferenceAcceleratorArrayOutput() TaskDefinitionInferenceAcceleratorArrayOutput { + return i.ToTaskDefinitionInferenceAcceleratorArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionInferenceAcceleratorArray) ToTaskDefinitionInferenceAcceleratorArrayOutputWithContext(ctx context.Context) TaskDefinitionInferenceAcceleratorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionInferenceAcceleratorArrayOutput) +} + +type TaskDefinitionInferenceAcceleratorOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionInferenceAcceleratorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionInferenceAccelerator)(nil)).Elem() +} + +func (o TaskDefinitionInferenceAcceleratorOutput) ToTaskDefinitionInferenceAcceleratorOutput() TaskDefinitionInferenceAcceleratorOutput { + return o +} + +func (o TaskDefinitionInferenceAcceleratorOutput) ToTaskDefinitionInferenceAcceleratorOutputWithContext(ctx context.Context) TaskDefinitionInferenceAcceleratorOutput { + return o +} + +// Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement. +func (o TaskDefinitionInferenceAcceleratorOutput) DeviceName() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionInferenceAccelerator) string { return v.DeviceName }).(pulumi.StringOutput) +} + +// Elastic Inference accelerator type to use. +func (o TaskDefinitionInferenceAcceleratorOutput) DeviceType() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionInferenceAccelerator) string { return v.DeviceType }).(pulumi.StringOutput) +} + +type TaskDefinitionInferenceAcceleratorArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionInferenceAcceleratorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionInferenceAccelerator)(nil)).Elem() +} + +func (o TaskDefinitionInferenceAcceleratorArrayOutput) ToTaskDefinitionInferenceAcceleratorArrayOutput() TaskDefinitionInferenceAcceleratorArrayOutput { + return o +} + +func (o TaskDefinitionInferenceAcceleratorArrayOutput) ToTaskDefinitionInferenceAcceleratorArrayOutputWithContext(ctx context.Context) TaskDefinitionInferenceAcceleratorArrayOutput { + return o +} + +func (o TaskDefinitionInferenceAcceleratorArrayOutput) Index(i pulumi.IntInput) TaskDefinitionInferenceAcceleratorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionInferenceAccelerator { + return vs[0].([]TaskDefinitionInferenceAccelerator)[vs[1].(int)] + }).(TaskDefinitionInferenceAcceleratorOutput) +} + +type TaskDefinitionPlacementConstraint struct { + // Cluster Query Language expression to apply to the constraint. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). + Expression *string `pulumi:"expression"` + // Type of constraint. Use `memberOf` to restrict selection to a group of valid candidates. Note that `distinctInstance` is not supported in task definitions. + Type string `pulumi:"type"` +} + +// TaskDefinitionPlacementConstraintInput is an input type that accepts TaskDefinitionPlacementConstraintArgs and TaskDefinitionPlacementConstraintOutput values. +// You can construct a concrete instance of `TaskDefinitionPlacementConstraintInput` via: +// +// TaskDefinitionPlacementConstraintArgs{...} +type TaskDefinitionPlacementConstraintInput interface { + pulumi.Input + + ToTaskDefinitionPlacementConstraintOutput() TaskDefinitionPlacementConstraintOutput + ToTaskDefinitionPlacementConstraintOutputWithContext(context.Context) TaskDefinitionPlacementConstraintOutput +} + +type TaskDefinitionPlacementConstraintArgs struct { + // Cluster Query Language expression to apply to the constraint. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). + Expression pulumi.StringPtrInput `pulumi:"expression"` + // Type of constraint. Use `memberOf` to restrict selection to a group of valid candidates. Note that `distinctInstance` is not supported in task definitions. + Type pulumi.StringInput `pulumi:"type"` +} + +func (TaskDefinitionPlacementConstraintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionPlacementConstraint)(nil)).Elem() +} + +func (i TaskDefinitionPlacementConstraintArgs) ToTaskDefinitionPlacementConstraintOutput() TaskDefinitionPlacementConstraintOutput { + return i.ToTaskDefinitionPlacementConstraintOutputWithContext(context.Background()) +} + +func (i TaskDefinitionPlacementConstraintArgs) ToTaskDefinitionPlacementConstraintOutputWithContext(ctx context.Context) TaskDefinitionPlacementConstraintOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionPlacementConstraintOutput) +} + +// TaskDefinitionPlacementConstraintArrayInput is an input type that accepts TaskDefinitionPlacementConstraintArray and TaskDefinitionPlacementConstraintArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionPlacementConstraintArrayInput` via: +// +// TaskDefinitionPlacementConstraintArray{ TaskDefinitionPlacementConstraintArgs{...} } +type TaskDefinitionPlacementConstraintArrayInput interface { + pulumi.Input + + ToTaskDefinitionPlacementConstraintArrayOutput() TaskDefinitionPlacementConstraintArrayOutput + ToTaskDefinitionPlacementConstraintArrayOutputWithContext(context.Context) TaskDefinitionPlacementConstraintArrayOutput +} + +type TaskDefinitionPlacementConstraintArray []TaskDefinitionPlacementConstraintInput + +func (TaskDefinitionPlacementConstraintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionPlacementConstraint)(nil)).Elem() +} + +func (i TaskDefinitionPlacementConstraintArray) ToTaskDefinitionPlacementConstraintArrayOutput() TaskDefinitionPlacementConstraintArrayOutput { + return i.ToTaskDefinitionPlacementConstraintArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionPlacementConstraintArray) ToTaskDefinitionPlacementConstraintArrayOutputWithContext(ctx context.Context) TaskDefinitionPlacementConstraintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionPlacementConstraintArrayOutput) +} + +type TaskDefinitionPlacementConstraintOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionPlacementConstraintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionPlacementConstraint)(nil)).Elem() +} + +func (o TaskDefinitionPlacementConstraintOutput) ToTaskDefinitionPlacementConstraintOutput() TaskDefinitionPlacementConstraintOutput { + return o +} + +func (o TaskDefinitionPlacementConstraintOutput) ToTaskDefinitionPlacementConstraintOutputWithContext(ctx context.Context) TaskDefinitionPlacementConstraintOutput { + return o +} + +// Cluster Query Language expression to apply to the constraint. For more information, see [Cluster Query Language in the Amazon EC2 Container Service Developer Guide](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html). +func (o TaskDefinitionPlacementConstraintOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionPlacementConstraint) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// Type of constraint. Use `memberOf` to restrict selection to a group of valid candidates. Note that `distinctInstance` is not supported in task definitions. +func (o TaskDefinitionPlacementConstraintOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionPlacementConstraint) string { return v.Type }).(pulumi.StringOutput) +} + +type TaskDefinitionPlacementConstraintArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionPlacementConstraintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionPlacementConstraint)(nil)).Elem() +} + +func (o TaskDefinitionPlacementConstraintArrayOutput) ToTaskDefinitionPlacementConstraintArrayOutput() TaskDefinitionPlacementConstraintArrayOutput { + return o +} + +func (o TaskDefinitionPlacementConstraintArrayOutput) ToTaskDefinitionPlacementConstraintArrayOutputWithContext(ctx context.Context) TaskDefinitionPlacementConstraintArrayOutput { + return o +} + +func (o TaskDefinitionPlacementConstraintArrayOutput) Index(i pulumi.IntInput) TaskDefinitionPlacementConstraintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionPlacementConstraint { + return vs[0].([]TaskDefinitionPlacementConstraint)[vs[1].(int)] + }).(TaskDefinitionPlacementConstraintOutput) +} + +type TaskDefinitionProxyConfiguration struct { + // Name of the container that will serve as the App Mesh proxy. + ContainerName string `pulumi:"containerName"` + // Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping. + Properties map[string]string `pulumi:"properties"` + // Proxy type. The default value is `APPMESH`. The only supported value is `APPMESH`. + Type *string `pulumi:"type"` +} + +// TaskDefinitionProxyConfigurationInput is an input type that accepts TaskDefinitionProxyConfigurationArgs and TaskDefinitionProxyConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionProxyConfigurationInput` via: +// +// TaskDefinitionProxyConfigurationArgs{...} +type TaskDefinitionProxyConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionProxyConfigurationOutput() TaskDefinitionProxyConfigurationOutput + ToTaskDefinitionProxyConfigurationOutputWithContext(context.Context) TaskDefinitionProxyConfigurationOutput +} + +type TaskDefinitionProxyConfigurationArgs struct { + // Name of the container that will serve as the App Mesh proxy. + ContainerName pulumi.StringInput `pulumi:"containerName"` + // Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping. + Properties pulumi.StringMapInput `pulumi:"properties"` + // Proxy type. The default value is `APPMESH`. The only supported value is `APPMESH`. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (TaskDefinitionProxyConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionProxyConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionProxyConfigurationArgs) ToTaskDefinitionProxyConfigurationOutput() TaskDefinitionProxyConfigurationOutput { + return i.ToTaskDefinitionProxyConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionProxyConfigurationArgs) ToTaskDefinitionProxyConfigurationOutputWithContext(ctx context.Context) TaskDefinitionProxyConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionProxyConfigurationOutput) +} + +func (i TaskDefinitionProxyConfigurationArgs) ToTaskDefinitionProxyConfigurationPtrOutput() TaskDefinitionProxyConfigurationPtrOutput { + return i.ToTaskDefinitionProxyConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionProxyConfigurationArgs) ToTaskDefinitionProxyConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionProxyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionProxyConfigurationOutput).ToTaskDefinitionProxyConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionProxyConfigurationPtrInput is an input type that accepts TaskDefinitionProxyConfigurationArgs, TaskDefinitionProxyConfigurationPtr and TaskDefinitionProxyConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionProxyConfigurationPtrInput` via: +// +// TaskDefinitionProxyConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionProxyConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionProxyConfigurationPtrOutput() TaskDefinitionProxyConfigurationPtrOutput + ToTaskDefinitionProxyConfigurationPtrOutputWithContext(context.Context) TaskDefinitionProxyConfigurationPtrOutput +} + +type taskDefinitionProxyConfigurationPtrType TaskDefinitionProxyConfigurationArgs + +func TaskDefinitionProxyConfigurationPtr(v *TaskDefinitionProxyConfigurationArgs) TaskDefinitionProxyConfigurationPtrInput { + return (*taskDefinitionProxyConfigurationPtrType)(v) +} + +func (*taskDefinitionProxyConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionProxyConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionProxyConfigurationPtrType) ToTaskDefinitionProxyConfigurationPtrOutput() TaskDefinitionProxyConfigurationPtrOutput { + return i.ToTaskDefinitionProxyConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionProxyConfigurationPtrType) ToTaskDefinitionProxyConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionProxyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionProxyConfigurationPtrOutput) +} + +type TaskDefinitionProxyConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionProxyConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionProxyConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionProxyConfigurationOutput) ToTaskDefinitionProxyConfigurationOutput() TaskDefinitionProxyConfigurationOutput { + return o +} + +func (o TaskDefinitionProxyConfigurationOutput) ToTaskDefinitionProxyConfigurationOutputWithContext(ctx context.Context) TaskDefinitionProxyConfigurationOutput { + return o +} + +func (o TaskDefinitionProxyConfigurationOutput) ToTaskDefinitionProxyConfigurationPtrOutput() TaskDefinitionProxyConfigurationPtrOutput { + return o.ToTaskDefinitionProxyConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionProxyConfigurationOutput) ToTaskDefinitionProxyConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionProxyConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionProxyConfiguration) *TaskDefinitionProxyConfiguration { + return &v + }).(TaskDefinitionProxyConfigurationPtrOutput) +} + +// Name of the container that will serve as the App Mesh proxy. +func (o TaskDefinitionProxyConfigurationOutput) ContainerName() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionProxyConfiguration) string { return v.ContainerName }).(pulumi.StringOutput) +} + +// Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping. +func (o TaskDefinitionProxyConfigurationOutput) Properties() pulumi.StringMapOutput { + return o.ApplyT(func(v TaskDefinitionProxyConfiguration) map[string]string { return v.Properties }).(pulumi.StringMapOutput) +} + +// Proxy type. The default value is `APPMESH`. The only supported value is `APPMESH`. +func (o TaskDefinitionProxyConfigurationOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionProxyConfiguration) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionProxyConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionProxyConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionProxyConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionProxyConfigurationPtrOutput) ToTaskDefinitionProxyConfigurationPtrOutput() TaskDefinitionProxyConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionProxyConfigurationPtrOutput) ToTaskDefinitionProxyConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionProxyConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionProxyConfigurationPtrOutput) Elem() TaskDefinitionProxyConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionProxyConfiguration) TaskDefinitionProxyConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionProxyConfiguration + return ret + }).(TaskDefinitionProxyConfigurationOutput) +} + +// Name of the container that will serve as the App Mesh proxy. +func (o TaskDefinitionProxyConfigurationPtrOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionProxyConfiguration) *string { + if v == nil { + return nil + } + return &v.ContainerName + }).(pulumi.StringPtrOutput) +} + +// Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping. +func (o TaskDefinitionProxyConfigurationPtrOutput) Properties() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskDefinitionProxyConfiguration) map[string]string { + if v == nil { + return nil + } + return v.Properties + }).(pulumi.StringMapOutput) +} + +// Proxy type. The default value is `APPMESH`. The only supported value is `APPMESH`. +func (o TaskDefinitionProxyConfigurationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionProxyConfiguration) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionRuntimePlatform struct { + // Must be set to either `X86_64` or `ARM64`; see [cpu architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) + CpuArchitecture *string `pulumi:"cpuArchitecture"` + // If the `requiresCompatibilities` is `FARGATE` this field is required; must be set to a valid option from the [operating system family in the runtime platform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) setting + OperatingSystemFamily *string `pulumi:"operatingSystemFamily"` +} + +// TaskDefinitionRuntimePlatformInput is an input type that accepts TaskDefinitionRuntimePlatformArgs and TaskDefinitionRuntimePlatformOutput values. +// You can construct a concrete instance of `TaskDefinitionRuntimePlatformInput` via: +// +// TaskDefinitionRuntimePlatformArgs{...} +type TaskDefinitionRuntimePlatformInput interface { + pulumi.Input + + ToTaskDefinitionRuntimePlatformOutput() TaskDefinitionRuntimePlatformOutput + ToTaskDefinitionRuntimePlatformOutputWithContext(context.Context) TaskDefinitionRuntimePlatformOutput +} + +type TaskDefinitionRuntimePlatformArgs struct { + // Must be set to either `X86_64` or `ARM64`; see [cpu architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) + CpuArchitecture pulumi.StringPtrInput `pulumi:"cpuArchitecture"` + // If the `requiresCompatibilities` is `FARGATE` this field is required; must be set to a valid option from the [operating system family in the runtime platform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) setting + OperatingSystemFamily pulumi.StringPtrInput `pulumi:"operatingSystemFamily"` +} + +func (TaskDefinitionRuntimePlatformArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionRuntimePlatform)(nil)).Elem() +} + +func (i TaskDefinitionRuntimePlatformArgs) ToTaskDefinitionRuntimePlatformOutput() TaskDefinitionRuntimePlatformOutput { + return i.ToTaskDefinitionRuntimePlatformOutputWithContext(context.Background()) +} + +func (i TaskDefinitionRuntimePlatformArgs) ToTaskDefinitionRuntimePlatformOutputWithContext(ctx context.Context) TaskDefinitionRuntimePlatformOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionRuntimePlatformOutput) +} + +func (i TaskDefinitionRuntimePlatformArgs) ToTaskDefinitionRuntimePlatformPtrOutput() TaskDefinitionRuntimePlatformPtrOutput { + return i.ToTaskDefinitionRuntimePlatformPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionRuntimePlatformArgs) ToTaskDefinitionRuntimePlatformPtrOutputWithContext(ctx context.Context) TaskDefinitionRuntimePlatformPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionRuntimePlatformOutput).ToTaskDefinitionRuntimePlatformPtrOutputWithContext(ctx) +} + +// TaskDefinitionRuntimePlatformPtrInput is an input type that accepts TaskDefinitionRuntimePlatformArgs, TaskDefinitionRuntimePlatformPtr and TaskDefinitionRuntimePlatformPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionRuntimePlatformPtrInput` via: +// +// TaskDefinitionRuntimePlatformArgs{...} +// +// or: +// +// nil +type TaskDefinitionRuntimePlatformPtrInput interface { + pulumi.Input + + ToTaskDefinitionRuntimePlatformPtrOutput() TaskDefinitionRuntimePlatformPtrOutput + ToTaskDefinitionRuntimePlatformPtrOutputWithContext(context.Context) TaskDefinitionRuntimePlatformPtrOutput +} + +type taskDefinitionRuntimePlatformPtrType TaskDefinitionRuntimePlatformArgs + +func TaskDefinitionRuntimePlatformPtr(v *TaskDefinitionRuntimePlatformArgs) TaskDefinitionRuntimePlatformPtrInput { + return (*taskDefinitionRuntimePlatformPtrType)(v) +} + +func (*taskDefinitionRuntimePlatformPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionRuntimePlatform)(nil)).Elem() +} + +func (i *taskDefinitionRuntimePlatformPtrType) ToTaskDefinitionRuntimePlatformPtrOutput() TaskDefinitionRuntimePlatformPtrOutput { + return i.ToTaskDefinitionRuntimePlatformPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionRuntimePlatformPtrType) ToTaskDefinitionRuntimePlatformPtrOutputWithContext(ctx context.Context) TaskDefinitionRuntimePlatformPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionRuntimePlatformPtrOutput) +} + +type TaskDefinitionRuntimePlatformOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionRuntimePlatformOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionRuntimePlatform)(nil)).Elem() +} + +func (o TaskDefinitionRuntimePlatformOutput) ToTaskDefinitionRuntimePlatformOutput() TaskDefinitionRuntimePlatformOutput { + return o +} + +func (o TaskDefinitionRuntimePlatformOutput) ToTaskDefinitionRuntimePlatformOutputWithContext(ctx context.Context) TaskDefinitionRuntimePlatformOutput { + return o +} + +func (o TaskDefinitionRuntimePlatformOutput) ToTaskDefinitionRuntimePlatformPtrOutput() TaskDefinitionRuntimePlatformPtrOutput { + return o.ToTaskDefinitionRuntimePlatformPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionRuntimePlatformOutput) ToTaskDefinitionRuntimePlatformPtrOutputWithContext(ctx context.Context) TaskDefinitionRuntimePlatformPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionRuntimePlatform) *TaskDefinitionRuntimePlatform { + return &v + }).(TaskDefinitionRuntimePlatformPtrOutput) +} + +// Must be set to either `X86_64` or `ARM64`; see [cpu architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) +func (o TaskDefinitionRuntimePlatformOutput) CpuArchitecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionRuntimePlatform) *string { return v.CpuArchitecture }).(pulumi.StringPtrOutput) +} + +// If the `requiresCompatibilities` is `FARGATE` this field is required; must be set to a valid option from the [operating system family in the runtime platform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) setting +func (o TaskDefinitionRuntimePlatformOutput) OperatingSystemFamily() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionRuntimePlatform) *string { return v.OperatingSystemFamily }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionRuntimePlatformPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionRuntimePlatformPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionRuntimePlatform)(nil)).Elem() +} + +func (o TaskDefinitionRuntimePlatformPtrOutput) ToTaskDefinitionRuntimePlatformPtrOutput() TaskDefinitionRuntimePlatformPtrOutput { + return o +} + +func (o TaskDefinitionRuntimePlatformPtrOutput) ToTaskDefinitionRuntimePlatformPtrOutputWithContext(ctx context.Context) TaskDefinitionRuntimePlatformPtrOutput { + return o +} + +func (o TaskDefinitionRuntimePlatformPtrOutput) Elem() TaskDefinitionRuntimePlatformOutput { + return o.ApplyT(func(v *TaskDefinitionRuntimePlatform) TaskDefinitionRuntimePlatform { + if v != nil { + return *v + } + var ret TaskDefinitionRuntimePlatform + return ret + }).(TaskDefinitionRuntimePlatformOutput) +} + +// Must be set to either `X86_64` or `ARM64`; see [cpu architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) +func (o TaskDefinitionRuntimePlatformPtrOutput) CpuArchitecture() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionRuntimePlatform) *string { + if v == nil { + return nil + } + return v.CpuArchitecture + }).(pulumi.StringPtrOutput) +} + +// If the `requiresCompatibilities` is `FARGATE` this field is required; must be set to a valid option from the [operating system family in the runtime platform](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#runtime-platform) setting +func (o TaskDefinitionRuntimePlatformPtrOutput) OperatingSystemFamily() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionRuntimePlatform) *string { + if v == nil { + return nil + } + return v.OperatingSystemFamily + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolume struct { + // Configuration block to configure a docker volume. Detailed below. + DockerVolumeConfiguration *TaskDefinitionVolumeDockerVolumeConfiguration `pulumi:"dockerVolumeConfiguration"` + // Configuration block for an EFS volume. Detailed below. + EfsVolumeConfiguration *TaskDefinitionVolumeEfsVolumeConfiguration `pulumi:"efsVolumeConfiguration"` + // Configuration block for an FSX Windows File Server volume. Detailed below. + FsxWindowsFileServerVolumeConfiguration *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration `pulumi:"fsxWindowsFileServerVolumeConfiguration"` + // Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished. + HostPath *string `pulumi:"hostPath"` + // Name of the volume. This name is referenced in the `sourceVolume` + // parameter of container definition in the `mountPoints` section. + Name string `pulumi:"name"` +} + +// TaskDefinitionVolumeInput is an input type that accepts TaskDefinitionVolumeArgs and TaskDefinitionVolumeOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeInput` via: +// +// TaskDefinitionVolumeArgs{...} +type TaskDefinitionVolumeInput interface { + pulumi.Input + + ToTaskDefinitionVolumeOutput() TaskDefinitionVolumeOutput + ToTaskDefinitionVolumeOutputWithContext(context.Context) TaskDefinitionVolumeOutput +} + +type TaskDefinitionVolumeArgs struct { + // Configuration block to configure a docker volume. Detailed below. + DockerVolumeConfiguration TaskDefinitionVolumeDockerVolumeConfigurationPtrInput `pulumi:"dockerVolumeConfiguration"` + // Configuration block for an EFS volume. Detailed below. + EfsVolumeConfiguration TaskDefinitionVolumeEfsVolumeConfigurationPtrInput `pulumi:"efsVolumeConfiguration"` + // Configuration block for an FSX Windows File Server volume. Detailed below. + FsxWindowsFileServerVolumeConfiguration TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrInput `pulumi:"fsxWindowsFileServerVolumeConfiguration"` + // Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished. + HostPath pulumi.StringPtrInput `pulumi:"hostPath"` + // Name of the volume. This name is referenced in the `sourceVolume` + // parameter of container definition in the `mountPoints` section. + Name pulumi.StringInput `pulumi:"name"` +} + +func (TaskDefinitionVolumeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolume)(nil)).Elem() +} + +func (i TaskDefinitionVolumeArgs) ToTaskDefinitionVolumeOutput() TaskDefinitionVolumeOutput { + return i.ToTaskDefinitionVolumeOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeArgs) ToTaskDefinitionVolumeOutputWithContext(ctx context.Context) TaskDefinitionVolumeOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeOutput) +} + +// TaskDefinitionVolumeArrayInput is an input type that accepts TaskDefinitionVolumeArray and TaskDefinitionVolumeArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeArrayInput` via: +// +// TaskDefinitionVolumeArray{ TaskDefinitionVolumeArgs{...} } +type TaskDefinitionVolumeArrayInput interface { + pulumi.Input + + ToTaskDefinitionVolumeArrayOutput() TaskDefinitionVolumeArrayOutput + ToTaskDefinitionVolumeArrayOutputWithContext(context.Context) TaskDefinitionVolumeArrayOutput +} + +type TaskDefinitionVolumeArray []TaskDefinitionVolumeInput + +func (TaskDefinitionVolumeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionVolume)(nil)).Elem() +} + +func (i TaskDefinitionVolumeArray) ToTaskDefinitionVolumeArrayOutput() TaskDefinitionVolumeArrayOutput { + return i.ToTaskDefinitionVolumeArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeArray) ToTaskDefinitionVolumeArrayOutputWithContext(ctx context.Context) TaskDefinitionVolumeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeArrayOutput) +} + +type TaskDefinitionVolumeOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolume)(nil)).Elem() +} + +func (o TaskDefinitionVolumeOutput) ToTaskDefinitionVolumeOutput() TaskDefinitionVolumeOutput { + return o +} + +func (o TaskDefinitionVolumeOutput) ToTaskDefinitionVolumeOutputWithContext(ctx context.Context) TaskDefinitionVolumeOutput { + return o +} + +// Configuration block to configure a docker volume. Detailed below. +func (o TaskDefinitionVolumeOutput) DockerVolumeConfiguration() TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolume) *TaskDefinitionVolumeDockerVolumeConfiguration { + return v.DockerVolumeConfiguration + }).(TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) +} + +// Configuration block for an EFS volume. Detailed below. +func (o TaskDefinitionVolumeOutput) EfsVolumeConfiguration() TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolume) *TaskDefinitionVolumeEfsVolumeConfiguration { + return v.EfsVolumeConfiguration + }).(TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) +} + +// Configuration block for an FSX Windows File Server volume. Detailed below. +func (o TaskDefinitionVolumeOutput) FsxWindowsFileServerVolumeConfiguration() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolume) *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration { + return v.FsxWindowsFileServerVolumeConfiguration + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) +} + +// Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished. +func (o TaskDefinitionVolumeOutput) HostPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolume) *string { return v.HostPath }).(pulumi.StringPtrOutput) +} + +// Name of the volume. This name is referenced in the `sourceVolume` +// parameter of container definition in the `mountPoints` section. +func (o TaskDefinitionVolumeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionVolume) string { return v.Name }).(pulumi.StringOutput) +} + +type TaskDefinitionVolumeArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionVolume)(nil)).Elem() +} + +func (o TaskDefinitionVolumeArrayOutput) ToTaskDefinitionVolumeArrayOutput() TaskDefinitionVolumeArrayOutput { + return o +} + +func (o TaskDefinitionVolumeArrayOutput) ToTaskDefinitionVolumeArrayOutputWithContext(ctx context.Context) TaskDefinitionVolumeArrayOutput { + return o +} + +func (o TaskDefinitionVolumeArrayOutput) Index(i pulumi.IntInput) TaskDefinitionVolumeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionVolume { + return vs[0].([]TaskDefinitionVolume)[vs[1].(int)] + }).(TaskDefinitionVolumeOutput) +} + +type TaskDefinitionVolumeDockerVolumeConfiguration struct { + // If this value is `true`, the Docker volume is created if it does not already exist. *Note*: This field is only used if the scope is `shared`. + Autoprovision *bool `pulumi:"autoprovision"` + // Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. + Driver *string `pulumi:"driver"` + // Map of Docker driver specific options. + DriverOpts map[string]string `pulumi:"driverOpts"` + // Map of custom metadata to add to your Docker volume. + Labels map[string]string `pulumi:"labels"` + // Scope for the Docker volume, which determines its lifecycle, either `task` or `shared`. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as `shared` persist after the task stops. + Scope *string `pulumi:"scope"` +} + +// TaskDefinitionVolumeDockerVolumeConfigurationInput is an input type that accepts TaskDefinitionVolumeDockerVolumeConfigurationArgs and TaskDefinitionVolumeDockerVolumeConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeDockerVolumeConfigurationInput` via: +// +// TaskDefinitionVolumeDockerVolumeConfigurationArgs{...} +type TaskDefinitionVolumeDockerVolumeConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionVolumeDockerVolumeConfigurationOutput() TaskDefinitionVolumeDockerVolumeConfigurationOutput + ToTaskDefinitionVolumeDockerVolumeConfigurationOutputWithContext(context.Context) TaskDefinitionVolumeDockerVolumeConfigurationOutput +} + +type TaskDefinitionVolumeDockerVolumeConfigurationArgs struct { + // If this value is `true`, the Docker volume is created if it does not already exist. *Note*: This field is only used if the scope is `shared`. + Autoprovision pulumi.BoolPtrInput `pulumi:"autoprovision"` + // Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // Map of Docker driver specific options. + DriverOpts pulumi.StringMapInput `pulumi:"driverOpts"` + // Map of custom metadata to add to your Docker volume. + Labels pulumi.StringMapInput `pulumi:"labels"` + // Scope for the Docker volume, which determines its lifecycle, either `task` or `shared`. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as `shared` persist after the task stops. + Scope pulumi.StringPtrInput `pulumi:"scope"` +} + +func (TaskDefinitionVolumeDockerVolumeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeDockerVolumeConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionVolumeDockerVolumeConfigurationArgs) ToTaskDefinitionVolumeDockerVolumeConfigurationOutput() TaskDefinitionVolumeDockerVolumeConfigurationOutput { + return i.ToTaskDefinitionVolumeDockerVolumeConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeDockerVolumeConfigurationArgs) ToTaskDefinitionVolumeDockerVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionVolumeDockerVolumeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeDockerVolumeConfigurationOutput) +} + +func (i TaskDefinitionVolumeDockerVolumeConfigurationArgs) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutput() TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeDockerVolumeConfigurationArgs) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeDockerVolumeConfigurationOutput).ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionVolumeDockerVolumeConfigurationPtrInput is an input type that accepts TaskDefinitionVolumeDockerVolumeConfigurationArgs, TaskDefinitionVolumeDockerVolumeConfigurationPtr and TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeDockerVolumeConfigurationPtrInput` via: +// +// TaskDefinitionVolumeDockerVolumeConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionVolumeDockerVolumeConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutput() TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput + ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(context.Context) TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput +} + +type taskDefinitionVolumeDockerVolumeConfigurationPtrType TaskDefinitionVolumeDockerVolumeConfigurationArgs + +func TaskDefinitionVolumeDockerVolumeConfigurationPtr(v *TaskDefinitionVolumeDockerVolumeConfigurationArgs) TaskDefinitionVolumeDockerVolumeConfigurationPtrInput { + return (*taskDefinitionVolumeDockerVolumeConfigurationPtrType)(v) +} + +func (*taskDefinitionVolumeDockerVolumeConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeDockerVolumeConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionVolumeDockerVolumeConfigurationPtrType) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutput() TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionVolumeDockerVolumeConfigurationPtrType) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) +} + +type TaskDefinitionVolumeDockerVolumeConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeDockerVolumeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeDockerVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) ToTaskDefinitionVolumeDockerVolumeConfigurationOutput() TaskDefinitionVolumeDockerVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) ToTaskDefinitionVolumeDockerVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionVolumeDockerVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutput() TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return o.ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionVolumeDockerVolumeConfiguration) *TaskDefinitionVolumeDockerVolumeConfiguration { + return &v + }).(TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) +} + +// If this value is `true`, the Docker volume is created if it does not already exist. *Note*: This field is only used if the scope is `shared`. +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) Autoprovision() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeDockerVolumeConfiguration) *bool { return v.Autoprovision }).(pulumi.BoolPtrOutput) +} + +// Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeDockerVolumeConfiguration) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// Map of Docker driver specific options. +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) DriverOpts() pulumi.StringMapOutput { + return o.ApplyT(func(v TaskDefinitionVolumeDockerVolumeConfiguration) map[string]string { return v.DriverOpts }).(pulumi.StringMapOutput) +} + +// Map of custom metadata to add to your Docker volume. +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v TaskDefinitionVolumeDockerVolumeConfiguration) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +// Scope for the Docker volume, which determines its lifecycle, either `task` or `shared`. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as `shared` persist after the task stops. +func (o TaskDefinitionVolumeDockerVolumeConfigurationOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeDockerVolumeConfiguration) *string { return v.Scope }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeDockerVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutput() TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) ToTaskDefinitionVolumeDockerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) Elem() TaskDefinitionVolumeDockerVolumeConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeDockerVolumeConfiguration) TaskDefinitionVolumeDockerVolumeConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionVolumeDockerVolumeConfiguration + return ret + }).(TaskDefinitionVolumeDockerVolumeConfigurationOutput) +} + +// If this value is `true`, the Docker volume is created if it does not already exist. *Note*: This field is only used if the scope is `shared`. +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) Autoprovision() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeDockerVolumeConfiguration) *bool { + if v == nil { + return nil + } + return v.Autoprovision + }).(pulumi.BoolPtrOutput) +} + +// Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeDockerVolumeConfiguration) *string { + if v == nil { + return nil + } + return v.Driver + }).(pulumi.StringPtrOutput) +} + +// Map of Docker driver specific options. +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) DriverOpts() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeDockerVolumeConfiguration) map[string]string { + if v == nil { + return nil + } + return v.DriverOpts + }).(pulumi.StringMapOutput) +} + +// Map of custom metadata to add to your Docker volume. +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeDockerVolumeConfiguration) map[string]string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringMapOutput) +} + +// Scope for the Docker volume, which determines its lifecycle, either `task` or `shared`. Docker volumes that are scoped to a `task` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as `shared` persist after the task stops. +func (o TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput) Scope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeDockerVolumeConfiguration) *string { + if v == nil { + return nil + } + return v.Scope + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolumeEfsVolumeConfiguration struct { + // Configuration block for authorization for the Amazon EFS file system. Detailed below. + AuthorizationConfig *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig `pulumi:"authorizationConfig"` + // ID of the EFS File System. + FileSystemId string `pulumi:"fileSystemId"` + // Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorizationConfig`. + RootDirectory *string `pulumi:"rootDirectory"` + // Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. + TransitEncryption *string `pulumi:"transitEncryption"` + // Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. + TransitEncryptionPort *int `pulumi:"transitEncryptionPort"` +} + +// TaskDefinitionVolumeEfsVolumeConfigurationInput is an input type that accepts TaskDefinitionVolumeEfsVolumeConfigurationArgs and TaskDefinitionVolumeEfsVolumeConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeEfsVolumeConfigurationInput` via: +// +// TaskDefinitionVolumeEfsVolumeConfigurationArgs{...} +type TaskDefinitionVolumeEfsVolumeConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionVolumeEfsVolumeConfigurationOutput() TaskDefinitionVolumeEfsVolumeConfigurationOutput + ToTaskDefinitionVolumeEfsVolumeConfigurationOutputWithContext(context.Context) TaskDefinitionVolumeEfsVolumeConfigurationOutput +} + +type TaskDefinitionVolumeEfsVolumeConfigurationArgs struct { + // Configuration block for authorization for the Amazon EFS file system. Detailed below. + AuthorizationConfig TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrInput `pulumi:"authorizationConfig"` + // ID of the EFS File System. + FileSystemId pulumi.StringInput `pulumi:"fileSystemId"` + // Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorizationConfig`. + RootDirectory pulumi.StringPtrInput `pulumi:"rootDirectory"` + // Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. + TransitEncryption pulumi.StringPtrInput `pulumi:"transitEncryption"` + // Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. + TransitEncryptionPort pulumi.IntPtrInput `pulumi:"transitEncryptionPort"` +} + +func (TaskDefinitionVolumeEfsVolumeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationOutput() TaskDefinitionVolumeEfsVolumeConfigurationOutput { + return i.ToTaskDefinitionVolumeEfsVolumeConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeEfsVolumeConfigurationOutput) +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeEfsVolumeConfigurationOutput).ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionVolumeEfsVolumeConfigurationPtrInput is an input type that accepts TaskDefinitionVolumeEfsVolumeConfigurationArgs, TaskDefinitionVolumeEfsVolumeConfigurationPtr and TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeEfsVolumeConfigurationPtrInput` via: +// +// TaskDefinitionVolumeEfsVolumeConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionVolumeEfsVolumeConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput + ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(context.Context) TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput +} + +type taskDefinitionVolumeEfsVolumeConfigurationPtrType TaskDefinitionVolumeEfsVolumeConfigurationArgs + +func TaskDefinitionVolumeEfsVolumeConfigurationPtr(v *TaskDefinitionVolumeEfsVolumeConfigurationArgs) TaskDefinitionVolumeEfsVolumeConfigurationPtrInput { + return (*taskDefinitionVolumeEfsVolumeConfigurationPtrType)(v) +} + +func (*taskDefinitionVolumeEfsVolumeConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeEfsVolumeConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionVolumeEfsVolumeConfigurationPtrType) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionVolumeEfsVolumeConfigurationPtrType) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) +} + +type TaskDefinitionVolumeEfsVolumeConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeEfsVolumeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationOutput() TaskDefinitionVolumeEfsVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return o.ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionVolumeEfsVolumeConfiguration) *TaskDefinitionVolumeEfsVolumeConfiguration { + return &v + }).(TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) +} + +// Configuration block for authorization for the Amazon EFS file system. Detailed below. +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) AuthorizationConfig() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfiguration) *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig { + return v.AuthorizationConfig + }).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) +} + +// ID of the EFS File System. +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) FileSystemId() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfiguration) string { return v.FileSystemId }).(pulumi.StringOutput) +} + +// Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorizationConfig`. +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) RootDirectory() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfiguration) *string { return v.RootDirectory }).(pulumi.StringPtrOutput) +} + +// Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) TransitEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfiguration) *string { return v.TransitEncryption }).(pulumi.StringPtrOutput) +} + +// Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. +func (o TaskDefinitionVolumeEfsVolumeConfigurationOutput) TransitEncryptionPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfiguration) *int { return v.TransitEncryptionPort }).(pulumi.IntPtrOutput) +} + +type TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeEfsVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) Elem() TaskDefinitionVolumeEfsVolumeConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfiguration) TaskDefinitionVolumeEfsVolumeConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionVolumeEfsVolumeConfiguration + return ret + }).(TaskDefinitionVolumeEfsVolumeConfigurationOutput) +} + +// Configuration block for authorization for the Amazon EFS file system. Detailed below. +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) AuthorizationConfig() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfiguration) *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig { + if v == nil { + return nil + } + return v.AuthorizationConfig + }).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) +} + +// ID of the EFS File System. +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) FileSystemId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfiguration) *string { + if v == nil { + return nil + } + return &v.FileSystemId + }).(pulumi.StringPtrOutput) +} + +// Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using `authorizationConfig`. +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) RootDirectory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfiguration) *string { + if v == nil { + return nil + } + return v.RootDirectory + }).(pulumi.StringPtrOutput) +} + +// Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) TransitEncryption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfiguration) *string { + if v == nil { + return nil + } + return v.TransitEncryption + }).(pulumi.StringPtrOutput) +} + +// Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. +func (o TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput) TransitEncryptionPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfiguration) *int { + if v == nil { + return nil + } + return v.TransitEncryptionPort + }).(pulumi.IntPtrOutput) +} + +type TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig struct { + // Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration. + AccessPointId *string `pulumi:"accessPointId"` + // Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. + Iam *string `pulumi:"iam"` +} + +// TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigInput is an input type that accepts TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs and TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigInput` via: +// +// TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{...} +type TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigInput interface { + pulumi.Input + + ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput + ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutputWithContext(context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput +} + +type TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs struct { + // Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration. + AccessPointId pulumi.StringPtrInput `pulumi:"accessPointId"` + // Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. + Iam pulumi.StringPtrInput `pulumi:"iam"` +} + +func (TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput { + return i.ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return i.ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput).ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx) +} + +// TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrInput is an input type that accepts TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs, TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtr and TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrInput` via: +// +// TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{...} +// +// or: +// +// nil +type TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrInput interface { + pulumi.Input + + ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput + ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput +} + +type taskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrType TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs + +func TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtr(v *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrInput { + return (*taskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrType)(v) +} + +func (*taskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (i *taskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrType) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return i.ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrType) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) +} + +type TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig) *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig { + return &v + }).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) +} + +// Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration. +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) AccessPointId() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig) *string { return v.AccessPointId }).(pulumi.StringPtrOutput) +} + +// Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) Iam() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig) *string { return v.Iam }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) ToTaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput { + return o +} + +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) Elem() TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig) TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig { + if v != nil { + return *v + } + var ret TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig + return ret + }).(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput) +} + +// Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration. +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) AccessPointId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig) *string { + if v == nil { + return nil + } + return v.AccessPointId + }).(pulumi.StringPtrOutput) +} + +// Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: `ENABLED`, `DISABLED`. If this parameter is omitted, the default value of `DISABLED` is used. +func (o TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput) Iam() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig) *string { + if v == nil { + return nil + } + return v.Iam + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration struct { + // Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below. + AuthorizationConfig TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig `pulumi:"authorizationConfig"` + // The Amazon FSx for Windows File Server file system ID to use. + FileSystemId string `pulumi:"fileSystemId"` + // The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host. + RootDirectory string `pulumi:"rootDirectory"` +} + +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationInput is an input type that accepts TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs and TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationInput` via: +// +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{...} +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutputWithContext(context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs struct { + // Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below. + AuthorizationConfig TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput `pulumi:"authorizationConfig"` + // The Amazon FSx for Windows File Server file system ID to use. + FileSystemId pulumi.StringInput `pulumi:"fileSystemId"` + // The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host. + RootDirectory pulumi.StringInput `pulumi:"rootDirectory"` +} + +func (TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput { + return i.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput).ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrInput is an input type that accepts TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs, TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtr and TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrInput` via: +// +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput +} + +type taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrType TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs + +func TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtr(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrInput { + return (*taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrType)(v) +} + +func (*taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrType) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return i.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrType) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return o.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration { + return &v + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) +} + +// Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) AuthorizationConfig() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig { + return v.AuthorizationConfig + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) +} + +// The Amazon FSx for Windows File Server file system ID to use. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) FileSystemId() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) string { return v.FileSystemId }).(pulumi.StringOutput) +} + +// The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) RootDirectory() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) string { return v.RootDirectory }).(pulumi.StringOutput) +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) Elem() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration + return ret + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput) +} + +// Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) AuthorizationConfig() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig { + if v == nil { + return nil + } + return &v.AuthorizationConfig + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) +} + +// The Amazon FSx for Windows File Server file system ID to use. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) FileSystemId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) *string { + if v == nil { + return nil + } + return &v.FileSystemId + }).(pulumi.StringPtrOutput) +} + +// The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput) RootDirectory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration) *string { + if v == nil { + return nil + } + return &v.RootDirectory + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig struct { + // The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials. + CredentialsParameter string `pulumi:"credentialsParameter"` + // A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. + Domain string `pulumi:"domain"` +} + +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput is an input type that accepts TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs and TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput` via: +// +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{...} +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput interface { + pulumi.Input + + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutputWithContext(context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs struct { + // The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials. + CredentialsParameter pulumi.StringInput `pulumi:"credentialsParameter"` + // A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. + Domain pulumi.StringInput `pulumi:"domain"` +} + +func (TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput { + return i.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return i.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput).ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx) +} + +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrInput is an input type that accepts TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs, TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtr and TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrInput` via: +// +// TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{...} +// +// or: +// +// nil +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrInput interface { + pulumi.Input + + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput + ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput +} + +type taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrType TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs + +func TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtr(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrInput { + return (*taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrType)(v) +} + +func (*taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (i *taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrType) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return i.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrType) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig) *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig { + return &v + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) +} + +// The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) CredentialsParameter() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig) string { + return v.CredentialsParameter + }).(pulumi.StringOutput) +} + +// A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) Domain() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig) string { + return v.Domain + }).(pulumi.StringOutput) +} + +type TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig)(nil)).Elem() +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) ToTaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutputWithContext(ctx context.Context) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput { + return o +} + +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) Elem() TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig) TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig { + if v != nil { + return *v + } + var ret TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig + return ret + }).(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput) +} + +// The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) CredentialsParameter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig) *string { + if v == nil { + return nil + } + return &v.CredentialsParameter + }).(pulumi.StringPtrOutput) +} + +// A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2. +func (o TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig) *string { + if v == nil { + return nil + } + return &v.Domain + }).(pulumi.StringPtrOutput) +} + +type TaskSetCapacityProviderStrategy struct { + // The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. + Base *int `pulumi:"base"` + // The short name or full Amazon Resource Name (ARN) of the capacity provider. + CapacityProvider string `pulumi:"capacityProvider"` + // The relative percentage of the total number of launched tasks that should use the specified capacity provider. + Weight int `pulumi:"weight"` +} + +// TaskSetCapacityProviderStrategyInput is an input type that accepts TaskSetCapacityProviderStrategyArgs and TaskSetCapacityProviderStrategyOutput values. +// You can construct a concrete instance of `TaskSetCapacityProviderStrategyInput` via: +// +// TaskSetCapacityProviderStrategyArgs{...} +type TaskSetCapacityProviderStrategyInput interface { + pulumi.Input + + ToTaskSetCapacityProviderStrategyOutput() TaskSetCapacityProviderStrategyOutput + ToTaskSetCapacityProviderStrategyOutputWithContext(context.Context) TaskSetCapacityProviderStrategyOutput +} + +type TaskSetCapacityProviderStrategyArgs struct { + // The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. + Base pulumi.IntPtrInput `pulumi:"base"` + // The short name or full Amazon Resource Name (ARN) of the capacity provider. + CapacityProvider pulumi.StringInput `pulumi:"capacityProvider"` + // The relative percentage of the total number of launched tasks that should use the specified capacity provider. + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (TaskSetCapacityProviderStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetCapacityProviderStrategy)(nil)).Elem() +} + +func (i TaskSetCapacityProviderStrategyArgs) ToTaskSetCapacityProviderStrategyOutput() TaskSetCapacityProviderStrategyOutput { + return i.ToTaskSetCapacityProviderStrategyOutputWithContext(context.Background()) +} + +func (i TaskSetCapacityProviderStrategyArgs) ToTaskSetCapacityProviderStrategyOutputWithContext(ctx context.Context) TaskSetCapacityProviderStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetCapacityProviderStrategyOutput) +} + +// TaskSetCapacityProviderStrategyArrayInput is an input type that accepts TaskSetCapacityProviderStrategyArray and TaskSetCapacityProviderStrategyArrayOutput values. +// You can construct a concrete instance of `TaskSetCapacityProviderStrategyArrayInput` via: +// +// TaskSetCapacityProviderStrategyArray{ TaskSetCapacityProviderStrategyArgs{...} } +type TaskSetCapacityProviderStrategyArrayInput interface { + pulumi.Input + + ToTaskSetCapacityProviderStrategyArrayOutput() TaskSetCapacityProviderStrategyArrayOutput + ToTaskSetCapacityProviderStrategyArrayOutputWithContext(context.Context) TaskSetCapacityProviderStrategyArrayOutput +} + +type TaskSetCapacityProviderStrategyArray []TaskSetCapacityProviderStrategyInput + +func (TaskSetCapacityProviderStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskSetCapacityProviderStrategy)(nil)).Elem() +} + +func (i TaskSetCapacityProviderStrategyArray) ToTaskSetCapacityProviderStrategyArrayOutput() TaskSetCapacityProviderStrategyArrayOutput { + return i.ToTaskSetCapacityProviderStrategyArrayOutputWithContext(context.Background()) +} + +func (i TaskSetCapacityProviderStrategyArray) ToTaskSetCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) TaskSetCapacityProviderStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetCapacityProviderStrategyArrayOutput) +} + +type TaskSetCapacityProviderStrategyOutput struct{ *pulumi.OutputState } + +func (TaskSetCapacityProviderStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetCapacityProviderStrategy)(nil)).Elem() +} + +func (o TaskSetCapacityProviderStrategyOutput) ToTaskSetCapacityProviderStrategyOutput() TaskSetCapacityProviderStrategyOutput { + return o +} + +func (o TaskSetCapacityProviderStrategyOutput) ToTaskSetCapacityProviderStrategyOutputWithContext(ctx context.Context) TaskSetCapacityProviderStrategyOutput { + return o +} + +// The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. +func (o TaskSetCapacityProviderStrategyOutput) Base() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskSetCapacityProviderStrategy) *int { return v.Base }).(pulumi.IntPtrOutput) +} + +// The short name or full Amazon Resource Name (ARN) of the capacity provider. +func (o TaskSetCapacityProviderStrategyOutput) CapacityProvider() pulumi.StringOutput { + return o.ApplyT(func(v TaskSetCapacityProviderStrategy) string { return v.CapacityProvider }).(pulumi.StringOutput) +} + +// The relative percentage of the total number of launched tasks that should use the specified capacity provider. +func (o TaskSetCapacityProviderStrategyOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v TaskSetCapacityProviderStrategy) int { return v.Weight }).(pulumi.IntOutput) +} + +type TaskSetCapacityProviderStrategyArrayOutput struct{ *pulumi.OutputState } + +func (TaskSetCapacityProviderStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskSetCapacityProviderStrategy)(nil)).Elem() +} + +func (o TaskSetCapacityProviderStrategyArrayOutput) ToTaskSetCapacityProviderStrategyArrayOutput() TaskSetCapacityProviderStrategyArrayOutput { + return o +} + +func (o TaskSetCapacityProviderStrategyArrayOutput) ToTaskSetCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) TaskSetCapacityProviderStrategyArrayOutput { + return o +} + +func (o TaskSetCapacityProviderStrategyArrayOutput) Index(i pulumi.IntInput) TaskSetCapacityProviderStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskSetCapacityProviderStrategy { + return vs[0].([]TaskSetCapacityProviderStrategy)[vs[1].(int)] + }).(TaskSetCapacityProviderStrategyOutput) +} + +type TaskSetLoadBalancer struct { + // The name of the container to associate with the load balancer (as it appears in a container definition). + ContainerName string `pulumi:"containerName"` + // The port on the container to associate with the load balancer. Defaults to `0` if not specified. + // + // > **Note:** Specifying multiple `loadBalancer` configurations is still not supported by AWS for ECS task set. + ContainerPort *int `pulumi:"containerPort"` + // The name of the ELB (Classic) to associate with the service. + LoadBalancerName *string `pulumi:"loadBalancerName"` + // The ARN of the Load Balancer target group to associate with the service. + TargetGroupArn *string `pulumi:"targetGroupArn"` +} + +// TaskSetLoadBalancerInput is an input type that accepts TaskSetLoadBalancerArgs and TaskSetLoadBalancerOutput values. +// You can construct a concrete instance of `TaskSetLoadBalancerInput` via: +// +// TaskSetLoadBalancerArgs{...} +type TaskSetLoadBalancerInput interface { + pulumi.Input + + ToTaskSetLoadBalancerOutput() TaskSetLoadBalancerOutput + ToTaskSetLoadBalancerOutputWithContext(context.Context) TaskSetLoadBalancerOutput +} + +type TaskSetLoadBalancerArgs struct { + // The name of the container to associate with the load balancer (as it appears in a container definition). + ContainerName pulumi.StringInput `pulumi:"containerName"` + // The port on the container to associate with the load balancer. Defaults to `0` if not specified. + // + // > **Note:** Specifying multiple `loadBalancer` configurations is still not supported by AWS for ECS task set. + ContainerPort pulumi.IntPtrInput `pulumi:"containerPort"` + // The name of the ELB (Classic) to associate with the service. + LoadBalancerName pulumi.StringPtrInput `pulumi:"loadBalancerName"` + // The ARN of the Load Balancer target group to associate with the service. + TargetGroupArn pulumi.StringPtrInput `pulumi:"targetGroupArn"` +} + +func (TaskSetLoadBalancerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetLoadBalancer)(nil)).Elem() +} + +func (i TaskSetLoadBalancerArgs) ToTaskSetLoadBalancerOutput() TaskSetLoadBalancerOutput { + return i.ToTaskSetLoadBalancerOutputWithContext(context.Background()) +} + +func (i TaskSetLoadBalancerArgs) ToTaskSetLoadBalancerOutputWithContext(ctx context.Context) TaskSetLoadBalancerOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetLoadBalancerOutput) +} + +// TaskSetLoadBalancerArrayInput is an input type that accepts TaskSetLoadBalancerArray and TaskSetLoadBalancerArrayOutput values. +// You can construct a concrete instance of `TaskSetLoadBalancerArrayInput` via: +// +// TaskSetLoadBalancerArray{ TaskSetLoadBalancerArgs{...} } +type TaskSetLoadBalancerArrayInput interface { + pulumi.Input + + ToTaskSetLoadBalancerArrayOutput() TaskSetLoadBalancerArrayOutput + ToTaskSetLoadBalancerArrayOutputWithContext(context.Context) TaskSetLoadBalancerArrayOutput +} + +type TaskSetLoadBalancerArray []TaskSetLoadBalancerInput + +func (TaskSetLoadBalancerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskSetLoadBalancer)(nil)).Elem() +} + +func (i TaskSetLoadBalancerArray) ToTaskSetLoadBalancerArrayOutput() TaskSetLoadBalancerArrayOutput { + return i.ToTaskSetLoadBalancerArrayOutputWithContext(context.Background()) +} + +func (i TaskSetLoadBalancerArray) ToTaskSetLoadBalancerArrayOutputWithContext(ctx context.Context) TaskSetLoadBalancerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetLoadBalancerArrayOutput) +} + +type TaskSetLoadBalancerOutput struct{ *pulumi.OutputState } + +func (TaskSetLoadBalancerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetLoadBalancer)(nil)).Elem() +} + +func (o TaskSetLoadBalancerOutput) ToTaskSetLoadBalancerOutput() TaskSetLoadBalancerOutput { + return o +} + +func (o TaskSetLoadBalancerOutput) ToTaskSetLoadBalancerOutputWithContext(ctx context.Context) TaskSetLoadBalancerOutput { + return o +} + +// The name of the container to associate with the load balancer (as it appears in a container definition). +func (o TaskSetLoadBalancerOutput) ContainerName() pulumi.StringOutput { + return o.ApplyT(func(v TaskSetLoadBalancer) string { return v.ContainerName }).(pulumi.StringOutput) +} + +// The port on the container to associate with the load balancer. Defaults to `0` if not specified. +// +// > **Note:** Specifying multiple `loadBalancer` configurations is still not supported by AWS for ECS task set. +func (o TaskSetLoadBalancerOutput) ContainerPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskSetLoadBalancer) *int { return v.ContainerPort }).(pulumi.IntPtrOutput) +} + +// The name of the ELB (Classic) to associate with the service. +func (o TaskSetLoadBalancerOutput) LoadBalancerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskSetLoadBalancer) *string { return v.LoadBalancerName }).(pulumi.StringPtrOutput) +} + +// The ARN of the Load Balancer target group to associate with the service. +func (o TaskSetLoadBalancerOutput) TargetGroupArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskSetLoadBalancer) *string { return v.TargetGroupArn }).(pulumi.StringPtrOutput) +} + +type TaskSetLoadBalancerArrayOutput struct{ *pulumi.OutputState } + +func (TaskSetLoadBalancerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskSetLoadBalancer)(nil)).Elem() +} + +func (o TaskSetLoadBalancerArrayOutput) ToTaskSetLoadBalancerArrayOutput() TaskSetLoadBalancerArrayOutput { + return o +} + +func (o TaskSetLoadBalancerArrayOutput) ToTaskSetLoadBalancerArrayOutputWithContext(ctx context.Context) TaskSetLoadBalancerArrayOutput { + return o +} + +func (o TaskSetLoadBalancerArrayOutput) Index(i pulumi.IntInput) TaskSetLoadBalancerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskSetLoadBalancer { + return vs[0].([]TaskSetLoadBalancer)[vs[1].(int)] + }).(TaskSetLoadBalancerOutput) +} + +type TaskSetNetworkConfiguration struct { + // Whether to assign a public IP address to the ENI (`FARGATE` launch type only). Valid values are `true` or `false`. Default `false`. + // + // For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html). + AssignPublicIp *bool `pulumi:"assignPublicIp"` + // The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. Maximum of 5. + SecurityGroups []string `pulumi:"securityGroups"` + // The subnets associated with the task or service. Maximum of 16. + Subnets []string `pulumi:"subnets"` +} + +// TaskSetNetworkConfigurationInput is an input type that accepts TaskSetNetworkConfigurationArgs and TaskSetNetworkConfigurationOutput values. +// You can construct a concrete instance of `TaskSetNetworkConfigurationInput` via: +// +// TaskSetNetworkConfigurationArgs{...} +type TaskSetNetworkConfigurationInput interface { + pulumi.Input + + ToTaskSetNetworkConfigurationOutput() TaskSetNetworkConfigurationOutput + ToTaskSetNetworkConfigurationOutputWithContext(context.Context) TaskSetNetworkConfigurationOutput +} + +type TaskSetNetworkConfigurationArgs struct { + // Whether to assign a public IP address to the ENI (`FARGATE` launch type only). Valid values are `true` or `false`. Default `false`. + // + // For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html). + AssignPublicIp pulumi.BoolPtrInput `pulumi:"assignPublicIp"` + // The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. Maximum of 5. + SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"` + // The subnets associated with the task or service. Maximum of 16. + Subnets pulumi.StringArrayInput `pulumi:"subnets"` +} + +func (TaskSetNetworkConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetNetworkConfiguration)(nil)).Elem() +} + +func (i TaskSetNetworkConfigurationArgs) ToTaskSetNetworkConfigurationOutput() TaskSetNetworkConfigurationOutput { + return i.ToTaskSetNetworkConfigurationOutputWithContext(context.Background()) +} + +func (i TaskSetNetworkConfigurationArgs) ToTaskSetNetworkConfigurationOutputWithContext(ctx context.Context) TaskSetNetworkConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetNetworkConfigurationOutput) +} + +func (i TaskSetNetworkConfigurationArgs) ToTaskSetNetworkConfigurationPtrOutput() TaskSetNetworkConfigurationPtrOutput { + return i.ToTaskSetNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskSetNetworkConfigurationArgs) ToTaskSetNetworkConfigurationPtrOutputWithContext(ctx context.Context) TaskSetNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetNetworkConfigurationOutput).ToTaskSetNetworkConfigurationPtrOutputWithContext(ctx) +} + +// TaskSetNetworkConfigurationPtrInput is an input type that accepts TaskSetNetworkConfigurationArgs, TaskSetNetworkConfigurationPtr and TaskSetNetworkConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskSetNetworkConfigurationPtrInput` via: +// +// TaskSetNetworkConfigurationArgs{...} +// +// or: +// +// nil +type TaskSetNetworkConfigurationPtrInput interface { + pulumi.Input + + ToTaskSetNetworkConfigurationPtrOutput() TaskSetNetworkConfigurationPtrOutput + ToTaskSetNetworkConfigurationPtrOutputWithContext(context.Context) TaskSetNetworkConfigurationPtrOutput +} + +type taskSetNetworkConfigurationPtrType TaskSetNetworkConfigurationArgs + +func TaskSetNetworkConfigurationPtr(v *TaskSetNetworkConfigurationArgs) TaskSetNetworkConfigurationPtrInput { + return (*taskSetNetworkConfigurationPtrType)(v) +} + +func (*taskSetNetworkConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSetNetworkConfiguration)(nil)).Elem() +} + +func (i *taskSetNetworkConfigurationPtrType) ToTaskSetNetworkConfigurationPtrOutput() TaskSetNetworkConfigurationPtrOutput { + return i.ToTaskSetNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskSetNetworkConfigurationPtrType) ToTaskSetNetworkConfigurationPtrOutputWithContext(ctx context.Context) TaskSetNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetNetworkConfigurationPtrOutput) +} + +type TaskSetNetworkConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskSetNetworkConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetNetworkConfiguration)(nil)).Elem() +} + +func (o TaskSetNetworkConfigurationOutput) ToTaskSetNetworkConfigurationOutput() TaskSetNetworkConfigurationOutput { + return o +} + +func (o TaskSetNetworkConfigurationOutput) ToTaskSetNetworkConfigurationOutputWithContext(ctx context.Context) TaskSetNetworkConfigurationOutput { + return o +} + +func (o TaskSetNetworkConfigurationOutput) ToTaskSetNetworkConfigurationPtrOutput() TaskSetNetworkConfigurationPtrOutput { + return o.ToTaskSetNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskSetNetworkConfigurationOutput) ToTaskSetNetworkConfigurationPtrOutputWithContext(ctx context.Context) TaskSetNetworkConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskSetNetworkConfiguration) *TaskSetNetworkConfiguration { + return &v + }).(TaskSetNetworkConfigurationPtrOutput) +} + +// Whether to assign a public IP address to the ENI (`FARGATE` launch type only). Valid values are `true` or `false`. Default `false`. +// +// For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html). +func (o TaskSetNetworkConfigurationOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskSetNetworkConfiguration) *bool { return v.AssignPublicIp }).(pulumi.BoolPtrOutput) +} + +// The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. Maximum of 5. +func (o TaskSetNetworkConfigurationOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskSetNetworkConfiguration) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) +} + +// The subnets associated with the task or service. Maximum of 16. +func (o TaskSetNetworkConfigurationOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskSetNetworkConfiguration) []string { return v.Subnets }).(pulumi.StringArrayOutput) +} + +type TaskSetNetworkConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskSetNetworkConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSetNetworkConfiguration)(nil)).Elem() +} + +func (o TaskSetNetworkConfigurationPtrOutput) ToTaskSetNetworkConfigurationPtrOutput() TaskSetNetworkConfigurationPtrOutput { + return o +} + +func (o TaskSetNetworkConfigurationPtrOutput) ToTaskSetNetworkConfigurationPtrOutputWithContext(ctx context.Context) TaskSetNetworkConfigurationPtrOutput { + return o +} + +func (o TaskSetNetworkConfigurationPtrOutput) Elem() TaskSetNetworkConfigurationOutput { + return o.ApplyT(func(v *TaskSetNetworkConfiguration) TaskSetNetworkConfiguration { + if v != nil { + return *v + } + var ret TaskSetNetworkConfiguration + return ret + }).(TaskSetNetworkConfigurationOutput) +} + +// Whether to assign a public IP address to the ENI (`FARGATE` launch type only). Valid values are `true` or `false`. Default `false`. +// +// For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html). +func (o TaskSetNetworkConfigurationPtrOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskSetNetworkConfiguration) *bool { + if v == nil { + return nil + } + return v.AssignPublicIp + }).(pulumi.BoolPtrOutput) +} + +// The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. Maximum of 5. +func (o TaskSetNetworkConfigurationPtrOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskSetNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.SecurityGroups + }).(pulumi.StringArrayOutput) +} + +// The subnets associated with the task or service. Maximum of 16. +func (o TaskSetNetworkConfigurationPtrOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskSetNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.Subnets + }).(pulumi.StringArrayOutput) +} + +type TaskSetScale struct { + // The unit of measure for the scale value. Default: `PERCENT`. + Unit *string `pulumi:"unit"` + // The value, specified as a percent total of a service's `desiredCount`, to scale the task set. Defaults to `0` if not specified. Accepted values are numbers between 0.0 and 100.0. + Value *float64 `pulumi:"value"` +} + +// TaskSetScaleInput is an input type that accepts TaskSetScaleArgs and TaskSetScaleOutput values. +// You can construct a concrete instance of `TaskSetScaleInput` via: +// +// TaskSetScaleArgs{...} +type TaskSetScaleInput interface { + pulumi.Input + + ToTaskSetScaleOutput() TaskSetScaleOutput + ToTaskSetScaleOutputWithContext(context.Context) TaskSetScaleOutput +} + +type TaskSetScaleArgs struct { + // The unit of measure for the scale value. Default: `PERCENT`. + Unit pulumi.StringPtrInput `pulumi:"unit"` + // The value, specified as a percent total of a service's `desiredCount`, to scale the task set. Defaults to `0` if not specified. Accepted values are numbers between 0.0 and 100.0. + Value pulumi.Float64PtrInput `pulumi:"value"` +} + +func (TaskSetScaleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetScale)(nil)).Elem() +} + +func (i TaskSetScaleArgs) ToTaskSetScaleOutput() TaskSetScaleOutput { + return i.ToTaskSetScaleOutputWithContext(context.Background()) +} + +func (i TaskSetScaleArgs) ToTaskSetScaleOutputWithContext(ctx context.Context) TaskSetScaleOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetScaleOutput) +} + +func (i TaskSetScaleArgs) ToTaskSetScalePtrOutput() TaskSetScalePtrOutput { + return i.ToTaskSetScalePtrOutputWithContext(context.Background()) +} + +func (i TaskSetScaleArgs) ToTaskSetScalePtrOutputWithContext(ctx context.Context) TaskSetScalePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetScaleOutput).ToTaskSetScalePtrOutputWithContext(ctx) +} + +// TaskSetScalePtrInput is an input type that accepts TaskSetScaleArgs, TaskSetScalePtr and TaskSetScalePtrOutput values. +// You can construct a concrete instance of `TaskSetScalePtrInput` via: +// +// TaskSetScaleArgs{...} +// +// or: +// +// nil +type TaskSetScalePtrInput interface { + pulumi.Input + + ToTaskSetScalePtrOutput() TaskSetScalePtrOutput + ToTaskSetScalePtrOutputWithContext(context.Context) TaskSetScalePtrOutput +} + +type taskSetScalePtrType TaskSetScaleArgs + +func TaskSetScalePtr(v *TaskSetScaleArgs) TaskSetScalePtrInput { + return (*taskSetScalePtrType)(v) +} + +func (*taskSetScalePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSetScale)(nil)).Elem() +} + +func (i *taskSetScalePtrType) ToTaskSetScalePtrOutput() TaskSetScalePtrOutput { + return i.ToTaskSetScalePtrOutputWithContext(context.Background()) +} + +func (i *taskSetScalePtrType) ToTaskSetScalePtrOutputWithContext(ctx context.Context) TaskSetScalePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetScalePtrOutput) +} + +type TaskSetScaleOutput struct{ *pulumi.OutputState } + +func (TaskSetScaleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetScale)(nil)).Elem() +} + +func (o TaskSetScaleOutput) ToTaskSetScaleOutput() TaskSetScaleOutput { + return o +} + +func (o TaskSetScaleOutput) ToTaskSetScaleOutputWithContext(ctx context.Context) TaskSetScaleOutput { + return o +} + +func (o TaskSetScaleOutput) ToTaskSetScalePtrOutput() TaskSetScalePtrOutput { + return o.ToTaskSetScalePtrOutputWithContext(context.Background()) +} + +func (o TaskSetScaleOutput) ToTaskSetScalePtrOutputWithContext(ctx context.Context) TaskSetScalePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskSetScale) *TaskSetScale { + return &v + }).(TaskSetScalePtrOutput) +} + +// The unit of measure for the scale value. Default: `PERCENT`. +func (o TaskSetScaleOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskSetScale) *string { return v.Unit }).(pulumi.StringPtrOutput) +} + +// The value, specified as a percent total of a service's `desiredCount`, to scale the task set. Defaults to `0` if not specified. Accepted values are numbers between 0.0 and 100.0. +func (o TaskSetScaleOutput) Value() pulumi.Float64PtrOutput { + return o.ApplyT(func(v TaskSetScale) *float64 { return v.Value }).(pulumi.Float64PtrOutput) +} + +type TaskSetScalePtrOutput struct{ *pulumi.OutputState } + +func (TaskSetScalePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSetScale)(nil)).Elem() +} + +func (o TaskSetScalePtrOutput) ToTaskSetScalePtrOutput() TaskSetScalePtrOutput { + return o +} + +func (o TaskSetScalePtrOutput) ToTaskSetScalePtrOutputWithContext(ctx context.Context) TaskSetScalePtrOutput { + return o +} + +func (o TaskSetScalePtrOutput) Elem() TaskSetScaleOutput { + return o.ApplyT(func(v *TaskSetScale) TaskSetScale { + if v != nil { + return *v + } + var ret TaskSetScale + return ret + }).(TaskSetScaleOutput) +} + +// The unit of measure for the scale value. Default: `PERCENT`. +func (o TaskSetScalePtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskSetScale) *string { + if v == nil { + return nil + } + return v.Unit + }).(pulumi.StringPtrOutput) +} + +// The value, specified as a percent total of a service's `desiredCount`, to scale the task set. Defaults to `0` if not specified. Accepted values are numbers between 0.0 and 100.0. +func (o TaskSetScalePtrOutput) Value() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *TaskSetScale) *float64 { + if v == nil { + return nil + } + return v.Value + }).(pulumi.Float64PtrOutput) +} + +type TaskSetServiceRegistries struct { + // The container name value, already specified in the task definition, to be used for your service discovery service. + ContainerName *string `pulumi:"containerName"` + // The port value, already specified in the task definition, to be used for your service discovery service. + ContainerPort *int `pulumi:"containerPort"` + // The port value used if your Service Discovery service specified an SRV record. + Port *int `pulumi:"port"` + // The ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service` resource). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html). + RegistryArn string `pulumi:"registryArn"` +} + +// TaskSetServiceRegistriesInput is an input type that accepts TaskSetServiceRegistriesArgs and TaskSetServiceRegistriesOutput values. +// You can construct a concrete instance of `TaskSetServiceRegistriesInput` via: +// +// TaskSetServiceRegistriesArgs{...} +type TaskSetServiceRegistriesInput interface { + pulumi.Input + + ToTaskSetServiceRegistriesOutput() TaskSetServiceRegistriesOutput + ToTaskSetServiceRegistriesOutputWithContext(context.Context) TaskSetServiceRegistriesOutput +} + +type TaskSetServiceRegistriesArgs struct { + // The container name value, already specified in the task definition, to be used for your service discovery service. + ContainerName pulumi.StringPtrInput `pulumi:"containerName"` + // The port value, already specified in the task definition, to be used for your service discovery service. + ContainerPort pulumi.IntPtrInput `pulumi:"containerPort"` + // The port value used if your Service Discovery service specified an SRV record. + Port pulumi.IntPtrInput `pulumi:"port"` + // The ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service` resource). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html). + RegistryArn pulumi.StringInput `pulumi:"registryArn"` +} + +func (TaskSetServiceRegistriesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetServiceRegistries)(nil)).Elem() +} + +func (i TaskSetServiceRegistriesArgs) ToTaskSetServiceRegistriesOutput() TaskSetServiceRegistriesOutput { + return i.ToTaskSetServiceRegistriesOutputWithContext(context.Background()) +} + +func (i TaskSetServiceRegistriesArgs) ToTaskSetServiceRegistriesOutputWithContext(ctx context.Context) TaskSetServiceRegistriesOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetServiceRegistriesOutput) +} + +func (i TaskSetServiceRegistriesArgs) ToTaskSetServiceRegistriesPtrOutput() TaskSetServiceRegistriesPtrOutput { + return i.ToTaskSetServiceRegistriesPtrOutputWithContext(context.Background()) +} + +func (i TaskSetServiceRegistriesArgs) ToTaskSetServiceRegistriesPtrOutputWithContext(ctx context.Context) TaskSetServiceRegistriesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetServiceRegistriesOutput).ToTaskSetServiceRegistriesPtrOutputWithContext(ctx) +} + +// TaskSetServiceRegistriesPtrInput is an input type that accepts TaskSetServiceRegistriesArgs, TaskSetServiceRegistriesPtr and TaskSetServiceRegistriesPtrOutput values. +// You can construct a concrete instance of `TaskSetServiceRegistriesPtrInput` via: +// +// TaskSetServiceRegistriesArgs{...} +// +// or: +// +// nil +type TaskSetServiceRegistriesPtrInput interface { + pulumi.Input + + ToTaskSetServiceRegistriesPtrOutput() TaskSetServiceRegistriesPtrOutput + ToTaskSetServiceRegistriesPtrOutputWithContext(context.Context) TaskSetServiceRegistriesPtrOutput +} + +type taskSetServiceRegistriesPtrType TaskSetServiceRegistriesArgs + +func TaskSetServiceRegistriesPtr(v *TaskSetServiceRegistriesArgs) TaskSetServiceRegistriesPtrInput { + return (*taskSetServiceRegistriesPtrType)(v) +} + +func (*taskSetServiceRegistriesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSetServiceRegistries)(nil)).Elem() +} + +func (i *taskSetServiceRegistriesPtrType) ToTaskSetServiceRegistriesPtrOutput() TaskSetServiceRegistriesPtrOutput { + return i.ToTaskSetServiceRegistriesPtrOutputWithContext(context.Background()) +} + +func (i *taskSetServiceRegistriesPtrType) ToTaskSetServiceRegistriesPtrOutputWithContext(ctx context.Context) TaskSetServiceRegistriesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetServiceRegistriesPtrOutput) +} + +type TaskSetServiceRegistriesOutput struct{ *pulumi.OutputState } + +func (TaskSetServiceRegistriesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskSetServiceRegistries)(nil)).Elem() +} + +func (o TaskSetServiceRegistriesOutput) ToTaskSetServiceRegistriesOutput() TaskSetServiceRegistriesOutput { + return o +} + +func (o TaskSetServiceRegistriesOutput) ToTaskSetServiceRegistriesOutputWithContext(ctx context.Context) TaskSetServiceRegistriesOutput { + return o +} + +func (o TaskSetServiceRegistriesOutput) ToTaskSetServiceRegistriesPtrOutput() TaskSetServiceRegistriesPtrOutput { + return o.ToTaskSetServiceRegistriesPtrOutputWithContext(context.Background()) +} + +func (o TaskSetServiceRegistriesOutput) ToTaskSetServiceRegistriesPtrOutputWithContext(ctx context.Context) TaskSetServiceRegistriesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskSetServiceRegistries) *TaskSetServiceRegistries { + return &v + }).(TaskSetServiceRegistriesPtrOutput) +} + +// The container name value, already specified in the task definition, to be used for your service discovery service. +func (o TaskSetServiceRegistriesOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskSetServiceRegistries) *string { return v.ContainerName }).(pulumi.StringPtrOutput) +} + +// The port value, already specified in the task definition, to be used for your service discovery service. +func (o TaskSetServiceRegistriesOutput) ContainerPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskSetServiceRegistries) *int { return v.ContainerPort }).(pulumi.IntPtrOutput) +} + +// The port value used if your Service Discovery service specified an SRV record. +func (o TaskSetServiceRegistriesOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskSetServiceRegistries) *int { return v.Port }).(pulumi.IntPtrOutput) +} + +// The ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service` resource). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html). +func (o TaskSetServiceRegistriesOutput) RegistryArn() pulumi.StringOutput { + return o.ApplyT(func(v TaskSetServiceRegistries) string { return v.RegistryArn }).(pulumi.StringOutput) +} + +type TaskSetServiceRegistriesPtrOutput struct{ *pulumi.OutputState } + +func (TaskSetServiceRegistriesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSetServiceRegistries)(nil)).Elem() +} + +func (o TaskSetServiceRegistriesPtrOutput) ToTaskSetServiceRegistriesPtrOutput() TaskSetServiceRegistriesPtrOutput { + return o +} + +func (o TaskSetServiceRegistriesPtrOutput) ToTaskSetServiceRegistriesPtrOutputWithContext(ctx context.Context) TaskSetServiceRegistriesPtrOutput { + return o +} + +func (o TaskSetServiceRegistriesPtrOutput) Elem() TaskSetServiceRegistriesOutput { + return o.ApplyT(func(v *TaskSetServiceRegistries) TaskSetServiceRegistries { + if v != nil { + return *v + } + var ret TaskSetServiceRegistries + return ret + }).(TaskSetServiceRegistriesOutput) +} + +// The container name value, already specified in the task definition, to be used for your service discovery service. +func (o TaskSetServiceRegistriesPtrOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskSetServiceRegistries) *string { + if v == nil { + return nil + } + return v.ContainerName + }).(pulumi.StringPtrOutput) +} + +// The port value, already specified in the task definition, to be used for your service discovery service. +func (o TaskSetServiceRegistriesPtrOutput) ContainerPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskSetServiceRegistries) *int { + if v == nil { + return nil + } + return v.ContainerPort + }).(pulumi.IntPtrOutput) +} + +// The port value used if your Service Discovery service specified an SRV record. +func (o TaskSetServiceRegistriesPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskSetServiceRegistries) *int { + if v == nil { + return nil + } + return v.Port + }).(pulumi.IntPtrOutput) +} + +// The ARN of the Service Registry. The currently supported service registry is Amazon Route 53 Auto Naming Service(`servicediscovery.Service` resource). For more information, see [Service](https://docs.aws.amazon.com/Route53/latest/APIReference/API_autonaming_Service.html). +func (o TaskSetServiceRegistriesPtrOutput) RegistryArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskSetServiceRegistries) *string { + if v == nil { + return nil + } + return &v.RegistryArn + }).(pulumi.StringPtrOutput) +} + +type GetClusterServiceConnectDefault struct { + Namespace string `pulumi:"namespace"` +} + +// GetClusterServiceConnectDefaultInput is an input type that accepts GetClusterServiceConnectDefaultArgs and GetClusterServiceConnectDefaultOutput values. +// You can construct a concrete instance of `GetClusterServiceConnectDefaultInput` via: +// +// GetClusterServiceConnectDefaultArgs{...} +type GetClusterServiceConnectDefaultInput interface { + pulumi.Input + + ToGetClusterServiceConnectDefaultOutput() GetClusterServiceConnectDefaultOutput + ToGetClusterServiceConnectDefaultOutputWithContext(context.Context) GetClusterServiceConnectDefaultOutput +} + +type GetClusterServiceConnectDefaultArgs struct { + Namespace pulumi.StringInput `pulumi:"namespace"` +} + +func (GetClusterServiceConnectDefaultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterServiceConnectDefault)(nil)).Elem() +} + +func (i GetClusterServiceConnectDefaultArgs) ToGetClusterServiceConnectDefaultOutput() GetClusterServiceConnectDefaultOutput { + return i.ToGetClusterServiceConnectDefaultOutputWithContext(context.Background()) +} + +func (i GetClusterServiceConnectDefaultArgs) ToGetClusterServiceConnectDefaultOutputWithContext(ctx context.Context) GetClusterServiceConnectDefaultOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterServiceConnectDefaultOutput) +} + +// GetClusterServiceConnectDefaultArrayInput is an input type that accepts GetClusterServiceConnectDefaultArray and GetClusterServiceConnectDefaultArrayOutput values. +// You can construct a concrete instance of `GetClusterServiceConnectDefaultArrayInput` via: +// +// GetClusterServiceConnectDefaultArray{ GetClusterServiceConnectDefaultArgs{...} } +type GetClusterServiceConnectDefaultArrayInput interface { + pulumi.Input + + ToGetClusterServiceConnectDefaultArrayOutput() GetClusterServiceConnectDefaultArrayOutput + ToGetClusterServiceConnectDefaultArrayOutputWithContext(context.Context) GetClusterServiceConnectDefaultArrayOutput +} + +type GetClusterServiceConnectDefaultArray []GetClusterServiceConnectDefaultInput + +func (GetClusterServiceConnectDefaultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterServiceConnectDefault)(nil)).Elem() +} + +func (i GetClusterServiceConnectDefaultArray) ToGetClusterServiceConnectDefaultArrayOutput() GetClusterServiceConnectDefaultArrayOutput { + return i.ToGetClusterServiceConnectDefaultArrayOutputWithContext(context.Background()) +} + +func (i GetClusterServiceConnectDefaultArray) ToGetClusterServiceConnectDefaultArrayOutputWithContext(ctx context.Context) GetClusterServiceConnectDefaultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterServiceConnectDefaultArrayOutput) +} + +type GetClusterServiceConnectDefaultOutput struct{ *pulumi.OutputState } + +func (GetClusterServiceConnectDefaultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterServiceConnectDefault)(nil)).Elem() +} + +func (o GetClusterServiceConnectDefaultOutput) ToGetClusterServiceConnectDefaultOutput() GetClusterServiceConnectDefaultOutput { + return o +} + +func (o GetClusterServiceConnectDefaultOutput) ToGetClusterServiceConnectDefaultOutputWithContext(ctx context.Context) GetClusterServiceConnectDefaultOutput { + return o +} + +func (o GetClusterServiceConnectDefaultOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterServiceConnectDefault) string { return v.Namespace }).(pulumi.StringOutput) +} + +type GetClusterServiceConnectDefaultArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterServiceConnectDefaultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterServiceConnectDefault)(nil)).Elem() +} + +func (o GetClusterServiceConnectDefaultArrayOutput) ToGetClusterServiceConnectDefaultArrayOutput() GetClusterServiceConnectDefaultArrayOutput { + return o +} + +func (o GetClusterServiceConnectDefaultArrayOutput) ToGetClusterServiceConnectDefaultArrayOutputWithContext(ctx context.Context) GetClusterServiceConnectDefaultArrayOutput { + return o +} + +func (o GetClusterServiceConnectDefaultArrayOutput) Index(i pulumi.IntInput) GetClusterServiceConnectDefaultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterServiceConnectDefault { + return vs[0].([]GetClusterServiceConnectDefault)[vs[1].(int)] + }).(GetClusterServiceConnectDefaultOutput) +} + +type GetClusterSetting struct { + Name string `pulumi:"name"` + Value string `pulumi:"value"` +} + +// GetClusterSettingInput is an input type that accepts GetClusterSettingArgs and GetClusterSettingOutput values. +// You can construct a concrete instance of `GetClusterSettingInput` via: +// +// GetClusterSettingArgs{...} +type GetClusterSettingInput interface { + pulumi.Input + + ToGetClusterSettingOutput() GetClusterSettingOutput + ToGetClusterSettingOutputWithContext(context.Context) GetClusterSettingOutput +} + +type GetClusterSettingArgs struct { + Name pulumi.StringInput `pulumi:"name"` + Value pulumi.StringInput `pulumi:"value"` +} + +func (GetClusterSettingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterSetting)(nil)).Elem() +} + +func (i GetClusterSettingArgs) ToGetClusterSettingOutput() GetClusterSettingOutput { + return i.ToGetClusterSettingOutputWithContext(context.Background()) +} + +func (i GetClusterSettingArgs) ToGetClusterSettingOutputWithContext(ctx context.Context) GetClusterSettingOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterSettingOutput) +} + +// GetClusterSettingArrayInput is an input type that accepts GetClusterSettingArray and GetClusterSettingArrayOutput values. +// You can construct a concrete instance of `GetClusterSettingArrayInput` via: +// +// GetClusterSettingArray{ GetClusterSettingArgs{...} } +type GetClusterSettingArrayInput interface { + pulumi.Input + + ToGetClusterSettingArrayOutput() GetClusterSettingArrayOutput + ToGetClusterSettingArrayOutputWithContext(context.Context) GetClusterSettingArrayOutput +} + +type GetClusterSettingArray []GetClusterSettingInput + +func (GetClusterSettingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterSetting)(nil)).Elem() +} + +func (i GetClusterSettingArray) ToGetClusterSettingArrayOutput() GetClusterSettingArrayOutput { + return i.ToGetClusterSettingArrayOutputWithContext(context.Background()) +} + +func (i GetClusterSettingArray) ToGetClusterSettingArrayOutputWithContext(ctx context.Context) GetClusterSettingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterSettingArrayOutput) +} + +type GetClusterSettingOutput struct{ *pulumi.OutputState } + +func (GetClusterSettingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterSetting)(nil)).Elem() +} + +func (o GetClusterSettingOutput) ToGetClusterSettingOutput() GetClusterSettingOutput { + return o +} + +func (o GetClusterSettingOutput) ToGetClusterSettingOutputWithContext(ctx context.Context) GetClusterSettingOutput { + return o +} + +func (o GetClusterSettingOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterSetting) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetClusterSettingOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v GetClusterSetting) string { return v.Value }).(pulumi.StringOutput) +} + +type GetClusterSettingArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterSettingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterSetting)(nil)).Elem() +} + +func (o GetClusterSettingArrayOutput) ToGetClusterSettingArrayOutput() GetClusterSettingArrayOutput { + return o +} + +func (o GetClusterSettingArrayOutput) ToGetClusterSettingArrayOutputWithContext(ctx context.Context) GetClusterSettingArrayOutput { + return o +} + +func (o GetClusterSettingArrayOutput) Index(i pulumi.IntInput) GetClusterSettingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterSetting { + return vs[0].([]GetClusterSetting)[vs[1].(int)] + }).(GetClusterSettingOutput) +} + +type GetTaskExecutionCapacityProviderStrategy struct { + // The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. + Base *int `pulumi:"base"` + // Name of the capacity provider. + CapacityProvider string `pulumi:"capacityProvider"` + // The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. + Weight *int `pulumi:"weight"` +} + +// GetTaskExecutionCapacityProviderStrategyInput is an input type that accepts GetTaskExecutionCapacityProviderStrategyArgs and GetTaskExecutionCapacityProviderStrategyOutput values. +// You can construct a concrete instance of `GetTaskExecutionCapacityProviderStrategyInput` via: +// +// GetTaskExecutionCapacityProviderStrategyArgs{...} +type GetTaskExecutionCapacityProviderStrategyInput interface { + pulumi.Input + + ToGetTaskExecutionCapacityProviderStrategyOutput() GetTaskExecutionCapacityProviderStrategyOutput + ToGetTaskExecutionCapacityProviderStrategyOutputWithContext(context.Context) GetTaskExecutionCapacityProviderStrategyOutput +} + +type GetTaskExecutionCapacityProviderStrategyArgs struct { + // The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. + Base pulumi.IntPtrInput `pulumi:"base"` + // Name of the capacity provider. + CapacityProvider pulumi.StringInput `pulumi:"capacityProvider"` + // The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +func (GetTaskExecutionCapacityProviderStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionCapacityProviderStrategy)(nil)).Elem() +} + +func (i GetTaskExecutionCapacityProviderStrategyArgs) ToGetTaskExecutionCapacityProviderStrategyOutput() GetTaskExecutionCapacityProviderStrategyOutput { + return i.ToGetTaskExecutionCapacityProviderStrategyOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionCapacityProviderStrategyArgs) ToGetTaskExecutionCapacityProviderStrategyOutputWithContext(ctx context.Context) GetTaskExecutionCapacityProviderStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionCapacityProviderStrategyOutput) +} + +// GetTaskExecutionCapacityProviderStrategyArrayInput is an input type that accepts GetTaskExecutionCapacityProviderStrategyArray and GetTaskExecutionCapacityProviderStrategyArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionCapacityProviderStrategyArrayInput` via: +// +// GetTaskExecutionCapacityProviderStrategyArray{ GetTaskExecutionCapacityProviderStrategyArgs{...} } +type GetTaskExecutionCapacityProviderStrategyArrayInput interface { + pulumi.Input + + ToGetTaskExecutionCapacityProviderStrategyArrayOutput() GetTaskExecutionCapacityProviderStrategyArrayOutput + ToGetTaskExecutionCapacityProviderStrategyArrayOutputWithContext(context.Context) GetTaskExecutionCapacityProviderStrategyArrayOutput +} + +type GetTaskExecutionCapacityProviderStrategyArray []GetTaskExecutionCapacityProviderStrategyInput + +func (GetTaskExecutionCapacityProviderStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionCapacityProviderStrategy)(nil)).Elem() +} + +func (i GetTaskExecutionCapacityProviderStrategyArray) ToGetTaskExecutionCapacityProviderStrategyArrayOutput() GetTaskExecutionCapacityProviderStrategyArrayOutput { + return i.ToGetTaskExecutionCapacityProviderStrategyArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionCapacityProviderStrategyArray) ToGetTaskExecutionCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) GetTaskExecutionCapacityProviderStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionCapacityProviderStrategyArrayOutput) +} + +type GetTaskExecutionCapacityProviderStrategyOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionCapacityProviderStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionCapacityProviderStrategy)(nil)).Elem() +} + +func (o GetTaskExecutionCapacityProviderStrategyOutput) ToGetTaskExecutionCapacityProviderStrategyOutput() GetTaskExecutionCapacityProviderStrategyOutput { + return o +} + +func (o GetTaskExecutionCapacityProviderStrategyOutput) ToGetTaskExecutionCapacityProviderStrategyOutputWithContext(ctx context.Context) GetTaskExecutionCapacityProviderStrategyOutput { + return o +} + +// The number of tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to `0`. +func (o GetTaskExecutionCapacityProviderStrategyOutput) Base() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetTaskExecutionCapacityProviderStrategy) *int { return v.Base }).(pulumi.IntPtrOutput) +} + +// Name of the capacity provider. +func (o GetTaskExecutionCapacityProviderStrategyOutput) CapacityProvider() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionCapacityProviderStrategy) string { return v.CapacityProvider }).(pulumi.StringOutput) +} + +// The relative percentage of the total number of launched tasks that should use the specified capacity provider. The `weight` value is taken into consideration after the `base` count of tasks has been satisfied. Defaults to `0`. +func (o GetTaskExecutionCapacityProviderStrategyOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetTaskExecutionCapacityProviderStrategy) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type GetTaskExecutionCapacityProviderStrategyArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionCapacityProviderStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionCapacityProviderStrategy)(nil)).Elem() +} + +func (o GetTaskExecutionCapacityProviderStrategyArrayOutput) ToGetTaskExecutionCapacityProviderStrategyArrayOutput() GetTaskExecutionCapacityProviderStrategyArrayOutput { + return o +} + +func (o GetTaskExecutionCapacityProviderStrategyArrayOutput) ToGetTaskExecutionCapacityProviderStrategyArrayOutputWithContext(ctx context.Context) GetTaskExecutionCapacityProviderStrategyArrayOutput { + return o +} + +func (o GetTaskExecutionCapacityProviderStrategyArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionCapacityProviderStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionCapacityProviderStrategy { + return vs[0].([]GetTaskExecutionCapacityProviderStrategy)[vs[1].(int)] + }).(GetTaskExecutionCapacityProviderStrategyOutput) +} + +type GetTaskExecutionNetworkConfiguration struct { + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. + // + // For more information, see the [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) documentation. + AssignPublicIp *bool `pulumi:"assignPublicIp"` + // Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + SecurityGroups []string `pulumi:"securityGroups"` + // Subnets associated with the task or service. + Subnets []string `pulumi:"subnets"` +} + +// GetTaskExecutionNetworkConfigurationInput is an input type that accepts GetTaskExecutionNetworkConfigurationArgs and GetTaskExecutionNetworkConfigurationOutput values. +// You can construct a concrete instance of `GetTaskExecutionNetworkConfigurationInput` via: +// +// GetTaskExecutionNetworkConfigurationArgs{...} +type GetTaskExecutionNetworkConfigurationInput interface { + pulumi.Input + + ToGetTaskExecutionNetworkConfigurationOutput() GetTaskExecutionNetworkConfigurationOutput + ToGetTaskExecutionNetworkConfigurationOutputWithContext(context.Context) GetTaskExecutionNetworkConfigurationOutput +} + +type GetTaskExecutionNetworkConfigurationArgs struct { + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. + // + // For more information, see the [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) documentation. + AssignPublicIp pulumi.BoolPtrInput `pulumi:"assignPublicIp"` + // Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. + SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"` + // Subnets associated with the task or service. + Subnets pulumi.StringArrayInput `pulumi:"subnets"` +} + +func (GetTaskExecutionNetworkConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionNetworkConfiguration)(nil)).Elem() +} + +func (i GetTaskExecutionNetworkConfigurationArgs) ToGetTaskExecutionNetworkConfigurationOutput() GetTaskExecutionNetworkConfigurationOutput { + return i.ToGetTaskExecutionNetworkConfigurationOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionNetworkConfigurationArgs) ToGetTaskExecutionNetworkConfigurationOutputWithContext(ctx context.Context) GetTaskExecutionNetworkConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionNetworkConfigurationOutput) +} + +func (i GetTaskExecutionNetworkConfigurationArgs) ToGetTaskExecutionNetworkConfigurationPtrOutput() GetTaskExecutionNetworkConfigurationPtrOutput { + return i.ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionNetworkConfigurationArgs) ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(ctx context.Context) GetTaskExecutionNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionNetworkConfigurationOutput).ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(ctx) +} + +// GetTaskExecutionNetworkConfigurationPtrInput is an input type that accepts GetTaskExecutionNetworkConfigurationArgs, GetTaskExecutionNetworkConfigurationPtr and GetTaskExecutionNetworkConfigurationPtrOutput values. +// You can construct a concrete instance of `GetTaskExecutionNetworkConfigurationPtrInput` via: +// +// GetTaskExecutionNetworkConfigurationArgs{...} +// +// or: +// +// nil +type GetTaskExecutionNetworkConfigurationPtrInput interface { + pulumi.Input + + ToGetTaskExecutionNetworkConfigurationPtrOutput() GetTaskExecutionNetworkConfigurationPtrOutput + ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(context.Context) GetTaskExecutionNetworkConfigurationPtrOutput +} + +type getTaskExecutionNetworkConfigurationPtrType GetTaskExecutionNetworkConfigurationArgs + +func GetTaskExecutionNetworkConfigurationPtr(v *GetTaskExecutionNetworkConfigurationArgs) GetTaskExecutionNetworkConfigurationPtrInput { + return (*getTaskExecutionNetworkConfigurationPtrType)(v) +} + +func (*getTaskExecutionNetworkConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetTaskExecutionNetworkConfiguration)(nil)).Elem() +} + +func (i *getTaskExecutionNetworkConfigurationPtrType) ToGetTaskExecutionNetworkConfigurationPtrOutput() GetTaskExecutionNetworkConfigurationPtrOutput { + return i.ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *getTaskExecutionNetworkConfigurationPtrType) ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(ctx context.Context) GetTaskExecutionNetworkConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionNetworkConfigurationPtrOutput) +} + +type GetTaskExecutionNetworkConfigurationOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionNetworkConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionNetworkConfiguration)(nil)).Elem() +} + +func (o GetTaskExecutionNetworkConfigurationOutput) ToGetTaskExecutionNetworkConfigurationOutput() GetTaskExecutionNetworkConfigurationOutput { + return o +} + +func (o GetTaskExecutionNetworkConfigurationOutput) ToGetTaskExecutionNetworkConfigurationOutputWithContext(ctx context.Context) GetTaskExecutionNetworkConfigurationOutput { + return o +} + +func (o GetTaskExecutionNetworkConfigurationOutput) ToGetTaskExecutionNetworkConfigurationPtrOutput() GetTaskExecutionNetworkConfigurationPtrOutput { + return o.ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(context.Background()) +} + +func (o GetTaskExecutionNetworkConfigurationOutput) ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(ctx context.Context) GetTaskExecutionNetworkConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetTaskExecutionNetworkConfiguration) *GetTaskExecutionNetworkConfiguration { + return &v + }).(GetTaskExecutionNetworkConfigurationPtrOutput) +} + +// Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. +// +// For more information, see the [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) documentation. +func (o GetTaskExecutionNetworkConfigurationOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetTaskExecutionNetworkConfiguration) *bool { return v.AssignPublicIp }).(pulumi.BoolPtrOutput) +} + +// Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. +func (o GetTaskExecutionNetworkConfigurationOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetTaskExecutionNetworkConfiguration) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) +} + +// Subnets associated with the task or service. +func (o GetTaskExecutionNetworkConfigurationOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetTaskExecutionNetworkConfiguration) []string { return v.Subnets }).(pulumi.StringArrayOutput) +} + +type GetTaskExecutionNetworkConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionNetworkConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetTaskExecutionNetworkConfiguration)(nil)).Elem() +} + +func (o GetTaskExecutionNetworkConfigurationPtrOutput) ToGetTaskExecutionNetworkConfigurationPtrOutput() GetTaskExecutionNetworkConfigurationPtrOutput { + return o +} + +func (o GetTaskExecutionNetworkConfigurationPtrOutput) ToGetTaskExecutionNetworkConfigurationPtrOutputWithContext(ctx context.Context) GetTaskExecutionNetworkConfigurationPtrOutput { + return o +} + +func (o GetTaskExecutionNetworkConfigurationPtrOutput) Elem() GetTaskExecutionNetworkConfigurationOutput { + return o.ApplyT(func(v *GetTaskExecutionNetworkConfiguration) GetTaskExecutionNetworkConfiguration { + if v != nil { + return *v + } + var ret GetTaskExecutionNetworkConfiguration + return ret + }).(GetTaskExecutionNetworkConfigurationOutput) +} + +// Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. +// +// For more information, see the [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) documentation. +func (o GetTaskExecutionNetworkConfigurationPtrOutput) AssignPublicIp() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *GetTaskExecutionNetworkConfiguration) *bool { + if v == nil { + return nil + } + return v.AssignPublicIp + }).(pulumi.BoolPtrOutput) +} + +// Security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used. +func (o GetTaskExecutionNetworkConfigurationPtrOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GetTaskExecutionNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.SecurityGroups + }).(pulumi.StringArrayOutput) +} + +// Subnets associated with the task or service. +func (o GetTaskExecutionNetworkConfigurationPtrOutput) Subnets() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GetTaskExecutionNetworkConfiguration) []string { + if v == nil { + return nil + } + return v.Subnets + }).(pulumi.StringArrayOutput) +} + +type GetTaskExecutionOverrides struct { + // One or more container overrides that are sent to a task. See below. + ContainerOverrides []GetTaskExecutionOverridesContainerOverride `pulumi:"containerOverrides"` + // The CPU override for the task. + Cpu *string `pulumi:"cpu"` + // Amazon Resource Name (ARN) of the task execution role override for the task. + ExecutionRoleArn *string `pulumi:"executionRoleArn"` + // Elastic Inference accelerator override for the task. See below. + InferenceAcceleratorOverrides []GetTaskExecutionOverridesInferenceAcceleratorOverride `pulumi:"inferenceAcceleratorOverrides"` + // The memory override for the task. + Memory *string `pulumi:"memory"` + // Amazon Resource Name (ARN) of the role that containers in this task can assume. + TaskRoleArn *string `pulumi:"taskRoleArn"` +} + +// GetTaskExecutionOverridesInput is an input type that accepts GetTaskExecutionOverridesArgs and GetTaskExecutionOverridesOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesInput` via: +// +// GetTaskExecutionOverridesArgs{...} +type GetTaskExecutionOverridesInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesOutput() GetTaskExecutionOverridesOutput + ToGetTaskExecutionOverridesOutputWithContext(context.Context) GetTaskExecutionOverridesOutput +} + +type GetTaskExecutionOverridesArgs struct { + // One or more container overrides that are sent to a task. See below. + ContainerOverrides GetTaskExecutionOverridesContainerOverrideArrayInput `pulumi:"containerOverrides"` + // The CPU override for the task. + Cpu pulumi.StringPtrInput `pulumi:"cpu"` + // Amazon Resource Name (ARN) of the task execution role override for the task. + ExecutionRoleArn pulumi.StringPtrInput `pulumi:"executionRoleArn"` + // Elastic Inference accelerator override for the task. See below. + InferenceAcceleratorOverrides GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayInput `pulumi:"inferenceAcceleratorOverrides"` + // The memory override for the task. + Memory pulumi.StringPtrInput `pulumi:"memory"` + // Amazon Resource Name (ARN) of the role that containers in this task can assume. + TaskRoleArn pulumi.StringPtrInput `pulumi:"taskRoleArn"` +} + +func (GetTaskExecutionOverridesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverrides)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesArgs) ToGetTaskExecutionOverridesOutput() GetTaskExecutionOverridesOutput { + return i.ToGetTaskExecutionOverridesOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesArgs) ToGetTaskExecutionOverridesOutputWithContext(ctx context.Context) GetTaskExecutionOverridesOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesOutput) +} + +func (i GetTaskExecutionOverridesArgs) ToGetTaskExecutionOverridesPtrOutput() GetTaskExecutionOverridesPtrOutput { + return i.ToGetTaskExecutionOverridesPtrOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesArgs) ToGetTaskExecutionOverridesPtrOutputWithContext(ctx context.Context) GetTaskExecutionOverridesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesOutput).ToGetTaskExecutionOverridesPtrOutputWithContext(ctx) +} + +// GetTaskExecutionOverridesPtrInput is an input type that accepts GetTaskExecutionOverridesArgs, GetTaskExecutionOverridesPtr and GetTaskExecutionOverridesPtrOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesPtrInput` via: +// +// GetTaskExecutionOverridesArgs{...} +// +// or: +// +// nil +type GetTaskExecutionOverridesPtrInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesPtrOutput() GetTaskExecutionOverridesPtrOutput + ToGetTaskExecutionOverridesPtrOutputWithContext(context.Context) GetTaskExecutionOverridesPtrOutput +} + +type getTaskExecutionOverridesPtrType GetTaskExecutionOverridesArgs + +func GetTaskExecutionOverridesPtr(v *GetTaskExecutionOverridesArgs) GetTaskExecutionOverridesPtrInput { + return (*getTaskExecutionOverridesPtrType)(v) +} + +func (*getTaskExecutionOverridesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GetTaskExecutionOverrides)(nil)).Elem() +} + +func (i *getTaskExecutionOverridesPtrType) ToGetTaskExecutionOverridesPtrOutput() GetTaskExecutionOverridesPtrOutput { + return i.ToGetTaskExecutionOverridesPtrOutputWithContext(context.Background()) +} + +func (i *getTaskExecutionOverridesPtrType) ToGetTaskExecutionOverridesPtrOutputWithContext(ctx context.Context) GetTaskExecutionOverridesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesPtrOutput) +} + +type GetTaskExecutionOverridesOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverrides)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesOutput) ToGetTaskExecutionOverridesOutput() GetTaskExecutionOverridesOutput { + return o +} + +func (o GetTaskExecutionOverridesOutput) ToGetTaskExecutionOverridesOutputWithContext(ctx context.Context) GetTaskExecutionOverridesOutput { + return o +} + +func (o GetTaskExecutionOverridesOutput) ToGetTaskExecutionOverridesPtrOutput() GetTaskExecutionOverridesPtrOutput { + return o.ToGetTaskExecutionOverridesPtrOutputWithContext(context.Background()) +} + +func (o GetTaskExecutionOverridesOutput) ToGetTaskExecutionOverridesPtrOutputWithContext(ctx context.Context) GetTaskExecutionOverridesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GetTaskExecutionOverrides) *GetTaskExecutionOverrides { + return &v + }).(GetTaskExecutionOverridesPtrOutput) +} + +// One or more container overrides that are sent to a task. See below. +func (o GetTaskExecutionOverridesOutput) ContainerOverrides() GetTaskExecutionOverridesContainerOverrideArrayOutput { + return o.ApplyT(func(v GetTaskExecutionOverrides) []GetTaskExecutionOverridesContainerOverride { + return v.ContainerOverrides + }).(GetTaskExecutionOverridesContainerOverrideArrayOutput) +} + +// The CPU override for the task. +func (o GetTaskExecutionOverridesOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverrides) *string { return v.Cpu }).(pulumi.StringPtrOutput) +} + +// Amazon Resource Name (ARN) of the task execution role override for the task. +func (o GetTaskExecutionOverridesOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverrides) *string { return v.ExecutionRoleArn }).(pulumi.StringPtrOutput) +} + +// Elastic Inference accelerator override for the task. See below. +func (o GetTaskExecutionOverridesOutput) InferenceAcceleratorOverrides() GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput { + return o.ApplyT(func(v GetTaskExecutionOverrides) []GetTaskExecutionOverridesInferenceAcceleratorOverride { + return v.InferenceAcceleratorOverrides + }).(GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) +} + +// The memory override for the task. +func (o GetTaskExecutionOverridesOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverrides) *string { return v.Memory }).(pulumi.StringPtrOutput) +} + +// Amazon Resource Name (ARN) of the role that containers in this task can assume. +func (o GetTaskExecutionOverridesOutput) TaskRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverrides) *string { return v.TaskRoleArn }).(pulumi.StringPtrOutput) +} + +type GetTaskExecutionOverridesPtrOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GetTaskExecutionOverrides)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesPtrOutput) ToGetTaskExecutionOverridesPtrOutput() GetTaskExecutionOverridesPtrOutput { + return o +} + +func (o GetTaskExecutionOverridesPtrOutput) ToGetTaskExecutionOverridesPtrOutputWithContext(ctx context.Context) GetTaskExecutionOverridesPtrOutput { + return o +} + +func (o GetTaskExecutionOverridesPtrOutput) Elem() GetTaskExecutionOverridesOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) GetTaskExecutionOverrides { + if v != nil { + return *v + } + var ret GetTaskExecutionOverrides + return ret + }).(GetTaskExecutionOverridesOutput) +} + +// One or more container overrides that are sent to a task. See below. +func (o GetTaskExecutionOverridesPtrOutput) ContainerOverrides() GetTaskExecutionOverridesContainerOverrideArrayOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) []GetTaskExecutionOverridesContainerOverride { + if v == nil { + return nil + } + return v.ContainerOverrides + }).(GetTaskExecutionOverridesContainerOverrideArrayOutput) +} + +// The CPU override for the task. +func (o GetTaskExecutionOverridesPtrOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) *string { + if v == nil { + return nil + } + return v.Cpu + }).(pulumi.StringPtrOutput) +} + +// Amazon Resource Name (ARN) of the task execution role override for the task. +func (o GetTaskExecutionOverridesPtrOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) *string { + if v == nil { + return nil + } + return v.ExecutionRoleArn + }).(pulumi.StringPtrOutput) +} + +// Elastic Inference accelerator override for the task. See below. +func (o GetTaskExecutionOverridesPtrOutput) InferenceAcceleratorOverrides() GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) []GetTaskExecutionOverridesInferenceAcceleratorOverride { + if v == nil { + return nil + } + return v.InferenceAcceleratorOverrides + }).(GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) +} + +// The memory override for the task. +func (o GetTaskExecutionOverridesPtrOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) *string { + if v == nil { + return nil + } + return v.Memory + }).(pulumi.StringPtrOutput) +} + +// Amazon Resource Name (ARN) of the role that containers in this task can assume. +func (o GetTaskExecutionOverridesPtrOutput) TaskRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GetTaskExecutionOverrides) *string { + if v == nil { + return nil + } + return v.TaskRoleArn + }).(pulumi.StringPtrOutput) +} + +type GetTaskExecutionOverridesContainerOverride struct { + // The command to send to the container that overrides the default command from the Docker image or the task definition. + Commands []string `pulumi:"commands"` + // The number of cpu units reserved for the container, instead of the default value from the task definition. + Cpu *int `pulumi:"cpu"` + // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. See below. + Environments []GetTaskExecutionOverridesContainerOverrideEnvironment `pulumi:"environments"` + // The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. + Memory *int `pulumi:"memory"` + // The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. + MemoryReservation *int `pulumi:"memoryReservation"` + // The name of the container that receives the override. This parameter is required if any override is specified. + Name string `pulumi:"name"` + // The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. See below. + ResourceRequirements []GetTaskExecutionOverridesContainerOverrideResourceRequirement `pulumi:"resourceRequirements"` +} + +// GetTaskExecutionOverridesContainerOverrideInput is an input type that accepts GetTaskExecutionOverridesContainerOverrideArgs and GetTaskExecutionOverridesContainerOverrideOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesContainerOverrideInput` via: +// +// GetTaskExecutionOverridesContainerOverrideArgs{...} +type GetTaskExecutionOverridesContainerOverrideInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesContainerOverrideOutput() GetTaskExecutionOverridesContainerOverrideOutput + ToGetTaskExecutionOverridesContainerOverrideOutputWithContext(context.Context) GetTaskExecutionOverridesContainerOverrideOutput +} + +type GetTaskExecutionOverridesContainerOverrideArgs struct { + // The command to send to the container that overrides the default command from the Docker image or the task definition. + Commands pulumi.StringArrayInput `pulumi:"commands"` + // The number of cpu units reserved for the container, instead of the default value from the task definition. + Cpu pulumi.IntPtrInput `pulumi:"cpu"` + // The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. See below. + Environments GetTaskExecutionOverridesContainerOverrideEnvironmentArrayInput `pulumi:"environments"` + // The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. + Memory pulumi.IntPtrInput `pulumi:"memory"` + // The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. + MemoryReservation pulumi.IntPtrInput `pulumi:"memoryReservation"` + // The name of the container that receives the override. This parameter is required if any override is specified. + Name pulumi.StringInput `pulumi:"name"` + // The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. See below. + ResourceRequirements GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayInput `pulumi:"resourceRequirements"` +} + +func (GetTaskExecutionOverridesContainerOverrideArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesContainerOverride)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesContainerOverrideArgs) ToGetTaskExecutionOverridesContainerOverrideOutput() GetTaskExecutionOverridesContainerOverrideOutput { + return i.ToGetTaskExecutionOverridesContainerOverrideOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesContainerOverrideArgs) ToGetTaskExecutionOverridesContainerOverrideOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesContainerOverrideOutput) +} + +// GetTaskExecutionOverridesContainerOverrideArrayInput is an input type that accepts GetTaskExecutionOverridesContainerOverrideArray and GetTaskExecutionOverridesContainerOverrideArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesContainerOverrideArrayInput` via: +// +// GetTaskExecutionOverridesContainerOverrideArray{ GetTaskExecutionOverridesContainerOverrideArgs{...} } +type GetTaskExecutionOverridesContainerOverrideArrayInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesContainerOverrideArrayOutput() GetTaskExecutionOverridesContainerOverrideArrayOutput + ToGetTaskExecutionOverridesContainerOverrideArrayOutputWithContext(context.Context) GetTaskExecutionOverridesContainerOverrideArrayOutput +} + +type GetTaskExecutionOverridesContainerOverrideArray []GetTaskExecutionOverridesContainerOverrideInput + +func (GetTaskExecutionOverridesContainerOverrideArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesContainerOverride)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesContainerOverrideArray) ToGetTaskExecutionOverridesContainerOverrideArrayOutput() GetTaskExecutionOverridesContainerOverrideArrayOutput { + return i.ToGetTaskExecutionOverridesContainerOverrideArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesContainerOverrideArray) ToGetTaskExecutionOverridesContainerOverrideArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesContainerOverrideArrayOutput) +} + +type GetTaskExecutionOverridesContainerOverrideOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesContainerOverrideOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesContainerOverride)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesContainerOverrideOutput) ToGetTaskExecutionOverridesContainerOverrideOutput() GetTaskExecutionOverridesContainerOverrideOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideOutput) ToGetTaskExecutionOverridesContainerOverrideOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideOutput { + return o +} + +// The command to send to the container that overrides the default command from the Docker image or the task definition. +func (o GetTaskExecutionOverridesContainerOverrideOutput) Commands() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) []string { return v.Commands }).(pulumi.StringArrayOutput) +} + +// The number of cpu units reserved for the container, instead of the default value from the task definition. +func (o GetTaskExecutionOverridesContainerOverrideOutput) Cpu() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) *int { return v.Cpu }).(pulumi.IntPtrOutput) +} + +// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. See below. +func (o GetTaskExecutionOverridesContainerOverrideOutput) Environments() GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) []GetTaskExecutionOverridesContainerOverrideEnvironment { + return v.Environments + }).(GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput) +} + +// The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. +func (o GetTaskExecutionOverridesContainerOverrideOutput) Memory() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) *int { return v.Memory }).(pulumi.IntPtrOutput) +} + +// The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. +func (o GetTaskExecutionOverridesContainerOverrideOutput) MemoryReservation() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) *int { return v.MemoryReservation }).(pulumi.IntPtrOutput) +} + +// The name of the container that receives the override. This parameter is required if any override is specified. +func (o GetTaskExecutionOverridesContainerOverrideOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) string { return v.Name }).(pulumi.StringOutput) +} + +// The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. See below. +func (o GetTaskExecutionOverridesContainerOverrideOutput) ResourceRequirements() GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverride) []GetTaskExecutionOverridesContainerOverrideResourceRequirement { + return v.ResourceRequirements + }).(GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput) +} + +type GetTaskExecutionOverridesContainerOverrideArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesContainerOverrideArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesContainerOverride)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesContainerOverrideArrayOutput) ToGetTaskExecutionOverridesContainerOverrideArrayOutput() GetTaskExecutionOverridesContainerOverrideArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideArrayOutput) ToGetTaskExecutionOverridesContainerOverrideArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionOverridesContainerOverrideOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionOverridesContainerOverride { + return vs[0].([]GetTaskExecutionOverridesContainerOverride)[vs[1].(int)] + }).(GetTaskExecutionOverridesContainerOverrideOutput) +} + +type GetTaskExecutionOverridesContainerOverrideEnvironment struct { + // The name of the key-value pair. For environment variables, this is the name of the environment variable. + Key string `pulumi:"key"` + // The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value string `pulumi:"value"` +} + +// GetTaskExecutionOverridesContainerOverrideEnvironmentInput is an input type that accepts GetTaskExecutionOverridesContainerOverrideEnvironmentArgs and GetTaskExecutionOverridesContainerOverrideEnvironmentOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesContainerOverrideEnvironmentInput` via: +// +// GetTaskExecutionOverridesContainerOverrideEnvironmentArgs{...} +type GetTaskExecutionOverridesContainerOverrideEnvironmentInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutput() GetTaskExecutionOverridesContainerOverrideEnvironmentOutput + ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutputWithContext(context.Context) GetTaskExecutionOverridesContainerOverrideEnvironmentOutput +} + +type GetTaskExecutionOverridesContainerOverrideEnvironmentArgs struct { + // The name of the key-value pair. For environment variables, this is the name of the environment variable. + Key pulumi.StringInput `pulumi:"key"` + // The value of the key-value pair. For environment variables, this is the value of the environment variable. + Value pulumi.StringInput `pulumi:"value"` +} + +func (GetTaskExecutionOverridesContainerOverrideEnvironmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideEnvironment)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesContainerOverrideEnvironmentArgs) ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutput() GetTaskExecutionOverridesContainerOverrideEnvironmentOutput { + return i.ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesContainerOverrideEnvironmentArgs) ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideEnvironmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) +} + +// GetTaskExecutionOverridesContainerOverrideEnvironmentArrayInput is an input type that accepts GetTaskExecutionOverridesContainerOverrideEnvironmentArray and GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesContainerOverrideEnvironmentArrayInput` via: +// +// GetTaskExecutionOverridesContainerOverrideEnvironmentArray{ GetTaskExecutionOverridesContainerOverrideEnvironmentArgs{...} } +type GetTaskExecutionOverridesContainerOverrideEnvironmentArrayInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput() GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput + ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutputWithContext(context.Context) GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput +} + +type GetTaskExecutionOverridesContainerOverrideEnvironmentArray []GetTaskExecutionOverridesContainerOverrideEnvironmentInput + +func (GetTaskExecutionOverridesContainerOverrideEnvironmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesContainerOverrideEnvironment)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesContainerOverrideEnvironmentArray) ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput() GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput { + return i.ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesContainerOverrideEnvironmentArray) ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput) +} + +type GetTaskExecutionOverridesContainerOverrideEnvironmentOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideEnvironment)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutput() GetTaskExecutionOverridesContainerOverrideEnvironmentOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) ToGetTaskExecutionOverridesContainerOverrideEnvironmentOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideEnvironmentOutput { + return o +} + +// The name of the key-value pair. For environment variables, this is the name of the environment variable. +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverrideEnvironment) string { return v.Key }).(pulumi.StringOutput) +} + +// The value of the key-value pair. For environment variables, this is the value of the environment variable. +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverrideEnvironment) string { return v.Value }).(pulumi.StringOutput) +} + +type GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesContainerOverrideEnvironment)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput) ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput() GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput) ToGetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionOverridesContainerOverrideEnvironmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionOverridesContainerOverrideEnvironment { + return vs[0].([]GetTaskExecutionOverridesContainerOverrideEnvironment)[vs[1].(int)] + }).(GetTaskExecutionOverridesContainerOverrideEnvironmentOutput) +} + +type GetTaskExecutionOverridesContainerOverrideResourceRequirement struct { + // The type of resource to assign to a container. Valid values are `GPU` or `InferenceAccelerator`. + Type string `pulumi:"type"` + // The value for the specified resource type. If the `GPU` type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. If the `InferenceAccelerator` type is used, the value matches the `deviceName` for an InferenceAccelerator specified in a task definition. + Value string `pulumi:"value"` +} + +// GetTaskExecutionOverridesContainerOverrideResourceRequirementInput is an input type that accepts GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs and GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesContainerOverrideResourceRequirementInput` via: +// +// GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs{...} +type GetTaskExecutionOverridesContainerOverrideResourceRequirementInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutput() GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput + ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutputWithContext(context.Context) GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput +} + +type GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs struct { + // The type of resource to assign to a container. Valid values are `GPU` or `InferenceAccelerator`. + Type pulumi.StringInput `pulumi:"type"` + // The value for the specified resource type. If the `GPU` type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. If the `InferenceAccelerator` type is used, the value matches the `deviceName` for an InferenceAccelerator specified in a task definition. + Value pulumi.StringInput `pulumi:"value"` +} + +func (GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideResourceRequirement)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutput() GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput { + return i.ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) +} + +// GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayInput is an input type that accepts GetTaskExecutionOverridesContainerOverrideResourceRequirementArray and GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayInput` via: +// +// GetTaskExecutionOverridesContainerOverrideResourceRequirementArray{ GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs{...} } +type GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput() GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput + ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutputWithContext(context.Context) GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput +} + +type GetTaskExecutionOverridesContainerOverrideResourceRequirementArray []GetTaskExecutionOverridesContainerOverrideResourceRequirementInput + +func (GetTaskExecutionOverridesContainerOverrideResourceRequirementArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesContainerOverrideResourceRequirement)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesContainerOverrideResourceRequirementArray) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput() GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput { + return i.ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesContainerOverrideResourceRequirementArray) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput) +} + +type GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideResourceRequirement)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutput() GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput { + return o +} + +// The type of resource to assign to a container. Valid values are `GPU` or `InferenceAccelerator`. +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverrideResourceRequirement) string { return v.Type }).(pulumi.StringOutput) +} + +// The value for the specified resource type. If the `GPU` type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. If the `InferenceAccelerator` type is used, the value matches the `deviceName` for an InferenceAccelerator specified in a task definition. +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesContainerOverrideResourceRequirement) string { return v.Value }).(pulumi.StringOutput) +} + +type GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesContainerOverrideResourceRequirement)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput() GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput) ToGetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionOverridesContainerOverrideResourceRequirement { + return vs[0].([]GetTaskExecutionOverridesContainerOverrideResourceRequirement)[vs[1].(int)] + }).(GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput) +} + +type GetTaskExecutionOverridesInferenceAcceleratorOverride struct { + // The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. + DeviceName *string `pulumi:"deviceName"` + // The Elastic Inference accelerator type to use. + DeviceType *string `pulumi:"deviceType"` +} + +// GetTaskExecutionOverridesInferenceAcceleratorOverrideInput is an input type that accepts GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs and GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesInferenceAcceleratorOverrideInput` via: +// +// GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs{...} +type GetTaskExecutionOverridesInferenceAcceleratorOverrideInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutput() GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput + ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutputWithContext(context.Context) GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput +} + +type GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs struct { + // The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. + DeviceName pulumi.StringPtrInput `pulumi:"deviceName"` + // The Elastic Inference accelerator type to use. + DeviceType pulumi.StringPtrInput `pulumi:"deviceType"` +} + +func (GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesInferenceAcceleratorOverride)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutput() GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput { + return i.ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutputWithContext(ctx context.Context) GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) +} + +// GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayInput is an input type that accepts GetTaskExecutionOverridesInferenceAcceleratorOverrideArray and GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayInput` via: +// +// GetTaskExecutionOverridesInferenceAcceleratorOverrideArray{ GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs{...} } +type GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayInput interface { + pulumi.Input + + ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput() GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput + ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutputWithContext(context.Context) GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput +} + +type GetTaskExecutionOverridesInferenceAcceleratorOverrideArray []GetTaskExecutionOverridesInferenceAcceleratorOverrideInput + +func (GetTaskExecutionOverridesInferenceAcceleratorOverrideArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesInferenceAcceleratorOverride)(nil)).Elem() +} + +func (i GetTaskExecutionOverridesInferenceAcceleratorOverrideArray) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput() GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput { + return i.ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionOverridesInferenceAcceleratorOverrideArray) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) +} + +type GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionOverridesInferenceAcceleratorOverride)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutput() GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput { + return o +} + +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideOutputWithContext(ctx context.Context) GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput { + return o +} + +// The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition. +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) DeviceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesInferenceAcceleratorOverride) *string { return v.DeviceName }).(pulumi.StringPtrOutput) +} + +// The Elastic Inference accelerator type to use. +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) DeviceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionOverridesInferenceAcceleratorOverride) *string { return v.DeviceType }).(pulumi.StringPtrOutput) +} + +type GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionOverridesInferenceAcceleratorOverride)(nil)).Elem() +} + +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput() GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) ToGetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutputWithContext(ctx context.Context) GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput { + return o +} + +func (o GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionOverridesInferenceAcceleratorOverride { + return vs[0].([]GetTaskExecutionOverridesInferenceAcceleratorOverride)[vs[1].(int)] + }).(GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput) +} + +type GetTaskExecutionPlacementConstraint struct { + // A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is `distinctInstance`. + Expression *string `pulumi:"expression"` + // The type of constraint. Valid values are `distinctInstance` or `memberOf`. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance. Use `memberOf` to restrict the selection to a group of valid candidates. + Type string `pulumi:"type"` +} + +// GetTaskExecutionPlacementConstraintInput is an input type that accepts GetTaskExecutionPlacementConstraintArgs and GetTaskExecutionPlacementConstraintOutput values. +// You can construct a concrete instance of `GetTaskExecutionPlacementConstraintInput` via: +// +// GetTaskExecutionPlacementConstraintArgs{...} +type GetTaskExecutionPlacementConstraintInput interface { + pulumi.Input + + ToGetTaskExecutionPlacementConstraintOutput() GetTaskExecutionPlacementConstraintOutput + ToGetTaskExecutionPlacementConstraintOutputWithContext(context.Context) GetTaskExecutionPlacementConstraintOutput +} + +type GetTaskExecutionPlacementConstraintArgs struct { + // A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is `distinctInstance`. + Expression pulumi.StringPtrInput `pulumi:"expression"` + // The type of constraint. Valid values are `distinctInstance` or `memberOf`. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance. Use `memberOf` to restrict the selection to a group of valid candidates. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetTaskExecutionPlacementConstraintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionPlacementConstraint)(nil)).Elem() +} + +func (i GetTaskExecutionPlacementConstraintArgs) ToGetTaskExecutionPlacementConstraintOutput() GetTaskExecutionPlacementConstraintOutput { + return i.ToGetTaskExecutionPlacementConstraintOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionPlacementConstraintArgs) ToGetTaskExecutionPlacementConstraintOutputWithContext(ctx context.Context) GetTaskExecutionPlacementConstraintOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionPlacementConstraintOutput) +} + +// GetTaskExecutionPlacementConstraintArrayInput is an input type that accepts GetTaskExecutionPlacementConstraintArray and GetTaskExecutionPlacementConstraintArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionPlacementConstraintArrayInput` via: +// +// GetTaskExecutionPlacementConstraintArray{ GetTaskExecutionPlacementConstraintArgs{...} } +type GetTaskExecutionPlacementConstraintArrayInput interface { + pulumi.Input + + ToGetTaskExecutionPlacementConstraintArrayOutput() GetTaskExecutionPlacementConstraintArrayOutput + ToGetTaskExecutionPlacementConstraintArrayOutputWithContext(context.Context) GetTaskExecutionPlacementConstraintArrayOutput +} + +type GetTaskExecutionPlacementConstraintArray []GetTaskExecutionPlacementConstraintInput + +func (GetTaskExecutionPlacementConstraintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionPlacementConstraint)(nil)).Elem() +} + +func (i GetTaskExecutionPlacementConstraintArray) ToGetTaskExecutionPlacementConstraintArrayOutput() GetTaskExecutionPlacementConstraintArrayOutput { + return i.ToGetTaskExecutionPlacementConstraintArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionPlacementConstraintArray) ToGetTaskExecutionPlacementConstraintArrayOutputWithContext(ctx context.Context) GetTaskExecutionPlacementConstraintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionPlacementConstraintArrayOutput) +} + +type GetTaskExecutionPlacementConstraintOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionPlacementConstraintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionPlacementConstraint)(nil)).Elem() +} + +func (o GetTaskExecutionPlacementConstraintOutput) ToGetTaskExecutionPlacementConstraintOutput() GetTaskExecutionPlacementConstraintOutput { + return o +} + +func (o GetTaskExecutionPlacementConstraintOutput) ToGetTaskExecutionPlacementConstraintOutputWithContext(ctx context.Context) GetTaskExecutionPlacementConstraintOutput { + return o +} + +// A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is `distinctInstance`. +func (o GetTaskExecutionPlacementConstraintOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionPlacementConstraint) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// The type of constraint. Valid values are `distinctInstance` or `memberOf`. Use `distinctInstance` to ensure that each task in a particular group is running on a different container instance. Use `memberOf` to restrict the selection to a group of valid candidates. +func (o GetTaskExecutionPlacementConstraintOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionPlacementConstraint) string { return v.Type }).(pulumi.StringOutput) +} + +type GetTaskExecutionPlacementConstraintArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionPlacementConstraintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionPlacementConstraint)(nil)).Elem() +} + +func (o GetTaskExecutionPlacementConstraintArrayOutput) ToGetTaskExecutionPlacementConstraintArrayOutput() GetTaskExecutionPlacementConstraintArrayOutput { + return o +} + +func (o GetTaskExecutionPlacementConstraintArrayOutput) ToGetTaskExecutionPlacementConstraintArrayOutputWithContext(ctx context.Context) GetTaskExecutionPlacementConstraintArrayOutput { + return o +} + +func (o GetTaskExecutionPlacementConstraintArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionPlacementConstraintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionPlacementConstraint { + return vs[0].([]GetTaskExecutionPlacementConstraint)[vs[1].(int)] + }).(GetTaskExecutionPlacementConstraintOutput) +} + +type GetTaskExecutionPlacementStrategy struct { + // The field to apply the placement strategy against. + Field *string `pulumi:"field"` + // The type of placement strategy. Valid values are `random`, `spread`, and `binpack`. + // + // For more information, see the [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html) documentation. + Type string `pulumi:"type"` +} + +// GetTaskExecutionPlacementStrategyInput is an input type that accepts GetTaskExecutionPlacementStrategyArgs and GetTaskExecutionPlacementStrategyOutput values. +// You can construct a concrete instance of `GetTaskExecutionPlacementStrategyInput` via: +// +// GetTaskExecutionPlacementStrategyArgs{...} +type GetTaskExecutionPlacementStrategyInput interface { + pulumi.Input + + ToGetTaskExecutionPlacementStrategyOutput() GetTaskExecutionPlacementStrategyOutput + ToGetTaskExecutionPlacementStrategyOutputWithContext(context.Context) GetTaskExecutionPlacementStrategyOutput +} + +type GetTaskExecutionPlacementStrategyArgs struct { + // The field to apply the placement strategy against. + Field pulumi.StringPtrInput `pulumi:"field"` + // The type of placement strategy. Valid values are `random`, `spread`, and `binpack`. + // + // For more information, see the [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html) documentation. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetTaskExecutionPlacementStrategyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionPlacementStrategy)(nil)).Elem() +} + +func (i GetTaskExecutionPlacementStrategyArgs) ToGetTaskExecutionPlacementStrategyOutput() GetTaskExecutionPlacementStrategyOutput { + return i.ToGetTaskExecutionPlacementStrategyOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionPlacementStrategyArgs) ToGetTaskExecutionPlacementStrategyOutputWithContext(ctx context.Context) GetTaskExecutionPlacementStrategyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionPlacementStrategyOutput) +} + +// GetTaskExecutionPlacementStrategyArrayInput is an input type that accepts GetTaskExecutionPlacementStrategyArray and GetTaskExecutionPlacementStrategyArrayOutput values. +// You can construct a concrete instance of `GetTaskExecutionPlacementStrategyArrayInput` via: +// +// GetTaskExecutionPlacementStrategyArray{ GetTaskExecutionPlacementStrategyArgs{...} } +type GetTaskExecutionPlacementStrategyArrayInput interface { + pulumi.Input + + ToGetTaskExecutionPlacementStrategyArrayOutput() GetTaskExecutionPlacementStrategyArrayOutput + ToGetTaskExecutionPlacementStrategyArrayOutputWithContext(context.Context) GetTaskExecutionPlacementStrategyArrayOutput +} + +type GetTaskExecutionPlacementStrategyArray []GetTaskExecutionPlacementStrategyInput + +func (GetTaskExecutionPlacementStrategyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionPlacementStrategy)(nil)).Elem() +} + +func (i GetTaskExecutionPlacementStrategyArray) ToGetTaskExecutionPlacementStrategyArrayOutput() GetTaskExecutionPlacementStrategyArrayOutput { + return i.ToGetTaskExecutionPlacementStrategyArrayOutputWithContext(context.Background()) +} + +func (i GetTaskExecutionPlacementStrategyArray) ToGetTaskExecutionPlacementStrategyArrayOutputWithContext(ctx context.Context) GetTaskExecutionPlacementStrategyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetTaskExecutionPlacementStrategyArrayOutput) +} + +type GetTaskExecutionPlacementStrategyOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionPlacementStrategyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetTaskExecutionPlacementStrategy)(nil)).Elem() +} + +func (o GetTaskExecutionPlacementStrategyOutput) ToGetTaskExecutionPlacementStrategyOutput() GetTaskExecutionPlacementStrategyOutput { + return o +} + +func (o GetTaskExecutionPlacementStrategyOutput) ToGetTaskExecutionPlacementStrategyOutputWithContext(ctx context.Context) GetTaskExecutionPlacementStrategyOutput { + return o +} + +// The field to apply the placement strategy against. +func (o GetTaskExecutionPlacementStrategyOutput) Field() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetTaskExecutionPlacementStrategy) *string { return v.Field }).(pulumi.StringPtrOutput) +} + +// The type of placement strategy. Valid values are `random`, `spread`, and `binpack`. +// +// For more information, see the [Placement Strategy](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementStrategy.html) documentation. +func (o GetTaskExecutionPlacementStrategyOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetTaskExecutionPlacementStrategy) string { return v.Type }).(pulumi.StringOutput) +} + +type GetTaskExecutionPlacementStrategyArrayOutput struct{ *pulumi.OutputState } + +func (GetTaskExecutionPlacementStrategyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetTaskExecutionPlacementStrategy)(nil)).Elem() +} + +func (o GetTaskExecutionPlacementStrategyArrayOutput) ToGetTaskExecutionPlacementStrategyArrayOutput() GetTaskExecutionPlacementStrategyArrayOutput { + return o +} + +func (o GetTaskExecutionPlacementStrategyArrayOutput) ToGetTaskExecutionPlacementStrategyArrayOutputWithContext(ctx context.Context) GetTaskExecutionPlacementStrategyArrayOutput { + return o +} + +func (o GetTaskExecutionPlacementStrategyArrayOutput) Index(i pulumi.IntInput) GetTaskExecutionPlacementStrategyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTaskExecutionPlacementStrategy { + return vs[0].([]GetTaskExecutionPlacementStrategy)[vs[1].(int)] + }).(GetTaskExecutionPlacementStrategyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderAutoScalingGroupProviderInput)(nil)).Elem(), CapacityProviderAutoScalingGroupProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderAutoScalingGroupProviderPtrInput)(nil)).Elem(), CapacityProviderAutoScalingGroupProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderAutoScalingGroupProviderManagedScalingInput)(nil)).Elem(), CapacityProviderAutoScalingGroupProviderManagedScalingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CapacityProviderAutoScalingGroupProviderManagedScalingPtrInput)(nil)).Elem(), CapacityProviderAutoScalingGroupProviderManagedScalingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersDefaultCapacityProviderStrategyInput)(nil)).Elem(), ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayInput)(nil)).Elem(), ClusterCapacityProvidersDefaultCapacityProviderStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationInput)(nil)).Elem(), ClusterConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationPtrInput)(nil)).Elem(), ClusterConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationExecuteCommandConfigurationInput)(nil)).Elem(), ClusterConfigurationExecuteCommandConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationExecuteCommandConfigurationPtrInput)(nil)).Elem(), ClusterConfigurationExecuteCommandConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationExecuteCommandConfigurationLogConfigurationInput)(nil)).Elem(), ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrInput)(nil)).Elem(), ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterServiceConnectDefaultsInput)(nil)).Elem(), ClusterServiceConnectDefaultsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterServiceConnectDefaultsPtrInput)(nil)).Elem(), ClusterServiceConnectDefaultsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSettingInput)(nil)).Elem(), ClusterSettingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterSettingArrayInput)(nil)).Elem(), ClusterSettingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceAlarmsInput)(nil)).Elem(), ServiceAlarmsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceAlarmsPtrInput)(nil)).Elem(), ServiceAlarmsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceCapacityProviderStrategyInput)(nil)).Elem(), ServiceCapacityProviderStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceCapacityProviderStrategyArrayInput)(nil)).Elem(), ServiceCapacityProviderStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceDeploymentCircuitBreakerInput)(nil)).Elem(), ServiceDeploymentCircuitBreakerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceDeploymentCircuitBreakerPtrInput)(nil)).Elem(), ServiceDeploymentCircuitBreakerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceDeploymentControllerInput)(nil)).Elem(), ServiceDeploymentControllerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceDeploymentControllerPtrInput)(nil)).Elem(), ServiceDeploymentControllerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLoadBalancerInput)(nil)).Elem(), ServiceLoadBalancerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLoadBalancerArrayInput)(nil)).Elem(), ServiceLoadBalancerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceNetworkConfigurationInput)(nil)).Elem(), ServiceNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceNetworkConfigurationPtrInput)(nil)).Elem(), ServiceNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceOrderedPlacementStrategyInput)(nil)).Elem(), ServiceOrderedPlacementStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceOrderedPlacementStrategyArrayInput)(nil)).Elem(), ServiceOrderedPlacementStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServicePlacementConstraintInput)(nil)).Elem(), ServicePlacementConstraintArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServicePlacementConstraintArrayInput)(nil)).Elem(), ServicePlacementConstraintArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationInput)(nil)).Elem(), ServiceServiceConnectConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationPtrInput)(nil)).Elem(), ServiceServiceConnectConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfigurationInput)(nil)).Elem(), ServiceServiceConnectConfigurationLogConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfigurationPtrInput)(nil)).Elem(), ServiceServiceConnectConfigurationLogConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfigurationSecretOptionInput)(nil)).Elem(), ServiceServiceConnectConfigurationLogConfigurationSecretOptionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayInput)(nil)).Elem(), ServiceServiceConnectConfigurationLogConfigurationSecretOptionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationServiceInput)(nil)).Elem(), ServiceServiceConnectConfigurationServiceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationServiceArrayInput)(nil)).Elem(), ServiceServiceConnectConfigurationServiceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationServiceClientAliasInput)(nil)).Elem(), ServiceServiceConnectConfigurationServiceClientAliasArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceConnectConfigurationServiceClientAliasArrayInput)(nil)).Elem(), ServiceServiceConnectConfigurationServiceClientAliasArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceRegistriesInput)(nil)).Elem(), ServiceServiceRegistriesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceServiceRegistriesPtrInput)(nil)).Elem(), ServiceServiceRegistriesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEphemeralStorageInput)(nil)).Elem(), TaskDefinitionEphemeralStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEphemeralStoragePtrInput)(nil)).Elem(), TaskDefinitionEphemeralStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionInferenceAcceleratorInput)(nil)).Elem(), TaskDefinitionInferenceAcceleratorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionInferenceAcceleratorArrayInput)(nil)).Elem(), TaskDefinitionInferenceAcceleratorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionPlacementConstraintInput)(nil)).Elem(), TaskDefinitionPlacementConstraintArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionPlacementConstraintArrayInput)(nil)).Elem(), TaskDefinitionPlacementConstraintArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionProxyConfigurationInput)(nil)).Elem(), TaskDefinitionProxyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionProxyConfigurationPtrInput)(nil)).Elem(), TaskDefinitionProxyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionRuntimePlatformInput)(nil)).Elem(), TaskDefinitionRuntimePlatformArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionRuntimePlatformPtrInput)(nil)).Elem(), TaskDefinitionRuntimePlatformArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeInput)(nil)).Elem(), TaskDefinitionVolumeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeArrayInput)(nil)).Elem(), TaskDefinitionVolumeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeDockerVolumeConfigurationInput)(nil)).Elem(), TaskDefinitionVolumeDockerVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeDockerVolumeConfigurationPtrInput)(nil)).Elem(), TaskDefinitionVolumeDockerVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfigurationInput)(nil)).Elem(), TaskDefinitionVolumeEfsVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfigurationPtrInput)(nil)).Elem(), TaskDefinitionVolumeEfsVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigInput)(nil)).Elem(), TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrInput)(nil)).Elem(), TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationInput)(nil)).Elem(), TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrInput)(nil)).Elem(), TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigInput)(nil)).Elem(), TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrInput)(nil)).Elem(), TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetCapacityProviderStrategyInput)(nil)).Elem(), TaskSetCapacityProviderStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetCapacityProviderStrategyArrayInput)(nil)).Elem(), TaskSetCapacityProviderStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetLoadBalancerInput)(nil)).Elem(), TaskSetLoadBalancerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetLoadBalancerArrayInput)(nil)).Elem(), TaskSetLoadBalancerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetNetworkConfigurationInput)(nil)).Elem(), TaskSetNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetNetworkConfigurationPtrInput)(nil)).Elem(), TaskSetNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetScaleInput)(nil)).Elem(), TaskSetScaleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetScalePtrInput)(nil)).Elem(), TaskSetScaleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetServiceRegistriesInput)(nil)).Elem(), TaskSetServiceRegistriesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetServiceRegistriesPtrInput)(nil)).Elem(), TaskSetServiceRegistriesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterServiceConnectDefaultInput)(nil)).Elem(), GetClusterServiceConnectDefaultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterServiceConnectDefaultArrayInput)(nil)).Elem(), GetClusterServiceConnectDefaultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterSettingInput)(nil)).Elem(), GetClusterSettingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterSettingArrayInput)(nil)).Elem(), GetClusterSettingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionCapacityProviderStrategyInput)(nil)).Elem(), GetTaskExecutionCapacityProviderStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionCapacityProviderStrategyArrayInput)(nil)).Elem(), GetTaskExecutionCapacityProviderStrategyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionNetworkConfigurationInput)(nil)).Elem(), GetTaskExecutionNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionNetworkConfigurationPtrInput)(nil)).Elem(), GetTaskExecutionNetworkConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesInput)(nil)).Elem(), GetTaskExecutionOverridesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesPtrInput)(nil)).Elem(), GetTaskExecutionOverridesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideInput)(nil)).Elem(), GetTaskExecutionOverridesContainerOverrideArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideArrayInput)(nil)).Elem(), GetTaskExecutionOverridesContainerOverrideArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideEnvironmentInput)(nil)).Elem(), GetTaskExecutionOverridesContainerOverrideEnvironmentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideEnvironmentArrayInput)(nil)).Elem(), GetTaskExecutionOverridesContainerOverrideEnvironmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideResourceRequirementInput)(nil)).Elem(), GetTaskExecutionOverridesContainerOverrideResourceRequirementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayInput)(nil)).Elem(), GetTaskExecutionOverridesContainerOverrideResourceRequirementArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesInferenceAcceleratorOverrideInput)(nil)).Elem(), GetTaskExecutionOverridesInferenceAcceleratorOverrideArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayInput)(nil)).Elem(), GetTaskExecutionOverridesInferenceAcceleratorOverrideArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionPlacementConstraintInput)(nil)).Elem(), GetTaskExecutionPlacementConstraintArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionPlacementConstraintArrayInput)(nil)).Elem(), GetTaskExecutionPlacementConstraintArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionPlacementStrategyInput)(nil)).Elem(), GetTaskExecutionPlacementStrategyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetTaskExecutionPlacementStrategyArrayInput)(nil)).Elem(), GetTaskExecutionPlacementStrategyArray{}) + pulumi.RegisterOutputType(CapacityProviderAutoScalingGroupProviderOutput{}) + pulumi.RegisterOutputType(CapacityProviderAutoScalingGroupProviderPtrOutput{}) + pulumi.RegisterOutputType(CapacityProviderAutoScalingGroupProviderManagedScalingOutput{}) + pulumi.RegisterOutputType(CapacityProviderAutoScalingGroupProviderManagedScalingPtrOutput{}) + pulumi.RegisterOutputType(ClusterCapacityProvidersDefaultCapacityProviderStrategyOutput{}) + pulumi.RegisterOutputType(ClusterCapacityProvidersDefaultCapacityProviderStrategyArrayOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationLogConfigurationOutput{}) + pulumi.RegisterOutputType(ClusterConfigurationExecuteCommandConfigurationLogConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ClusterServiceConnectDefaultsOutput{}) + pulumi.RegisterOutputType(ClusterServiceConnectDefaultsPtrOutput{}) + pulumi.RegisterOutputType(ClusterSettingOutput{}) + pulumi.RegisterOutputType(ClusterSettingArrayOutput{}) + pulumi.RegisterOutputType(ServiceAlarmsOutput{}) + pulumi.RegisterOutputType(ServiceAlarmsPtrOutput{}) + pulumi.RegisterOutputType(ServiceCapacityProviderStrategyOutput{}) + pulumi.RegisterOutputType(ServiceCapacityProviderStrategyArrayOutput{}) + pulumi.RegisterOutputType(ServiceDeploymentCircuitBreakerOutput{}) + pulumi.RegisterOutputType(ServiceDeploymentCircuitBreakerPtrOutput{}) + pulumi.RegisterOutputType(ServiceDeploymentControllerOutput{}) + pulumi.RegisterOutputType(ServiceDeploymentControllerPtrOutput{}) + pulumi.RegisterOutputType(ServiceLoadBalancerOutput{}) + pulumi.RegisterOutputType(ServiceLoadBalancerArrayOutput{}) + pulumi.RegisterOutputType(ServiceNetworkConfigurationOutput{}) + pulumi.RegisterOutputType(ServiceNetworkConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ServiceOrderedPlacementStrategyOutput{}) + pulumi.RegisterOutputType(ServiceOrderedPlacementStrategyArrayOutput{}) + pulumi.RegisterOutputType(ServicePlacementConstraintOutput{}) + pulumi.RegisterOutputType(ServicePlacementConstraintArrayOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationLogConfigurationOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationLogConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationLogConfigurationSecretOptionOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationLogConfigurationSecretOptionArrayOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationServiceOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationServiceArrayOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationServiceClientAliasOutput{}) + pulumi.RegisterOutputType(ServiceServiceConnectConfigurationServiceClientAliasArrayOutput{}) + pulumi.RegisterOutputType(ServiceServiceRegistriesOutput{}) + pulumi.RegisterOutputType(ServiceServiceRegistriesPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionEphemeralStorageOutput{}) + pulumi.RegisterOutputType(TaskDefinitionEphemeralStoragePtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionInferenceAcceleratorOutput{}) + pulumi.RegisterOutputType(TaskDefinitionInferenceAcceleratorArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionPlacementConstraintOutput{}) + pulumi.RegisterOutputType(TaskDefinitionPlacementConstraintArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionProxyConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionProxyConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionRuntimePlatformOutput{}) + pulumi.RegisterOutputType(TaskDefinitionRuntimePlatformPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeDockerVolumeConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeDockerVolumeConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeEfsVolumeConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeEfsVolumeConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigPtrOutput{}) + pulumi.RegisterOutputType(TaskSetCapacityProviderStrategyOutput{}) + pulumi.RegisterOutputType(TaskSetCapacityProviderStrategyArrayOutput{}) + pulumi.RegisterOutputType(TaskSetLoadBalancerOutput{}) + pulumi.RegisterOutputType(TaskSetLoadBalancerArrayOutput{}) + pulumi.RegisterOutputType(TaskSetNetworkConfigurationOutput{}) + pulumi.RegisterOutputType(TaskSetNetworkConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskSetScaleOutput{}) + pulumi.RegisterOutputType(TaskSetScalePtrOutput{}) + pulumi.RegisterOutputType(TaskSetServiceRegistriesOutput{}) + pulumi.RegisterOutputType(TaskSetServiceRegistriesPtrOutput{}) + pulumi.RegisterOutputType(GetClusterServiceConnectDefaultOutput{}) + pulumi.RegisterOutputType(GetClusterServiceConnectDefaultArrayOutput{}) + pulumi.RegisterOutputType(GetClusterSettingOutput{}) + pulumi.RegisterOutputType(GetClusterSettingArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionCapacityProviderStrategyOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionCapacityProviderStrategyArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionNetworkConfigurationOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionNetworkConfigurationPtrOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesPtrOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesContainerOverrideOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesContainerOverrideArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesContainerOverrideEnvironmentOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesContainerOverrideEnvironmentArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesContainerOverrideResourceRequirementOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesContainerOverrideResourceRequirementArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesInferenceAcceleratorOverrideOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionOverridesInferenceAcceleratorOverrideArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionPlacementConstraintOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionPlacementConstraintArrayOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionPlacementStrategyOutput{}) + pulumi.RegisterOutputType(GetTaskExecutionPlacementStrategyArrayOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/service.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/service.go new file mode 100644 index 000000000..527f56320 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/service.go @@ -0,0 +1,833 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **Note:** To prevent a race condition during service deletion, make sure to set `dependsOn` to the related `iam.RolePolicy`; otherwise, the policy may be destroyed too soon and the ECS service will then get stuck in the `DRAINING` state. +// +// Provides an ECS service - effectively a task that is expected to run until an error occurs or a user terminates it (typically a webserver or a database). +// +// See [ECS Services section in AWS developer guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewService(ctx, "mongo", &ecs.ServiceArgs{ +// Cluster: pulumi.Any(aws_ecs_cluster.Foo.Id), +// TaskDefinition: pulumi.Any(aws_ecs_task_definition.Mongo.Arn), +// DesiredCount: pulumi.Int(3), +// IamRole: pulumi.Any(aws_iam_role.Foo.Arn), +// OrderedPlacementStrategies: ecs.ServiceOrderedPlacementStrategyArray{ +// &ecs.ServiceOrderedPlacementStrategyArgs{ +// Type: pulumi.String("binpack"), +// Field: pulumi.String("cpu"), +// }, +// }, +// LoadBalancers: ecs.ServiceLoadBalancerArray{ +// &ecs.ServiceLoadBalancerArgs{ +// TargetGroupArn: pulumi.Any(aws_lb_target_group.Foo.Arn), +// ContainerName: pulumi.String("mongo"), +// ContainerPort: pulumi.Int(8080), +// }, +// }, +// PlacementConstraints: ecs.ServicePlacementConstraintArray{ +// &ecs.ServicePlacementConstraintArgs{ +// Type: pulumi.String("memberOf"), +// Expression: pulumi.String("attribute:ecs.availability-zone in [us-west-2a, us-west-2b]"), +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// aws_iam_role_policy.Foo, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Ignoring Changes to Desired Count +// +// You can use [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to create an ECS service with an initial count of running instances, then ignore any changes to that count caused externally (e.g. Application Autoscaling). +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewService(ctx, "example", &ecs.ServiceArgs{ +// DesiredCount: pulumi.Int(2), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Daemon Scheduling Strategy +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewService(ctx, "bar", &ecs.ServiceArgs{ +// Cluster: pulumi.Any(aws_ecs_cluster.Foo.Id), +// TaskDefinition: pulumi.Any(aws_ecs_task_definition.Bar.Arn), +// SchedulingStrategy: pulumi.String("DAEMON"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### CloudWatch Deployment Alarms +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewService(ctx, "example", &ecs.ServiceArgs{ +// Cluster: pulumi.Any(aws_ecs_cluster.Example.Id), +// Alarms: &ecs.ServiceAlarmsArgs{ +// Enable: pulumi.Bool(true), +// Rollback: pulumi.Bool(true), +// AlarmNames: pulumi.StringArray{ +// aws_cloudwatch_metric_alarm.Example.Alarm_name, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### External Deployment Controller +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewService(ctx, "example", &ecs.ServiceArgs{ +// Cluster: pulumi.Any(aws_ecs_cluster.Example.Id), +// DeploymentController: &ecs.ServiceDeploymentControllerArgs{ +// Type: pulumi.String("EXTERNAL"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS services using the `name` together with ecs cluster `name`. For example: +// +// ```sh +// +// $ pulumi import aws:ecs/service:Service imported cluster-name/service-name +// +// ``` +type Service struct { + pulumi.CustomResourceState + + // Information about the CloudWatch alarms. See below. + Alarms ServiceAlarmsPtrOutput `pulumi:"alarms"` + // Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `forceNewDeployment = true` and not changing from 0 `capacityProviderStrategy` blocks to greater than 0, or vice versa. See below. + CapacityProviderStrategies ServiceCapacityProviderStrategyArrayOutput `pulumi:"capacityProviderStrategies"` + // ARN of an ECS cluster. + Cluster pulumi.StringOutput `pulumi:"cluster"` + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker ServiceDeploymentCircuitBreakerPtrOutput `pulumi:"deploymentCircuitBreaker"` + // Configuration block for deployment controller configuration. See below. + DeploymentController ServiceDeploymentControllerPtrOutput `pulumi:"deploymentController"` + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent pulumi.IntPtrOutput `pulumi:"deploymentMaximumPercent"` + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent pulumi.IntPtrOutput `pulumi:"deploymentMinimumHealthyPercent"` + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount pulumi.IntPtrOutput `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags pulumi.BoolPtrOutput `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand pulumi.BoolPtrOutput `pulumi:"enableExecuteCommand"` + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `orderedPlacementStrategy` and `placementConstraints` updates. + ForceNewDeployment pulumi.BoolPtrOutput `pulumi:"forceNewDeployment"` + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds pulumi.IntPtrOutput `pulumi:"healthCheckGracePeriodSeconds"` + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole pulumi.StringOutput `pulumi:"iamRole"` + // Launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType pulumi.StringOutput `pulumi:"launchType"` + // Configuration block for load balancers. See below. + LoadBalancers ServiceLoadBalancerArrayOutput `pulumi:"loadBalancers"` + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration ServiceNetworkConfigurationPtrOutput `pulumi:"networkConfiguration"` + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. The maximum number of `orderedPlacementStrategy` blocks is `5`. See below. + OrderedPlacementStrategies ServiceOrderedPlacementStrategyArrayOutput `pulumi:"orderedPlacementStrategies"` + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. Maximum number of `placementConstraints` is `10`. See below. + PlacementConstraints ServicePlacementConstraintArrayOutput `pulumi:"placementConstraints"` + // Platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringOutput `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags pulumi.StringPtrOutput `pulumi:"propagateTags"` + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy pulumi.StringPtrOutput `pulumi:"schedulingStrategy"` + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration ServiceServiceConnectConfigurationPtrOutput `pulumi:"serviceConnectConfiguration"` + // Service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. See below. + ServiceRegistries ServiceServiceRegistriesPtrOutput `pulumi:"serviceRegistries"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Required unless using the `EXTERNAL` deployment controller. If a revision is not specified, the latest `ACTIVE` revision is used. + TaskDefinition pulumi.StringPtrOutput `pulumi:"taskDefinition"` + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers pulumi.StringMapOutput `pulumi:"triggers"` + // If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + WaitForSteadyState pulumi.BoolPtrOutput `pulumi:"waitForSteadyState"` +} + +// NewService registers a new resource with the given unique name, arguments, and options. +func NewService(ctx *pulumi.Context, + name string, args *ServiceArgs, opts ...pulumi.ResourceOption) (*Service, error) { + if args == nil { + args = &ServiceArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Service + err := ctx.RegisterResource("aws:ecs/service:Service", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetService gets an existing Service resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetService(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServiceState, opts ...pulumi.ResourceOption) (*Service, error) { + var resource Service + err := ctx.ReadResource("aws:ecs/service:Service", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Service resources. +type serviceState struct { + // Information about the CloudWatch alarms. See below. + Alarms *ServiceAlarms `pulumi:"alarms"` + // Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `forceNewDeployment = true` and not changing from 0 `capacityProviderStrategy` blocks to greater than 0, or vice versa. See below. + CapacityProviderStrategies []ServiceCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + // ARN of an ECS cluster. + Cluster *string `pulumi:"cluster"` + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker *ServiceDeploymentCircuitBreaker `pulumi:"deploymentCircuitBreaker"` + // Configuration block for deployment controller configuration. See below. + DeploymentController *ServiceDeploymentController `pulumi:"deploymentController"` + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent *int `pulumi:"deploymentMaximumPercent"` + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent *int `pulumi:"deploymentMinimumHealthyPercent"` + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount *int `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `orderedPlacementStrategy` and `placementConstraints` updates. + ForceNewDeployment *bool `pulumi:"forceNewDeployment"` + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds *int `pulumi:"healthCheckGracePeriodSeconds"` + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole *string `pulumi:"iamRole"` + // Launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType *string `pulumi:"launchType"` + // Configuration block for load balancers. See below. + LoadBalancers []ServiceLoadBalancer `pulumi:"loadBalancers"` + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration *ServiceNetworkConfiguration `pulumi:"networkConfiguration"` + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. The maximum number of `orderedPlacementStrategy` blocks is `5`. See below. + OrderedPlacementStrategies []ServiceOrderedPlacementStrategy `pulumi:"orderedPlacementStrategies"` + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. Maximum number of `placementConstraints` is `10`. See below. + PlacementConstraints []ServicePlacementConstraint `pulumi:"placementConstraints"` + // Platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags *string `pulumi:"propagateTags"` + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy *string `pulumi:"schedulingStrategy"` + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration *ServiceServiceConnectConfiguration `pulumi:"serviceConnectConfiguration"` + // Service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. See below. + ServiceRegistries *ServiceServiceRegistries `pulumi:"serviceRegistries"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Required unless using the `EXTERNAL` deployment controller. If a revision is not specified, the latest `ACTIVE` revision is used. + TaskDefinition *string `pulumi:"taskDefinition"` + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers map[string]string `pulumi:"triggers"` + // If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + WaitForSteadyState *bool `pulumi:"waitForSteadyState"` +} + +type ServiceState struct { + // Information about the CloudWatch alarms. See below. + Alarms ServiceAlarmsPtrInput + // Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `forceNewDeployment = true` and not changing from 0 `capacityProviderStrategy` blocks to greater than 0, or vice versa. See below. + CapacityProviderStrategies ServiceCapacityProviderStrategyArrayInput + // ARN of an ECS cluster. + Cluster pulumi.StringPtrInput + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker ServiceDeploymentCircuitBreakerPtrInput + // Configuration block for deployment controller configuration. See below. + DeploymentController ServiceDeploymentControllerPtrInput + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent pulumi.IntPtrInput + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent pulumi.IntPtrInput + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount pulumi.IntPtrInput + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags pulumi.BoolPtrInput + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand pulumi.BoolPtrInput + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `orderedPlacementStrategy` and `placementConstraints` updates. + ForceNewDeployment pulumi.BoolPtrInput + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds pulumi.IntPtrInput + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole pulumi.StringPtrInput + // Launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType pulumi.StringPtrInput + // Configuration block for load balancers. See below. + LoadBalancers ServiceLoadBalancerArrayInput + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration ServiceNetworkConfigurationPtrInput + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. The maximum number of `orderedPlacementStrategy` blocks is `5`. See below. + OrderedPlacementStrategies ServiceOrderedPlacementStrategyArrayInput + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. Maximum number of `placementConstraints` is `10`. See below. + PlacementConstraints ServicePlacementConstraintArrayInput + // Platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags pulumi.StringPtrInput + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy pulumi.StringPtrInput + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration ServiceServiceConnectConfigurationPtrInput + // Service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. See below. + ServiceRegistries ServiceServiceRegistriesPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Required unless using the `EXTERNAL` deployment controller. If a revision is not specified, the latest `ACTIVE` revision is used. + TaskDefinition pulumi.StringPtrInput + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers pulumi.StringMapInput + // If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + WaitForSteadyState pulumi.BoolPtrInput +} + +func (ServiceState) ElementType() reflect.Type { + return reflect.TypeOf((*serviceState)(nil)).Elem() +} + +type serviceArgs struct { + // Information about the CloudWatch alarms. See below. + Alarms *ServiceAlarms `pulumi:"alarms"` + // Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `forceNewDeployment = true` and not changing from 0 `capacityProviderStrategy` blocks to greater than 0, or vice versa. See below. + CapacityProviderStrategies []ServiceCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + // ARN of an ECS cluster. + Cluster *string `pulumi:"cluster"` + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker *ServiceDeploymentCircuitBreaker `pulumi:"deploymentCircuitBreaker"` + // Configuration block for deployment controller configuration. See below. + DeploymentController *ServiceDeploymentController `pulumi:"deploymentController"` + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent *int `pulumi:"deploymentMaximumPercent"` + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent *int `pulumi:"deploymentMinimumHealthyPercent"` + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount *int `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `orderedPlacementStrategy` and `placementConstraints` updates. + ForceNewDeployment *bool `pulumi:"forceNewDeployment"` + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds *int `pulumi:"healthCheckGracePeriodSeconds"` + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole *string `pulumi:"iamRole"` + // Launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType *string `pulumi:"launchType"` + // Configuration block for load balancers. See below. + LoadBalancers []ServiceLoadBalancer `pulumi:"loadBalancers"` + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration *ServiceNetworkConfiguration `pulumi:"networkConfiguration"` + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. The maximum number of `orderedPlacementStrategy` blocks is `5`. See below. + OrderedPlacementStrategies []ServiceOrderedPlacementStrategy `pulumi:"orderedPlacementStrategies"` + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. Maximum number of `placementConstraints` is `10`. See below. + PlacementConstraints []ServicePlacementConstraint `pulumi:"placementConstraints"` + // Platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags *string `pulumi:"propagateTags"` + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy *string `pulumi:"schedulingStrategy"` + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration *ServiceServiceConnectConfiguration `pulumi:"serviceConnectConfiguration"` + // Service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. See below. + ServiceRegistries *ServiceServiceRegistries `pulumi:"serviceRegistries"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Required unless using the `EXTERNAL` deployment controller. If a revision is not specified, the latest `ACTIVE` revision is used. + TaskDefinition *string `pulumi:"taskDefinition"` + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers map[string]string `pulumi:"triggers"` + // If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + WaitForSteadyState *bool `pulumi:"waitForSteadyState"` +} + +// The set of arguments for constructing a Service resource. +type ServiceArgs struct { + // Information about the CloudWatch alarms. See below. + Alarms ServiceAlarmsPtrInput + // Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `forceNewDeployment = true` and not changing from 0 `capacityProviderStrategy` blocks to greater than 0, or vice versa. See below. + CapacityProviderStrategies ServiceCapacityProviderStrategyArrayInput + // ARN of an ECS cluster. + Cluster pulumi.StringPtrInput + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker ServiceDeploymentCircuitBreakerPtrInput + // Configuration block for deployment controller configuration. See below. + DeploymentController ServiceDeploymentControllerPtrInput + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent pulumi.IntPtrInput + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent pulumi.IntPtrInput + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount pulumi.IntPtrInput + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags pulumi.BoolPtrInput + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand pulumi.BoolPtrInput + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `orderedPlacementStrategy` and `placementConstraints` updates. + ForceNewDeployment pulumi.BoolPtrInput + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds pulumi.IntPtrInput + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole pulumi.StringPtrInput + // Launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType pulumi.StringPtrInput + // Configuration block for load balancers. See below. + LoadBalancers ServiceLoadBalancerArrayInput + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration ServiceNetworkConfigurationPtrInput + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. The maximum number of `orderedPlacementStrategy` blocks is `5`. See below. + OrderedPlacementStrategies ServiceOrderedPlacementStrategyArrayInput + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. Maximum number of `placementConstraints` is `10`. See below. + PlacementConstraints ServicePlacementConstraintArrayInput + // Platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags pulumi.StringPtrInput + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy pulumi.StringPtrInput + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration ServiceServiceConnectConfigurationPtrInput + // Service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. See below. + ServiceRegistries ServiceServiceRegistriesPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Required unless using the `EXTERNAL` deployment controller. If a revision is not specified, the latest `ACTIVE` revision is used. + TaskDefinition pulumi.StringPtrInput + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers pulumi.StringMapInput + // If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + WaitForSteadyState pulumi.BoolPtrInput +} + +func (ServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serviceArgs)(nil)).Elem() +} + +type ServiceInput interface { + pulumi.Input + + ToServiceOutput() ServiceOutput + ToServiceOutputWithContext(ctx context.Context) ServiceOutput +} + +func (*Service) ElementType() reflect.Type { + return reflect.TypeOf((**Service)(nil)).Elem() +} + +func (i *Service) ToServiceOutput() ServiceOutput { + return i.ToServiceOutputWithContext(context.Background()) +} + +func (i *Service) ToServiceOutputWithContext(ctx context.Context) ServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceOutput) +} + +// ServiceArrayInput is an input type that accepts ServiceArray and ServiceArrayOutput values. +// You can construct a concrete instance of `ServiceArrayInput` via: +// +// ServiceArray{ ServiceArgs{...} } +type ServiceArrayInput interface { + pulumi.Input + + ToServiceArrayOutput() ServiceArrayOutput + ToServiceArrayOutputWithContext(context.Context) ServiceArrayOutput +} + +type ServiceArray []ServiceInput + +func (ServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Service)(nil)).Elem() +} + +func (i ServiceArray) ToServiceArrayOutput() ServiceArrayOutput { + return i.ToServiceArrayOutputWithContext(context.Background()) +} + +func (i ServiceArray) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceArrayOutput) +} + +// ServiceMapInput is an input type that accepts ServiceMap and ServiceMapOutput values. +// You can construct a concrete instance of `ServiceMapInput` via: +// +// ServiceMap{ "key": ServiceArgs{...} } +type ServiceMapInput interface { + pulumi.Input + + ToServiceMapOutput() ServiceMapOutput + ToServiceMapOutputWithContext(context.Context) ServiceMapOutput +} + +type ServiceMap map[string]ServiceInput + +func (ServiceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Service)(nil)).Elem() +} + +func (i ServiceMap) ToServiceMapOutput() ServiceMapOutput { + return i.ToServiceMapOutputWithContext(context.Background()) +} + +func (i ServiceMap) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceMapOutput) +} + +type ServiceOutput struct{ *pulumi.OutputState } + +func (ServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Service)(nil)).Elem() +} + +func (o ServiceOutput) ToServiceOutput() ServiceOutput { + return o +} + +func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOutput { + return o +} + +// Information about the CloudWatch alarms. See below. +func (o ServiceOutput) Alarms() ServiceAlarmsPtrOutput { + return o.ApplyT(func(v *Service) ServiceAlarmsPtrOutput { return v.Alarms }).(ServiceAlarmsPtrOutput) +} + +// Capacity provider strategies to use for the service. Can be one or more. These can be updated without destroying and recreating the service only if `forceNewDeployment = true` and not changing from 0 `capacityProviderStrategy` blocks to greater than 0, or vice versa. See below. +func (o ServiceOutput) CapacityProviderStrategies() ServiceCapacityProviderStrategyArrayOutput { + return o.ApplyT(func(v *Service) ServiceCapacityProviderStrategyArrayOutput { return v.CapacityProviderStrategies }).(ServiceCapacityProviderStrategyArrayOutput) +} + +// ARN of an ECS cluster. +func (o ServiceOutput) Cluster() pulumi.StringOutput { + return o.ApplyT(func(v *Service) pulumi.StringOutput { return v.Cluster }).(pulumi.StringOutput) +} + +// Configuration block for deployment circuit breaker. See below. +func (o ServiceOutput) DeploymentCircuitBreaker() ServiceDeploymentCircuitBreakerPtrOutput { + return o.ApplyT(func(v *Service) ServiceDeploymentCircuitBreakerPtrOutput { return v.DeploymentCircuitBreaker }).(ServiceDeploymentCircuitBreakerPtrOutput) +} + +// Configuration block for deployment controller configuration. See below. +func (o ServiceOutput) DeploymentController() ServiceDeploymentControllerPtrOutput { + return o.ApplyT(func(v *Service) ServiceDeploymentControllerPtrOutput { return v.DeploymentController }).(ServiceDeploymentControllerPtrOutput) +} + +// Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. +func (o ServiceOutput) DeploymentMaximumPercent() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Service) pulumi.IntPtrOutput { return v.DeploymentMaximumPercent }).(pulumi.IntPtrOutput) +} + +// Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. +func (o ServiceOutput) DeploymentMinimumHealthyPercent() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Service) pulumi.IntPtrOutput { return v.DeploymentMinimumHealthyPercent }).(pulumi.IntPtrOutput) +} + +// Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. +func (o ServiceOutput) DesiredCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Service) pulumi.IntPtrOutput { return v.DesiredCount }).(pulumi.IntPtrOutput) +} + +// Specifies whether to enable Amazon ECS managed tags for the tasks within the service. +func (o ServiceOutput) EnableEcsManagedTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Service) pulumi.BoolPtrOutput { return v.EnableEcsManagedTags }).(pulumi.BoolPtrOutput) +} + +// Specifies whether to enable Amazon ECS Exec for the tasks within the service. +func (o ServiceOutput) EnableExecuteCommand() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Service) pulumi.BoolPtrOutput { return v.EnableExecuteCommand }).(pulumi.BoolPtrOutput) +} + +// Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `orderedPlacementStrategy` and `placementConstraints` updates. +func (o ServiceOutput) ForceNewDeployment() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Service) pulumi.BoolPtrOutput { return v.ForceNewDeployment }).(pulumi.BoolPtrOutput) +} + +// Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. +func (o ServiceOutput) HealthCheckGracePeriodSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Service) pulumi.IntPtrOutput { return v.HealthCheckGracePeriodSeconds }).(pulumi.IntPtrOutput) +} + +// ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. +func (o ServiceOutput) IamRole() pulumi.StringOutput { + return o.ApplyT(func(v *Service) pulumi.StringOutput { return v.IamRole }).(pulumi.StringOutput) +} + +// Launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. +func (o ServiceOutput) LaunchType() pulumi.StringOutput { + return o.ApplyT(func(v *Service) pulumi.StringOutput { return v.LaunchType }).(pulumi.StringOutput) +} + +// Configuration block for load balancers. See below. +func (o ServiceOutput) LoadBalancers() ServiceLoadBalancerArrayOutput { + return o.ApplyT(func(v *Service) ServiceLoadBalancerArrayOutput { return v.LoadBalancers }).(ServiceLoadBalancerArrayOutput) +} + +// Name of the service (up to 255 letters, numbers, hyphens, and underscores) +// +// The following arguments are optional: +func (o ServiceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Service) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. +func (o ServiceOutput) NetworkConfiguration() ServiceNetworkConfigurationPtrOutput { + return o.ApplyT(func(v *Service) ServiceNetworkConfigurationPtrOutput { return v.NetworkConfiguration }).(ServiceNetworkConfigurationPtrOutput) +} + +// Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. The maximum number of `orderedPlacementStrategy` blocks is `5`. See below. +func (o ServiceOutput) OrderedPlacementStrategies() ServiceOrderedPlacementStrategyArrayOutput { + return o.ApplyT(func(v *Service) ServiceOrderedPlacementStrategyArrayOutput { return v.OrderedPlacementStrategies }).(ServiceOrderedPlacementStrategyArrayOutput) +} + +// Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `forceNewDeployment` is enabled. Maximum number of `placementConstraints` is `10`. See below. +func (o ServiceOutput) PlacementConstraints() ServicePlacementConstraintArrayOutput { + return o.ApplyT(func(v *Service) ServicePlacementConstraintArrayOutput { return v.PlacementConstraints }).(ServicePlacementConstraintArrayOutput) +} + +// Platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +func (o ServiceOutput) PlatformVersion() pulumi.StringOutput { + return o.ApplyT(func(v *Service) pulumi.StringOutput { return v.PlatformVersion }).(pulumi.StringOutput) +} + +// Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. +func (o ServiceOutput) PropagateTags() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Service) pulumi.StringPtrOutput { return v.PropagateTags }).(pulumi.StringPtrOutput) +} + +// Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). +func (o ServiceOutput) SchedulingStrategy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Service) pulumi.StringPtrOutput { return v.SchedulingStrategy }).(pulumi.StringPtrOutput) +} + +// The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. +func (o ServiceOutput) ServiceConnectConfiguration() ServiceServiceConnectConfigurationPtrOutput { + return o.ApplyT(func(v *Service) ServiceServiceConnectConfigurationPtrOutput { return v.ServiceConnectConfiguration }).(ServiceServiceConnectConfigurationPtrOutput) +} + +// Service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. See below. +func (o ServiceOutput) ServiceRegistries() ServiceServiceRegistriesPtrOutput { + return o.ApplyT(func(v *Service) ServiceServiceRegistriesPtrOutput { return v.ServiceRegistries }).(ServiceServiceRegistriesPtrOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ServiceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Service) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ServiceOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Service) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Required unless using the `EXTERNAL` deployment controller. If a revision is not specified, the latest `ACTIVE` revision is used. +func (o ServiceOutput) TaskDefinition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Service) pulumi.StringPtrOutput { return v.TaskDefinition }).(pulumi.StringPtrOutput) +} + +// Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. +func (o ServiceOutput) Triggers() pulumi.StringMapOutput { + return o.ApplyT(func(v *Service) pulumi.StringMapOutput { return v.Triggers }).(pulumi.StringMapOutput) +} + +// If `true`, this provider will wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. +func (o ServiceOutput) WaitForSteadyState() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Service) pulumi.BoolPtrOutput { return v.WaitForSteadyState }).(pulumi.BoolPtrOutput) +} + +type ServiceArrayOutput struct{ *pulumi.OutputState } + +func (ServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Service)(nil)).Elem() +} + +func (o ServiceArrayOutput) ToServiceArrayOutput() ServiceArrayOutput { + return o +} + +func (o ServiceArrayOutput) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput { + return o +} + +func (o ServiceArrayOutput) Index(i pulumi.IntInput) ServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Service { + return vs[0].([]*Service)[vs[1].(int)] + }).(ServiceOutput) +} + +type ServiceMapOutput struct{ *pulumi.OutputState } + +func (ServiceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Service)(nil)).Elem() +} + +func (o ServiceMapOutput) ToServiceMapOutput() ServiceMapOutput { + return o +} + +func (o ServiceMapOutput) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput { + return o +} + +func (o ServiceMapOutput) MapIndex(k pulumi.StringInput) ServiceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Service { + return vs[0].(map[string]*Service)[vs[1].(string)] + }).(ServiceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServiceInput)(nil)).Elem(), &Service{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceArrayInput)(nil)).Elem(), ServiceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceMapInput)(nil)).Elem(), ServiceMap{}) + pulumi.RegisterOutputType(ServiceOutput{}) + pulumi.RegisterOutputType(ServiceArrayOutput{}) + pulumi.RegisterOutputType(ServiceMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/tag.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/tag.go new file mode 100644 index 000000000..47cc319d4 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/tag.go @@ -0,0 +1,306 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages an individual ECS resource tag. This resource should only be used in cases where ECS resources are created outside the provider (e.g., ECS Clusters implicitly created by Batch Compute Environments). +// +// > **NOTE:** This tagging resource should not be combined with the resource for managing the parent resource. For example, using `ecs.Cluster` and `ecs.Tag` to manage tags of the same ECS Cluster will cause a perpetual difference where the `ecs.Cluster` resource will try to remove the tag being added by the `ecs.Tag` resource. +// +// > **NOTE:** This tagging resource does not use the provider `ignoreTags` configuration. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/batch" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleComputeEnvironment, err := batch.NewComputeEnvironment(ctx, "exampleComputeEnvironment", &batch.ComputeEnvironmentArgs{ +// ComputeEnvironmentName: pulumi.String("example"), +// ServiceRole: pulumi.Any(aws_iam_role.Example.Arn), +// Type: pulumi.String("UNMANAGED"), +// }) +// if err != nil { +// return err +// } +// _, err = ecs.NewTag(ctx, "exampleTag", &ecs.TagArgs{ +// ResourceArn: exampleComputeEnvironment.EcsClusterArn, +// Key: pulumi.String("Name"), +// Value: pulumi.String("Hello World"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import `aws_ecs_tag` using the ECS resource identifier and key, separated by a comma (`,`). For example: +// +// ```sh +// +// $ pulumi import aws:ecs/tag:Tag example arn:aws:ecs:us-east-1:123456789012:cluster/example,Name +// +// ``` +type Tag struct { + pulumi.CustomResourceState + + // Tag name. + Key pulumi.StringOutput `pulumi:"key"` + // Amazon Resource Name (ARN) of the ECS resource to tag. + ResourceArn pulumi.StringOutput `pulumi:"resourceArn"` + // Tag value. + Value pulumi.StringOutput `pulumi:"value"` +} + +// NewTag registers a new resource with the given unique name, arguments, and options. +func NewTag(ctx *pulumi.Context, + name string, args *TagArgs, opts ...pulumi.ResourceOption) (*Tag, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Key == nil { + return nil, errors.New("invalid value for required argument 'Key'") + } + if args.ResourceArn == nil { + return nil, errors.New("invalid value for required argument 'ResourceArn'") + } + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Tag + err := ctx.RegisterResource("aws:ecs/tag:Tag", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTag gets an existing Tag resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetTag(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TagState, opts ...pulumi.ResourceOption) (*Tag, error) { + var resource Tag + err := ctx.ReadResource("aws:ecs/tag:Tag", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Tag resources. +type tagState struct { + // Tag name. + Key *string `pulumi:"key"` + // Amazon Resource Name (ARN) of the ECS resource to tag. + ResourceArn *string `pulumi:"resourceArn"` + // Tag value. + Value *string `pulumi:"value"` +} + +type TagState struct { + // Tag name. + Key pulumi.StringPtrInput + // Amazon Resource Name (ARN) of the ECS resource to tag. + ResourceArn pulumi.StringPtrInput + // Tag value. + Value pulumi.StringPtrInput +} + +func (TagState) ElementType() reflect.Type { + return reflect.TypeOf((*tagState)(nil)).Elem() +} + +type tagArgs struct { + // Tag name. + Key string `pulumi:"key"` + // Amazon Resource Name (ARN) of the ECS resource to tag. + ResourceArn string `pulumi:"resourceArn"` + // Tag value. + Value string `pulumi:"value"` +} + +// The set of arguments for constructing a Tag resource. +type TagArgs struct { + // Tag name. + Key pulumi.StringInput + // Amazon Resource Name (ARN) of the ECS resource to tag. + ResourceArn pulumi.StringInput + // Tag value. + Value pulumi.StringInput +} + +func (TagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*tagArgs)(nil)).Elem() +} + +type TagInput interface { + pulumi.Input + + ToTagOutput() TagOutput + ToTagOutputWithContext(ctx context.Context) TagOutput +} + +func (*Tag) ElementType() reflect.Type { + return reflect.TypeOf((**Tag)(nil)).Elem() +} + +func (i *Tag) ToTagOutput() TagOutput { + return i.ToTagOutputWithContext(context.Background()) +} + +func (i *Tag) ToTagOutputWithContext(ctx context.Context) TagOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagOutput) +} + +// TagArrayInput is an input type that accepts TagArray and TagArrayOutput values. +// You can construct a concrete instance of `TagArrayInput` via: +// +// TagArray{ TagArgs{...} } +type TagArrayInput interface { + pulumi.Input + + ToTagArrayOutput() TagArrayOutput + ToTagArrayOutputWithContext(context.Context) TagArrayOutput +} + +type TagArray []TagInput + +func (TagArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Tag)(nil)).Elem() +} + +func (i TagArray) ToTagArrayOutput() TagArrayOutput { + return i.ToTagArrayOutputWithContext(context.Background()) +} + +func (i TagArray) ToTagArrayOutputWithContext(ctx context.Context) TagArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagArrayOutput) +} + +// TagMapInput is an input type that accepts TagMap and TagMapOutput values. +// You can construct a concrete instance of `TagMapInput` via: +// +// TagMap{ "key": TagArgs{...} } +type TagMapInput interface { + pulumi.Input + + ToTagMapOutput() TagMapOutput + ToTagMapOutputWithContext(context.Context) TagMapOutput +} + +type TagMap map[string]TagInput + +func (TagMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Tag)(nil)).Elem() +} + +func (i TagMap) ToTagMapOutput() TagMapOutput { + return i.ToTagMapOutputWithContext(context.Background()) +} + +func (i TagMap) ToTagMapOutputWithContext(ctx context.Context) TagMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagMapOutput) +} + +type TagOutput struct{ *pulumi.OutputState } + +func (TagOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Tag)(nil)).Elem() +} + +func (o TagOutput) ToTagOutput() TagOutput { + return o +} + +func (o TagOutput) ToTagOutputWithContext(ctx context.Context) TagOutput { + return o +} + +// Tag name. +func (o TagOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *Tag) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// Amazon Resource Name (ARN) of the ECS resource to tag. +func (o TagOutput) ResourceArn() pulumi.StringOutput { + return o.ApplyT(func(v *Tag) pulumi.StringOutput { return v.ResourceArn }).(pulumi.StringOutput) +} + +// Tag value. +func (o TagOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v *Tag) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput) +} + +type TagArrayOutput struct{ *pulumi.OutputState } + +func (TagArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Tag)(nil)).Elem() +} + +func (o TagArrayOutput) ToTagArrayOutput() TagArrayOutput { + return o +} + +func (o TagArrayOutput) ToTagArrayOutputWithContext(ctx context.Context) TagArrayOutput { + return o +} + +func (o TagArrayOutput) Index(i pulumi.IntInput) TagOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Tag { + return vs[0].([]*Tag)[vs[1].(int)] + }).(TagOutput) +} + +type TagMapOutput struct{ *pulumi.OutputState } + +func (TagMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Tag)(nil)).Elem() +} + +func (o TagMapOutput) ToTagMapOutput() TagMapOutput { + return o +} + +func (o TagMapOutput) ToTagMapOutputWithContext(ctx context.Context) TagMapOutput { + return o +} + +func (o TagMapOutput) MapIndex(k pulumi.StringInput) TagOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Tag { + return vs[0].(map[string]*Tag)[vs[1].(string)] + }).(TagOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TagInput)(nil)).Elem(), &Tag{}) + pulumi.RegisterInputType(reflect.TypeOf((*TagArrayInput)(nil)).Elem(), TagArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TagMapInput)(nil)).Elem(), TagMap{}) + pulumi.RegisterOutputType(TagOutput{}) + pulumi.RegisterOutputType(TagArrayOutput{}) + pulumi.RegisterOutputType(TagMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskDefinition.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskDefinition.go new file mode 100644 index 000000000..924b4814e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskDefinition.go @@ -0,0 +1,954 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages a revision of an ECS task definition to be used in `ecs.Service`. +// +// ## Example Usage +// ### Basic Example +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal([]interface{}{ +// map[string]interface{}{ +// "name": "first", +// "image": "service-first", +// "cpu": 10, +// "memory": 512, +// "essential": true, +// "portMappings": []map[string]interface{}{ +// map[string]interface{}{ +// "containerPort": 80, +// "hostPort": 80, +// }, +// }, +// }, +// map[string]interface{}{ +// "name": "second", +// "image": "service-second", +// "cpu": 10, +// "memory": 256, +// "essential": true, +// "portMappings": []map[string]interface{}{ +// map[string]interface{}{ +// "containerPort": 443, +// "hostPort": 443, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{ +// Family: pulumi.String("service"), +// ContainerDefinitions: pulumi.String(json0), +// Volumes: ecs.TaskDefinitionVolumeArray{ +// &ecs.TaskDefinitionVolumeArgs{ +// Name: pulumi.String("service-storage"), +// HostPath: pulumi.String("/ecs/service-storage"), +// }, +// }, +// PlacementConstraints: ecs.TaskDefinitionPlacementConstraintArray{ +// &ecs.TaskDefinitionPlacementConstraintArgs{ +// Type: pulumi.String("memberOf"), +// Expression: pulumi.String("attribute:ecs.availability-zone in [us-west-2a, us-west-2b]"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### With AppMesh Proxy +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{ +// Family: pulumi.String("service"), +// ContainerDefinitions: readFileOrPanic("task-definitions/service.json"), +// ProxyConfiguration: &ecs.TaskDefinitionProxyConfigurationArgs{ +// Type: pulumi.String("APPMESH"), +// ContainerName: pulumi.String("applicationContainerName"), +// Properties: pulumi.StringMap{ +// "AppPorts": pulumi.String("8080"), +// "EgressIgnoredIPs": pulumi.String("169.254.170.2,169.254.169.254"), +// "IgnoredUID": pulumi.String("1337"), +// "ProxyEgressPort": pulumi.String("15001"), +// "ProxyIngressPort": pulumi.String("15000"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example Using `dockerVolumeConfiguration` +// +// ```go +// package main +// +// import ( +// +// "fmt" +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{ +// Family: pulumi.String("service"), +// ContainerDefinitions: readFileOrPanic("task-definitions/service.json"), +// Volumes: ecs.TaskDefinitionVolumeArray{ +// &ecs.TaskDefinitionVolumeArgs{ +// Name: pulumi.String("service-storage"), +// DockerVolumeConfiguration: &ecs.TaskDefinitionVolumeDockerVolumeConfigurationArgs{ +// Scope: pulumi.String("shared"), +// Autoprovision: pulumi.Bool(true), +// Driver: pulumi.String("local"), +// DriverOpts: pulumi.StringMap{ +// "type": pulumi.String("nfs"), +// "device": pulumi.String(fmt.Sprintf("%v:/", aws_efs_file_system.Fs.Dns_name)), +// "o": pulumi.String(fmt.Sprintf("addr=%v,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport", aws_efs_file_system.Fs.Dns_name)), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example Using `efsVolumeConfiguration` +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{ +// Family: pulumi.String("service"), +// ContainerDefinitions: readFileOrPanic("task-definitions/service.json"), +// Volumes: ecs.TaskDefinitionVolumeArray{ +// &ecs.TaskDefinitionVolumeArgs{ +// Name: pulumi.String("service-storage"), +// EfsVolumeConfiguration: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationArgs{ +// FileSystemId: pulumi.Any(aws_efs_file_system.Fs.Id), +// RootDirectory: pulumi.String("/opt/data"), +// TransitEncryption: pulumi.String("ENABLED"), +// TransitEncryptionPort: pulumi.Int(2999), +// AuthorizationConfig: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{ +// AccessPointId: pulumi.Any(aws_efs_access_point.Test.Id), +// Iam: pulumi.String("ENABLED"), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example Using `fsxWindowsFileServerVolumeConfiguration` +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/secretsmanager" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "username": "admin", +// "password": aws_directory_service_directory.Test.Password, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// test, err := secretsmanager.NewSecretVersion(ctx, "test", &secretsmanager.SecretVersionArgs{ +// SecretId: pulumi.Any(aws_secretsmanager_secret.Test.Id), +// SecretString: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// _, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{ +// Family: pulumi.String("service"), +// ContainerDefinitions: readFileOrPanic("task-definitions/service.json"), +// Volumes: ecs.TaskDefinitionVolumeArray{ +// &ecs.TaskDefinitionVolumeArgs{ +// Name: pulumi.String("service-storage"), +// FsxWindowsFileServerVolumeConfiguration: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{ +// FileSystemId: pulumi.Any(aws_fsx_windows_file_system.Test.Id), +// RootDirectory: pulumi.String("\\data"), +// AuthorizationConfig: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{ +// CredentialsParameter: test.Arn, +// Domain: pulumi.Any(aws_directory_service_directory.Test.Name), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example Using `containerDefinitions` and `inferenceAccelerator` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewTaskDefinition(ctx, "test", &ecs.TaskDefinitionArgs{ +// ContainerDefinitions: pulumi.String(`[ +// { +// "cpu": 10, +// "command": ["sleep", "10"], +// "entryPoint": ["/"], +// "environment": [ +// {"name": "VARNAME", "value": "VARVAL"} +// ], +// "essential": true, +// "image": "jenkins", +// "memory": 128, +// "name": "jenkins", +// "portMappings": [ +// { +// "containerPort": 80, +// "hostPort": 8080 +// } +// ], +// "resourceRequirements":[ +// { +// "type":"InferenceAccelerator", +// "value":"device_1" +// } +// ] +// } +// +// ] +// +// `), +// +// Family: pulumi.String("test"), +// InferenceAccelerators: ecs.TaskDefinitionInferenceAcceleratorArray{ +// &ecs.TaskDefinitionInferenceAcceleratorArgs{ +// DeviceName: pulumi.String("device_1"), +// DeviceType: pulumi.String("eia1.medium"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example Using `runtimePlatform` and `fargate` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewTaskDefinition(ctx, "test", &ecs.TaskDefinitionArgs{ +// ContainerDefinitions: pulumi.String(`[ +// { +// "name": "iis", +// "image": "mcr.microsoft.com/windows/servercore/iis", +// "cpu": 1024, +// "memory": 2048, +// "essential": true +// } +// +// ] +// +// `), +// +// Cpu: pulumi.String("1024"), +// Family: pulumi.String("test"), +// Memory: pulumi.String("2048"), +// NetworkMode: pulumi.String("awsvpc"), +// RequiresCompatibilities: pulumi.StringArray{ +// pulumi.String("FARGATE"), +// }, +// RuntimePlatform: &ecs.TaskDefinitionRuntimePlatformArgs{ +// CpuArchitecture: pulumi.String("X86_64"), +// OperatingSystemFamily: pulumi.String("WINDOWS_SERVER_2019_CORE"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS Task Definitions using their ARNs. For example: +// +// ```sh +// +// $ pulumi import aws:ecs/taskDefinition:TaskDefinition example arn:aws:ecs:us-east-1:012345678910:task-definition/mytaskfamily:123 +// +// ``` +type TaskDefinition struct { + pulumi.CustomResourceState + + // Full ARN of the Task Definition (including both `family` and `revision`). + Arn pulumi.StringOutput `pulumi:"arn"` + // ARN of the Task Definition with the trailing `revision` removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the [AWS documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html#ECS-StartTask-request-taskDefinition) for details. + ArnWithoutRevision pulumi.StringOutput `pulumi:"arnWithoutRevision"` + // A list of valid [container definitions](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). + ContainerDefinitions pulumi.StringOutput `pulumi:"containerDefinitions"` + // Number of cpu units used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Cpu pulumi.StringPtrOutput `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage TaskDefinitionEphemeralStoragePtrOutput `pulumi:"ephemeralStorage"` + // ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRoleArn pulumi.StringPtrOutput `pulumi:"executionRoleArn"` + // A unique name for your task definition. + // + // The following arguments are optional: + Family pulumi.StringOutput `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators TaskDefinitionInferenceAcceleratorArrayOutput `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrOutput `pulumi:"ipcMode"` + // Amount (in MiB) of memory used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Memory pulumi.StringPtrOutput `pulumi:"memory"` + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode pulumi.StringOutput `pulumi:"networkMode"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrOutput `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placementConstraints` is `10`. Detailed below. + PlacementConstraints TaskDefinitionPlacementConstraintArrayOutput `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration TaskDefinitionProxyConfigurationPtrOutput `pulumi:"proxyConfiguration"` + // Set of launch types required by the task. The valid values are `EC2` and `FARGATE`. + RequiresCompatibilities pulumi.StringArrayOutput `pulumi:"requiresCompatibilities"` + // Revision of the task in a particular family. + Revision pulumi.IntOutput `pulumi:"revision"` + // Configuration block for runtimePlatform that containers in your task may use. + RuntimePlatform TaskDefinitionRuntimePlatformPtrOutput `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrOutput `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRoleArn pulumi.StringPtrOutput `pulumi:"taskRoleArn"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes TaskDefinitionVolumeArrayOutput `pulumi:"volumes"` +} + +// NewTaskDefinition registers a new resource with the given unique name, arguments, and options. +func NewTaskDefinition(ctx *pulumi.Context, + name string, args *TaskDefinitionArgs, opts ...pulumi.ResourceOption) (*TaskDefinition, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ContainerDefinitions == nil { + return nil, errors.New("invalid value for required argument 'ContainerDefinitions'") + } + if args.Family == nil { + return nil, errors.New("invalid value for required argument 'Family'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource TaskDefinition + err := ctx.RegisterResource("aws:ecs/taskDefinition:TaskDefinition", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTaskDefinition gets an existing TaskDefinition resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetTaskDefinition(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TaskDefinitionState, opts ...pulumi.ResourceOption) (*TaskDefinition, error) { + var resource TaskDefinition + err := ctx.ReadResource("aws:ecs/taskDefinition:TaskDefinition", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering TaskDefinition resources. +type taskDefinitionState struct { + // Full ARN of the Task Definition (including both `family` and `revision`). + Arn *string `pulumi:"arn"` + // ARN of the Task Definition with the trailing `revision` removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the [AWS documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html#ECS-StartTask-request-taskDefinition) for details. + ArnWithoutRevision *string `pulumi:"arnWithoutRevision"` + // A list of valid [container definitions](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). + ContainerDefinitions *string `pulumi:"containerDefinitions"` + // Number of cpu units used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Cpu *string `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage *TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` + // ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRoleArn *string `pulumi:"executionRoleArn"` + // A unique name for your task definition. + // + // The following arguments are optional: + Family *string `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators []TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode *string `pulumi:"ipcMode"` + // Amount (in MiB) of memory used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Memory *string `pulumi:"memory"` + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode *string `pulumi:"networkMode"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode *string `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placementConstraints` is `10`. Detailed below. + PlacementConstraints []TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration *TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Set of launch types required by the task. The valid values are `EC2` and `FARGATE`. + RequiresCompatibilities []string `pulumi:"requiresCompatibilities"` + // Revision of the task in a particular family. + Revision *int `pulumi:"revision"` + // Configuration block for runtimePlatform that containers in your task may use. + RuntimePlatform *TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy *bool `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRoleArn *string `pulumi:"taskRoleArn"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes []TaskDefinitionVolume `pulumi:"volumes"` +} + +type TaskDefinitionState struct { + // Full ARN of the Task Definition (including both `family` and `revision`). + Arn pulumi.StringPtrInput + // ARN of the Task Definition with the trailing `revision` removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the [AWS documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html#ECS-StartTask-request-taskDefinition) for details. + ArnWithoutRevision pulumi.StringPtrInput + // A list of valid [container definitions](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). + ContainerDefinitions pulumi.StringPtrInput + // Number of cpu units used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Cpu pulumi.StringPtrInput + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage TaskDefinitionEphemeralStoragePtrInput + // ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRoleArn pulumi.StringPtrInput + // A unique name for your task definition. + // + // The following arguments are optional: + Family pulumi.StringPtrInput + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators TaskDefinitionInferenceAcceleratorArrayInput + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrInput + // Amount (in MiB) of memory used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Memory pulumi.StringPtrInput + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode pulumi.StringPtrInput + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrInput + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placementConstraints` is `10`. Detailed below. + PlacementConstraints TaskDefinitionPlacementConstraintArrayInput + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration TaskDefinitionProxyConfigurationPtrInput + // Set of launch types required by the task. The valid values are `EC2` and `FARGATE`. + RequiresCompatibilities pulumi.StringArrayInput + // Revision of the task in a particular family. + Revision pulumi.IntPtrInput + // Configuration block for runtimePlatform that containers in your task may use. + RuntimePlatform TaskDefinitionRuntimePlatformPtrInput + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRoleArn pulumi.StringPtrInput + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes TaskDefinitionVolumeArrayInput +} + +func (TaskDefinitionState) ElementType() reflect.Type { + return reflect.TypeOf((*taskDefinitionState)(nil)).Elem() +} + +type taskDefinitionArgs struct { + // A list of valid [container definitions](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). + ContainerDefinitions string `pulumi:"containerDefinitions"` + // Number of cpu units used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Cpu *string `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage *TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` + // ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRoleArn *string `pulumi:"executionRoleArn"` + // A unique name for your task definition. + // + // The following arguments are optional: + Family string `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators []TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode *string `pulumi:"ipcMode"` + // Amount (in MiB) of memory used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Memory *string `pulumi:"memory"` + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode *string `pulumi:"networkMode"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode *string `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placementConstraints` is `10`. Detailed below. + PlacementConstraints []TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration *TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Set of launch types required by the task. The valid values are `EC2` and `FARGATE`. + RequiresCompatibilities []string `pulumi:"requiresCompatibilities"` + // Configuration block for runtimePlatform that containers in your task may use. + RuntimePlatform *TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy *bool `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRoleArn *string `pulumi:"taskRoleArn"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes []TaskDefinitionVolume `pulumi:"volumes"` +} + +// The set of arguments for constructing a TaskDefinition resource. +type TaskDefinitionArgs struct { + // A list of valid [container definitions](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). + ContainerDefinitions pulumi.StringInput + // Number of cpu units used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Cpu pulumi.StringPtrInput + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage TaskDefinitionEphemeralStoragePtrInput + // ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRoleArn pulumi.StringPtrInput + // A unique name for your task definition. + // + // The following arguments are optional: + Family pulumi.StringInput + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators TaskDefinitionInferenceAcceleratorArrayInput + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrInput + // Amount (in MiB) of memory used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. + Memory pulumi.StringPtrInput + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode pulumi.StringPtrInput + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrInput + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placementConstraints` is `10`. Detailed below. + PlacementConstraints TaskDefinitionPlacementConstraintArrayInput + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration TaskDefinitionProxyConfigurationPtrInput + // Set of launch types required by the task. The valid values are `EC2` and `FARGATE`. + RequiresCompatibilities pulumi.StringArrayInput + // Configuration block for runtimePlatform that containers in your task may use. + RuntimePlatform TaskDefinitionRuntimePlatformPtrInput + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrInput + // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRoleArn pulumi.StringPtrInput + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes TaskDefinitionVolumeArrayInput +} + +func (TaskDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*taskDefinitionArgs)(nil)).Elem() +} + +type TaskDefinitionInput interface { + pulumi.Input + + ToTaskDefinitionOutput() TaskDefinitionOutput + ToTaskDefinitionOutputWithContext(ctx context.Context) TaskDefinitionOutput +} + +func (*TaskDefinition) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinition)(nil)).Elem() +} + +func (i *TaskDefinition) ToTaskDefinitionOutput() TaskDefinitionOutput { + return i.ToTaskDefinitionOutputWithContext(context.Background()) +} + +func (i *TaskDefinition) ToTaskDefinitionOutputWithContext(ctx context.Context) TaskDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionOutput) +} + +// TaskDefinitionArrayInput is an input type that accepts TaskDefinitionArray and TaskDefinitionArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionArrayInput` via: +// +// TaskDefinitionArray{ TaskDefinitionArgs{...} } +type TaskDefinitionArrayInput interface { + pulumi.Input + + ToTaskDefinitionArrayOutput() TaskDefinitionArrayOutput + ToTaskDefinitionArrayOutputWithContext(context.Context) TaskDefinitionArrayOutput +} + +type TaskDefinitionArray []TaskDefinitionInput + +func (TaskDefinitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*TaskDefinition)(nil)).Elem() +} + +func (i TaskDefinitionArray) ToTaskDefinitionArrayOutput() TaskDefinitionArrayOutput { + return i.ToTaskDefinitionArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionArray) ToTaskDefinitionArrayOutputWithContext(ctx context.Context) TaskDefinitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionArrayOutput) +} + +// TaskDefinitionMapInput is an input type that accepts TaskDefinitionMap and TaskDefinitionMapOutput values. +// You can construct a concrete instance of `TaskDefinitionMapInput` via: +// +// TaskDefinitionMap{ "key": TaskDefinitionArgs{...} } +type TaskDefinitionMapInput interface { + pulumi.Input + + ToTaskDefinitionMapOutput() TaskDefinitionMapOutput + ToTaskDefinitionMapOutputWithContext(context.Context) TaskDefinitionMapOutput +} + +type TaskDefinitionMap map[string]TaskDefinitionInput + +func (TaskDefinitionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*TaskDefinition)(nil)).Elem() +} + +func (i TaskDefinitionMap) ToTaskDefinitionMapOutput() TaskDefinitionMapOutput { + return i.ToTaskDefinitionMapOutputWithContext(context.Background()) +} + +func (i TaskDefinitionMap) ToTaskDefinitionMapOutputWithContext(ctx context.Context) TaskDefinitionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionMapOutput) +} + +type TaskDefinitionOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinition)(nil)).Elem() +} + +func (o TaskDefinitionOutput) ToTaskDefinitionOutput() TaskDefinitionOutput { + return o +} + +func (o TaskDefinitionOutput) ToTaskDefinitionOutputWithContext(ctx context.Context) TaskDefinitionOutput { + return o +} + +// Full ARN of the Task Definition (including both `family` and `revision`). +func (o TaskDefinitionOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// ARN of the Task Definition with the trailing `revision` removed. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the [AWS documentation](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html#ECS-StartTask-request-taskDefinition) for details. +func (o TaskDefinitionOutput) ArnWithoutRevision() pulumi.StringOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringOutput { return v.ArnWithoutRevision }).(pulumi.StringOutput) +} + +// A list of valid [container definitions](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html) provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html) section from the official [Developer Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide). +func (o TaskDefinitionOutput) ContainerDefinitions() pulumi.StringOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringOutput { return v.ContainerDefinitions }).(pulumi.StringOutput) +} + +// Number of cpu units used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. +func (o TaskDefinitionOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.Cpu }).(pulumi.StringPtrOutput) +} + +// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. +func (o TaskDefinitionOutput) EphemeralStorage() TaskDefinitionEphemeralStoragePtrOutput { + return o.ApplyT(func(v *TaskDefinition) TaskDefinitionEphemeralStoragePtrOutput { return v.EphemeralStorage }).(TaskDefinitionEphemeralStoragePtrOutput) +} + +// ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume. +func (o TaskDefinitionOutput) ExecutionRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.ExecutionRoleArn }).(pulumi.StringPtrOutput) +} + +// A unique name for your task definition. +// +// The following arguments are optional: +func (o TaskDefinitionOutput) Family() pulumi.StringOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringOutput { return v.Family }).(pulumi.StringOutput) +} + +// Configuration block(s) with Inference Accelerators settings. Detailed below. +func (o TaskDefinitionOutput) InferenceAccelerators() TaskDefinitionInferenceAcceleratorArrayOutput { + return o.ApplyT(func(v *TaskDefinition) TaskDefinitionInferenceAcceleratorArrayOutput { return v.InferenceAccelerators }).(TaskDefinitionInferenceAcceleratorArrayOutput) +} + +// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. +func (o TaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.IpcMode }).(pulumi.StringPtrOutput) +} + +// Amount (in MiB) of memory used by the task. If the `requiresCompatibilities` is `FARGATE` this field is required. +func (o TaskDefinitionOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.Memory }).(pulumi.StringPtrOutput) +} + +// Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. +func (o TaskDefinitionOutput) NetworkMode() pulumi.StringOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringOutput { return v.NetworkMode }).(pulumi.StringOutput) +} + +// Process namespace to use for the containers in the task. The valid values are `host` and `task`. +func (o TaskDefinitionOutput) PidMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.PidMode }).(pulumi.StringPtrOutput) +} + +// Configuration block for rules that are taken into consideration during task placement. Maximum number of `placementConstraints` is `10`. Detailed below. +func (o TaskDefinitionOutput) PlacementConstraints() TaskDefinitionPlacementConstraintArrayOutput { + return o.ApplyT(func(v *TaskDefinition) TaskDefinitionPlacementConstraintArrayOutput { return v.PlacementConstraints }).(TaskDefinitionPlacementConstraintArrayOutput) +} + +// Configuration block for the App Mesh proxy. Detailed below. +func (o TaskDefinitionOutput) ProxyConfiguration() TaskDefinitionProxyConfigurationPtrOutput { + return o.ApplyT(func(v *TaskDefinition) TaskDefinitionProxyConfigurationPtrOutput { return v.ProxyConfiguration }).(TaskDefinitionProxyConfigurationPtrOutput) +} + +// Set of launch types required by the task. The valid values are `EC2` and `FARGATE`. +func (o TaskDefinitionOutput) RequiresCompatibilities() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringArrayOutput { return v.RequiresCompatibilities }).(pulumi.StringArrayOutput) +} + +// Revision of the task in a particular family. +func (o TaskDefinitionOutput) Revision() pulumi.IntOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.IntOutput { return v.Revision }).(pulumi.IntOutput) +} + +// Configuration block for runtimePlatform that containers in your task may use. +func (o TaskDefinitionOutput) RuntimePlatform() TaskDefinitionRuntimePlatformPtrOutput { + return o.ApplyT(func(v *TaskDefinition) TaskDefinitionRuntimePlatformPtrOutput { return v.RuntimePlatform }).(TaskDefinitionRuntimePlatformPtrOutput) +} + +// Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. +func (o TaskDefinitionOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.BoolPtrOutput { return v.SkipDestroy }).(pulumi.BoolPtrOutput) +} + +// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o TaskDefinitionOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o TaskDefinitionOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. +func (o TaskDefinitionOutput) TaskRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinition) pulumi.StringPtrOutput { return v.TaskRoleArn }).(pulumi.StringPtrOutput) +} + +// Configuration block for volumes that containers in your task may use. Detailed below. +func (o TaskDefinitionOutput) Volumes() TaskDefinitionVolumeArrayOutput { + return o.ApplyT(func(v *TaskDefinition) TaskDefinitionVolumeArrayOutput { return v.Volumes }).(TaskDefinitionVolumeArrayOutput) +} + +type TaskDefinitionArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*TaskDefinition)(nil)).Elem() +} + +func (o TaskDefinitionArrayOutput) ToTaskDefinitionArrayOutput() TaskDefinitionArrayOutput { + return o +} + +func (o TaskDefinitionArrayOutput) ToTaskDefinitionArrayOutputWithContext(ctx context.Context) TaskDefinitionArrayOutput { + return o +} + +func (o TaskDefinitionArrayOutput) Index(i pulumi.IntInput) TaskDefinitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TaskDefinition { + return vs[0].([]*TaskDefinition)[vs[1].(int)] + }).(TaskDefinitionOutput) +} + +type TaskDefinitionMapOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*TaskDefinition)(nil)).Elem() +} + +func (o TaskDefinitionMapOutput) ToTaskDefinitionMapOutput() TaskDefinitionMapOutput { + return o +} + +func (o TaskDefinitionMapOutput) ToTaskDefinitionMapOutputWithContext(ctx context.Context) TaskDefinitionMapOutput { + return o +} + +func (o TaskDefinitionMapOutput) MapIndex(k pulumi.StringInput) TaskDefinitionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TaskDefinition { + return vs[0].(map[string]*TaskDefinition)[vs[1].(string)] + }).(TaskDefinitionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionInput)(nil)).Elem(), &TaskDefinition{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionArrayInput)(nil)).Elem(), TaskDefinitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionMapInput)(nil)).Elem(), TaskDefinitionMap{}) + pulumi.RegisterOutputType(TaskDefinitionOutput{}) + pulumi.RegisterOutputType(TaskDefinitionArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskSet.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskSet.go new file mode 100644 index 000000000..d307b182e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs/taskSet.go @@ -0,0 +1,561 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an ECS task set - effectively a task that is expected to run until an error occurs or a user terminates it (typically a webserver or a database). +// +// See [ECS Task Set section in AWS developer guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-external.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ecs.NewTaskSet(ctx, "example", &ecs.TaskSetArgs{ +// Service: pulumi.Any(aws_ecs_service.Example.Id), +// Cluster: pulumi.Any(aws_ecs_cluster.Example.Id), +// TaskDefinition: pulumi.Any(aws_ecs_task_definition.Example.Arn), +// LoadBalancers: ecs.TaskSetLoadBalancerArray{ +// &ecs.TaskSetLoadBalancerArgs{ +// TargetGroupArn: pulumi.Any(aws_lb_target_group.Example.Arn), +// ContainerName: pulumi.String("mongo"), +// ContainerPort: pulumi.Int(8080), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import ECS Task Sets using the `task_set_id`, `service`, and `cluster` separated by commas (`,`). For example: +// +// ```sh +// +// $ pulumi import aws:ecs/taskSet:TaskSet example ecs-svc/7177320696926227436,arn:aws:ecs:us-west-2:123456789101:service/example/example-1234567890,arn:aws:ecs:us-west-2:123456789101:cluster/example +// +// ``` +type TaskSet struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) that identifies the task set. + Arn pulumi.StringOutput `pulumi:"arn"` + // The capacity provider strategy to use for the service. Can be one or more. Defined below. + CapacityProviderStrategies TaskSetCapacityProviderStrategyArrayOutput `pulumi:"capacityProviderStrategies"` + // The short name or ARN of the cluster that hosts the service to create the task set in. + Cluster pulumi.StringOutput `pulumi:"cluster"` + // The external ID associated with the task set. + ExternalId pulumi.StringOutput `pulumi:"externalId"` + // Whether to allow deleting the task set without waiting for scaling down to 0. You can force a task set to delete even if it's in the process of scaling a resource. Normally, the provider drains all the tasks before deleting the task set. This bypasses that behavior and potentially leaves resources dangling. + ForceDelete pulumi.BoolPtrOutput `pulumi:"forceDelete"` + // The launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType pulumi.StringOutput `pulumi:"launchType"` + // Details on load balancers that are used with a task set. Detailed below. + LoadBalancers TaskSetLoadBalancerArrayOutput `pulumi:"loadBalancers"` + // The network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. Detailed below. + NetworkConfiguration TaskSetNetworkConfigurationPtrOutput `pulumi:"networkConfiguration"` + // The platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringOutput `pulumi:"platformVersion"` + // A floating-point percentage of the desired number of tasks to place and keep running in the task set. Detailed below. + Scale TaskSetScaleOutput `pulumi:"scale"` + // The short name or ARN of the ECS service. + Service pulumi.StringOutput `pulumi:"service"` + // The service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. Detailed below. + ServiceRegistries TaskSetServiceRegistriesPtrOutput `pulumi:"serviceRegistries"` + // The stability status. This indicates whether the task set has reached a steady state. + StabilityStatus pulumi.StringOutput `pulumi:"stabilityStatus"` + // The status of the task set. + Status pulumi.StringOutput `pulumi:"status"` + // A map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copyTagsToBackups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. + // + // The following arguments are optional: + TaskDefinition pulumi.StringOutput `pulumi:"taskDefinition"` + // The ID of the task set. + TaskSetId pulumi.StringOutput `pulumi:"taskSetId"` + // Whether the provider should wait until the task set has reached `STEADY_STATE`. + WaitUntilStable pulumi.BoolPtrOutput `pulumi:"waitUntilStable"` + // Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. + WaitUntilStableTimeout pulumi.StringPtrOutput `pulumi:"waitUntilStableTimeout"` +} + +// NewTaskSet registers a new resource with the given unique name, arguments, and options. +func NewTaskSet(ctx *pulumi.Context, + name string, args *TaskSetArgs, opts ...pulumi.ResourceOption) (*TaskSet, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Cluster == nil { + return nil, errors.New("invalid value for required argument 'Cluster'") + } + if args.Service == nil { + return nil, errors.New("invalid value for required argument 'Service'") + } + if args.TaskDefinition == nil { + return nil, errors.New("invalid value for required argument 'TaskDefinition'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource TaskSet + err := ctx.RegisterResource("aws:ecs/taskSet:TaskSet", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTaskSet gets an existing TaskSet resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetTaskSet(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TaskSetState, opts ...pulumi.ResourceOption) (*TaskSet, error) { + var resource TaskSet + err := ctx.ReadResource("aws:ecs/taskSet:TaskSet", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering TaskSet resources. +type taskSetState struct { + // The Amazon Resource Name (ARN) that identifies the task set. + Arn *string `pulumi:"arn"` + // The capacity provider strategy to use for the service. Can be one or more. Defined below. + CapacityProviderStrategies []TaskSetCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + // The short name or ARN of the cluster that hosts the service to create the task set in. + Cluster *string `pulumi:"cluster"` + // The external ID associated with the task set. + ExternalId *string `pulumi:"externalId"` + // Whether to allow deleting the task set without waiting for scaling down to 0. You can force a task set to delete even if it's in the process of scaling a resource. Normally, the provider drains all the tasks before deleting the task set. This bypasses that behavior and potentially leaves resources dangling. + ForceDelete *bool `pulumi:"forceDelete"` + // The launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType *string `pulumi:"launchType"` + // Details on load balancers that are used with a task set. Detailed below. + LoadBalancers []TaskSetLoadBalancer `pulumi:"loadBalancers"` + // The network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. Detailed below. + NetworkConfiguration *TaskSetNetworkConfiguration `pulumi:"networkConfiguration"` + // The platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // A floating-point percentage of the desired number of tasks to place and keep running in the task set. Detailed below. + Scale *TaskSetScale `pulumi:"scale"` + // The short name or ARN of the ECS service. + Service *string `pulumi:"service"` + // The service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. Detailed below. + ServiceRegistries *TaskSetServiceRegistries `pulumi:"serviceRegistries"` + // The stability status. This indicates whether the task set has reached a steady state. + StabilityStatus *string `pulumi:"stabilityStatus"` + // The status of the task set. + Status *string `pulumi:"status"` + // A map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copyTagsToBackups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. + // + // The following arguments are optional: + TaskDefinition *string `pulumi:"taskDefinition"` + // The ID of the task set. + TaskSetId *string `pulumi:"taskSetId"` + // Whether the provider should wait until the task set has reached `STEADY_STATE`. + WaitUntilStable *bool `pulumi:"waitUntilStable"` + // Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. + WaitUntilStableTimeout *string `pulumi:"waitUntilStableTimeout"` +} + +type TaskSetState struct { + // The Amazon Resource Name (ARN) that identifies the task set. + Arn pulumi.StringPtrInput + // The capacity provider strategy to use for the service. Can be one or more. Defined below. + CapacityProviderStrategies TaskSetCapacityProviderStrategyArrayInput + // The short name or ARN of the cluster that hosts the service to create the task set in. + Cluster pulumi.StringPtrInput + // The external ID associated with the task set. + ExternalId pulumi.StringPtrInput + // Whether to allow deleting the task set without waiting for scaling down to 0. You can force a task set to delete even if it's in the process of scaling a resource. Normally, the provider drains all the tasks before deleting the task set. This bypasses that behavior and potentially leaves resources dangling. + ForceDelete pulumi.BoolPtrInput + // The launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType pulumi.StringPtrInput + // Details on load balancers that are used with a task set. Detailed below. + LoadBalancers TaskSetLoadBalancerArrayInput + // The network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. Detailed below. + NetworkConfiguration TaskSetNetworkConfigurationPtrInput + // The platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput + // A floating-point percentage of the desired number of tasks to place and keep running in the task set. Detailed below. + Scale TaskSetScalePtrInput + // The short name or ARN of the ECS service. + Service pulumi.StringPtrInput + // The service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. Detailed below. + ServiceRegistries TaskSetServiceRegistriesPtrInput + // The stability status. This indicates whether the task set has reached a steady state. + StabilityStatus pulumi.StringPtrInput + // The status of the task set. + Status pulumi.StringPtrInput + // A map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copyTagsToBackups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. + // + // The following arguments are optional: + TaskDefinition pulumi.StringPtrInput + // The ID of the task set. + TaskSetId pulumi.StringPtrInput + // Whether the provider should wait until the task set has reached `STEADY_STATE`. + WaitUntilStable pulumi.BoolPtrInput + // Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. + WaitUntilStableTimeout pulumi.StringPtrInput +} + +func (TaskSetState) ElementType() reflect.Type { + return reflect.TypeOf((*taskSetState)(nil)).Elem() +} + +type taskSetArgs struct { + // The capacity provider strategy to use for the service. Can be one or more. Defined below. + CapacityProviderStrategies []TaskSetCapacityProviderStrategy `pulumi:"capacityProviderStrategies"` + // The short name or ARN of the cluster that hosts the service to create the task set in. + Cluster string `pulumi:"cluster"` + // The external ID associated with the task set. + ExternalId *string `pulumi:"externalId"` + // Whether to allow deleting the task set without waiting for scaling down to 0. You can force a task set to delete even if it's in the process of scaling a resource. Normally, the provider drains all the tasks before deleting the task set. This bypasses that behavior and potentially leaves resources dangling. + ForceDelete *bool `pulumi:"forceDelete"` + // The launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType *string `pulumi:"launchType"` + // Details on load balancers that are used with a task set. Detailed below. + LoadBalancers []TaskSetLoadBalancer `pulumi:"loadBalancers"` + // The network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. Detailed below. + NetworkConfiguration *TaskSetNetworkConfiguration `pulumi:"networkConfiguration"` + // The platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // A floating-point percentage of the desired number of tasks to place and keep running in the task set. Detailed below. + Scale *TaskSetScale `pulumi:"scale"` + // The short name or ARN of the ECS service. + Service string `pulumi:"service"` + // The service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. Detailed below. + ServiceRegistries *TaskSetServiceRegistries `pulumi:"serviceRegistries"` + // A map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copyTagsToBackups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. + Tags map[string]string `pulumi:"tags"` + // The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. + // + // The following arguments are optional: + TaskDefinition string `pulumi:"taskDefinition"` + // Whether the provider should wait until the task set has reached `STEADY_STATE`. + WaitUntilStable *bool `pulumi:"waitUntilStable"` + // Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. + WaitUntilStableTimeout *string `pulumi:"waitUntilStableTimeout"` +} + +// The set of arguments for constructing a TaskSet resource. +type TaskSetArgs struct { + // The capacity provider strategy to use for the service. Can be one or more. Defined below. + CapacityProviderStrategies TaskSetCapacityProviderStrategyArrayInput + // The short name or ARN of the cluster that hosts the service to create the task set in. + Cluster pulumi.StringInput + // The external ID associated with the task set. + ExternalId pulumi.StringPtrInput + // Whether to allow deleting the task set without waiting for scaling down to 0. You can force a task set to delete even if it's in the process of scaling a resource. Normally, the provider drains all the tasks before deleting the task set. This bypasses that behavior and potentially leaves resources dangling. + ForceDelete pulumi.BoolPtrInput + // The launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. + LaunchType pulumi.StringPtrInput + // Details on load balancers that are used with a task set. Detailed below. + LoadBalancers TaskSetLoadBalancerArrayInput + // The network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. Detailed below. + NetworkConfiguration TaskSetNetworkConfigurationPtrInput + // The platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput + // A floating-point percentage of the desired number of tasks to place and keep running in the task set. Detailed below. + Scale TaskSetScalePtrInput + // The short name or ARN of the ECS service. + Service pulumi.StringInput + // The service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. Detailed below. + ServiceRegistries TaskSetServiceRegistriesPtrInput + // A map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copyTagsToBackups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. + Tags pulumi.StringMapInput + // The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. + // + // The following arguments are optional: + TaskDefinition pulumi.StringInput + // Whether the provider should wait until the task set has reached `STEADY_STATE`. + WaitUntilStable pulumi.BoolPtrInput + // Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. + WaitUntilStableTimeout pulumi.StringPtrInput +} + +func (TaskSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*taskSetArgs)(nil)).Elem() +} + +type TaskSetInput interface { + pulumi.Input + + ToTaskSetOutput() TaskSetOutput + ToTaskSetOutputWithContext(ctx context.Context) TaskSetOutput +} + +func (*TaskSet) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSet)(nil)).Elem() +} + +func (i *TaskSet) ToTaskSetOutput() TaskSetOutput { + return i.ToTaskSetOutputWithContext(context.Background()) +} + +func (i *TaskSet) ToTaskSetOutputWithContext(ctx context.Context) TaskSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetOutput) +} + +// TaskSetArrayInput is an input type that accepts TaskSetArray and TaskSetArrayOutput values. +// You can construct a concrete instance of `TaskSetArrayInput` via: +// +// TaskSetArray{ TaskSetArgs{...} } +type TaskSetArrayInput interface { + pulumi.Input + + ToTaskSetArrayOutput() TaskSetArrayOutput + ToTaskSetArrayOutputWithContext(context.Context) TaskSetArrayOutput +} + +type TaskSetArray []TaskSetInput + +func (TaskSetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*TaskSet)(nil)).Elem() +} + +func (i TaskSetArray) ToTaskSetArrayOutput() TaskSetArrayOutput { + return i.ToTaskSetArrayOutputWithContext(context.Background()) +} + +func (i TaskSetArray) ToTaskSetArrayOutputWithContext(ctx context.Context) TaskSetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetArrayOutput) +} + +// TaskSetMapInput is an input type that accepts TaskSetMap and TaskSetMapOutput values. +// You can construct a concrete instance of `TaskSetMapInput` via: +// +// TaskSetMap{ "key": TaskSetArgs{...} } +type TaskSetMapInput interface { + pulumi.Input + + ToTaskSetMapOutput() TaskSetMapOutput + ToTaskSetMapOutputWithContext(context.Context) TaskSetMapOutput +} + +type TaskSetMap map[string]TaskSetInput + +func (TaskSetMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*TaskSet)(nil)).Elem() +} + +func (i TaskSetMap) ToTaskSetMapOutput() TaskSetMapOutput { + return i.ToTaskSetMapOutputWithContext(context.Background()) +} + +func (i TaskSetMap) ToTaskSetMapOutputWithContext(ctx context.Context) TaskSetMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskSetMapOutput) +} + +type TaskSetOutput struct{ *pulumi.OutputState } + +func (TaskSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskSet)(nil)).Elem() +} + +func (o TaskSetOutput) ToTaskSetOutput() TaskSetOutput { + return o +} + +func (o TaskSetOutput) ToTaskSetOutputWithContext(ctx context.Context) TaskSetOutput { + return o +} + +// The Amazon Resource Name (ARN) that identifies the task set. +func (o TaskSetOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The capacity provider strategy to use for the service. Can be one or more. Defined below. +func (o TaskSetOutput) CapacityProviderStrategies() TaskSetCapacityProviderStrategyArrayOutput { + return o.ApplyT(func(v *TaskSet) TaskSetCapacityProviderStrategyArrayOutput { return v.CapacityProviderStrategies }).(TaskSetCapacityProviderStrategyArrayOutput) +} + +// The short name or ARN of the cluster that hosts the service to create the task set in. +func (o TaskSetOutput) Cluster() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.Cluster }).(pulumi.StringOutput) +} + +// The external ID associated with the task set. +func (o TaskSetOutput) ExternalId() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.ExternalId }).(pulumi.StringOutput) +} + +// Whether to allow deleting the task set without waiting for scaling down to 0. You can force a task set to delete even if it's in the process of scaling a resource. Normally, the provider drains all the tasks before deleting the task set. This bypasses that behavior and potentially leaves resources dangling. +func (o TaskSetOutput) ForceDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskSet) pulumi.BoolPtrOutput { return v.ForceDelete }).(pulumi.BoolPtrOutput) +} + +// The launch type on which to run your service. The valid values are `EC2`, `FARGATE`, and `EXTERNAL`. Defaults to `EC2`. +func (o TaskSetOutput) LaunchType() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.LaunchType }).(pulumi.StringOutput) +} + +// Details on load balancers that are used with a task set. Detailed below. +func (o TaskSetOutput) LoadBalancers() TaskSetLoadBalancerArrayOutput { + return o.ApplyT(func(v *TaskSet) TaskSetLoadBalancerArrayOutput { return v.LoadBalancers }).(TaskSetLoadBalancerArrayOutput) +} + +// The network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. Detailed below. +func (o TaskSetOutput) NetworkConfiguration() TaskSetNetworkConfigurationPtrOutput { + return o.ApplyT(func(v *TaskSet) TaskSetNetworkConfigurationPtrOutput { return v.NetworkConfiguration }).(TaskSetNetworkConfigurationPtrOutput) +} + +// The platform version on which to run your service. Only applicable for `launchType` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). +func (o TaskSetOutput) PlatformVersion() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.PlatformVersion }).(pulumi.StringOutput) +} + +// A floating-point percentage of the desired number of tasks to place and keep running in the task set. Detailed below. +func (o TaskSetOutput) Scale() TaskSetScaleOutput { + return o.ApplyT(func(v *TaskSet) TaskSetScaleOutput { return v.Scale }).(TaskSetScaleOutput) +} + +// The short name or ARN of the ECS service. +func (o TaskSetOutput) Service() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.Service }).(pulumi.StringOutput) +} + +// The service discovery registries for the service. The maximum number of `serviceRegistries` blocks is `1`. Detailed below. +func (o TaskSetOutput) ServiceRegistries() TaskSetServiceRegistriesPtrOutput { + return o.ApplyT(func(v *TaskSet) TaskSetServiceRegistriesPtrOutput { return v.ServiceRegistries }).(TaskSetServiceRegistriesPtrOutput) +} + +// The stability status. This indicates whether the task set has reached a steady state. +func (o TaskSetOutput) StabilityStatus() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.StabilityStatus }).(pulumi.StringOutput) +} + +// The status of the task set. +func (o TaskSetOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// A map of tags to assign to the file system. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. If you have set `copyTagsToBackups` to true, and you specify one or more tags, no existing file system tags are copied from the file system to the backup. +func (o TaskSetOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o TaskSetOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. +// +// The following arguments are optional: +func (o TaskSetOutput) TaskDefinition() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.TaskDefinition }).(pulumi.StringOutput) +} + +// The ID of the task set. +func (o TaskSetOutput) TaskSetId() pulumi.StringOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringOutput { return v.TaskSetId }).(pulumi.StringOutput) +} + +// Whether the provider should wait until the task set has reached `STEADY_STATE`. +func (o TaskSetOutput) WaitUntilStable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskSet) pulumi.BoolPtrOutput { return v.WaitUntilStable }).(pulumi.BoolPtrOutput) +} + +// Wait timeout for task set to reach `STEADY_STATE`. Valid time units include `ns`, `us` (or `µs`), `ms`, `s`, `m`, and `h`. Default `10m`. +func (o TaskSetOutput) WaitUntilStableTimeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskSet) pulumi.StringPtrOutput { return v.WaitUntilStableTimeout }).(pulumi.StringPtrOutput) +} + +type TaskSetArrayOutput struct{ *pulumi.OutputState } + +func (TaskSetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*TaskSet)(nil)).Elem() +} + +func (o TaskSetArrayOutput) ToTaskSetArrayOutput() TaskSetArrayOutput { + return o +} + +func (o TaskSetArrayOutput) ToTaskSetArrayOutputWithContext(ctx context.Context) TaskSetArrayOutput { + return o +} + +func (o TaskSetArrayOutput) Index(i pulumi.IntInput) TaskSetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TaskSet { + return vs[0].([]*TaskSet)[vs[1].(int)] + }).(TaskSetOutput) +} + +type TaskSetMapOutput struct{ *pulumi.OutputState } + +func (TaskSetMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*TaskSet)(nil)).Elem() +} + +func (o TaskSetMapOutput) ToTaskSetMapOutput() TaskSetMapOutput { + return o +} + +func (o TaskSetMapOutput) ToTaskSetMapOutputWithContext(ctx context.Context) TaskSetMapOutput { + return o +} + +func (o TaskSetMapOutput) MapIndex(k pulumi.StringInput) TaskSetOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TaskSet { + return vs[0].(map[string]*TaskSet)[vs[1].(string)] + }).(TaskSetOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetInput)(nil)).Elem(), &TaskSet{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetArrayInput)(nil)).Elem(), TaskSetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskSetMapInput)(nil)).Elem(), TaskSetMap{}) + pulumi.RegisterOutputType(TaskSetOutput{}) + pulumi.RegisterOutputType(TaskSetArrayOutput{}) + pulumi.RegisterOutputType(TaskSetMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accessKey.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accessKey.go new file mode 100644 index 000000000..5a891af5c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accessKey.go @@ -0,0 +1,420 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM access key. This is a set of credentials that allow API requests to be made as an IAM user. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// lbUser, err := iam.NewUser(ctx, "lbUser", &iam.UserArgs{ +// Path: pulumi.String("/system/"), +// }) +// if err != nil { +// return err +// } +// lbAccessKey, err := iam.NewAccessKey(ctx, "lbAccessKey", &iam.AccessKeyArgs{ +// User: lbUser.Name, +// PgpKey: pulumi.String("keybase:some_person_that_exists"), +// }) +// if err != nil { +// return err +// } +// lbRoPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "ec2:Describe*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = iam.NewUserPolicy(ctx, "lbRoUserPolicy", &iam.UserPolicyArgs{ +// User: lbUser.Name, +// Policy: *pulumi.String(lbRoPolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// ctx.Export("secret", lbAccessKey.EncryptedSecret) +// return nil +// }) +// } +// +// ``` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testUser, err := iam.NewUser(ctx, "testUser", &iam.UserArgs{ +// Path: pulumi.String("/test/"), +// }) +// if err != nil { +// return err +// } +// testAccessKey, err := iam.NewAccessKey(ctx, "testAccessKey", &iam.AccessKeyArgs{ +// User: testUser.Name, +// }) +// if err != nil { +// return err +// } +// ctx.Export("awsIamSmtpPasswordV4", testAccessKey.SesSmtpPasswordV4) +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Access Keys using the identifier. For example: +// +// ```sh +// +// $ pulumi import aws:iam/accessKey:AccessKey example AKIA1234567890 +// +// ``` +// +// Resource attributes such as `encrypted_secret`, `key_fingerprint`, `pgp_key`, `secret`, `ses_smtp_password_v4`, and `encrypted_ses_smtp_password_v4` are not available for imported resources as this information cannot be read from the IAM API. +type AccessKey struct { + pulumi.CustomResourceState + + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. + CreateDate pulumi.StringOutput `pulumi:"createDate"` + // Encrypted secret, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted secret may be decrypted using the command line. + EncryptedSecret pulumi.StringOutput `pulumi:"encryptedSecret"` + // Encrypted SES SMTP password, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted password may be decrypted using the command line. + EncryptedSesSmtpPasswordV4 pulumi.StringOutput `pulumi:"encryptedSesSmtpPasswordV4"` + // Fingerprint of the PGP key used to encrypt the secret. This attribute is not available for imported resources. + KeyFingerprint pulumi.StringOutput `pulumi:"keyFingerprint"` + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encryptedSecret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). + PgpKey pulumi.StringPtrOutput `pulumi:"pgpKey"` + // Secret access key. This attribute is not available for imported resources. Note that this will be written to the state file. If you use this, please protect your backend state file judiciously. Alternatively, you may supply a `pgpKey` instead, which will prevent the secret from being stored in plaintext, at the cost of preventing the use of the secret key in automation. + Secret pulumi.StringOutput `pulumi:"secret"` + // Secret access key converted into an SES SMTP password by applying [AWS's documented Sigv4 conversion algorithm](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert). This attribute is not available for imported resources. As SigV4 is region specific, valid Provider regions are `ap-south-1`, `ap-southeast-2`, `eu-central-1`, `eu-west-1`, `us-east-1` and `us-west-2`. See current [AWS SES regions](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region). + SesSmtpPasswordV4 pulumi.StringOutput `pulumi:"sesSmtpPasswordV4"` + // Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. + Status pulumi.StringPtrOutput `pulumi:"status"` + // IAM user to associate with this access key. + User pulumi.StringOutput `pulumi:"user"` +} + +// NewAccessKey registers a new resource with the given unique name, arguments, and options. +func NewAccessKey(ctx *pulumi.Context, + name string, args *AccessKeyArgs, opts ...pulumi.ResourceOption) (*AccessKey, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.User == nil { + return nil, errors.New("invalid value for required argument 'User'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "secret", + "sesSmtpPasswordV4", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccessKey + err := ctx.RegisterResource("aws:iam/accessKey:AccessKey", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccessKey gets an existing AccessKey resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccessKey(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccessKeyState, opts ...pulumi.ResourceOption) (*AccessKey, error) { + var resource AccessKey + err := ctx.ReadResource("aws:iam/accessKey:AccessKey", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccessKey resources. +type accessKeyState struct { + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. + CreateDate *string `pulumi:"createDate"` + // Encrypted secret, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted secret may be decrypted using the command line. + EncryptedSecret *string `pulumi:"encryptedSecret"` + // Encrypted SES SMTP password, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted password may be decrypted using the command line. + EncryptedSesSmtpPasswordV4 *string `pulumi:"encryptedSesSmtpPasswordV4"` + // Fingerprint of the PGP key used to encrypt the secret. This attribute is not available for imported resources. + KeyFingerprint *string `pulumi:"keyFingerprint"` + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encryptedSecret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). + PgpKey *string `pulumi:"pgpKey"` + // Secret access key. This attribute is not available for imported resources. Note that this will be written to the state file. If you use this, please protect your backend state file judiciously. Alternatively, you may supply a `pgpKey` instead, which will prevent the secret from being stored in plaintext, at the cost of preventing the use of the secret key in automation. + Secret *string `pulumi:"secret"` + // Secret access key converted into an SES SMTP password by applying [AWS's documented Sigv4 conversion algorithm](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert). This attribute is not available for imported resources. As SigV4 is region specific, valid Provider regions are `ap-south-1`, `ap-southeast-2`, `eu-central-1`, `eu-west-1`, `us-east-1` and `us-west-2`. See current [AWS SES regions](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region). + SesSmtpPasswordV4 *string `pulumi:"sesSmtpPasswordV4"` + // Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. + Status *string `pulumi:"status"` + // IAM user to associate with this access key. + User *string `pulumi:"user"` +} + +type AccessKeyState struct { + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. + CreateDate pulumi.StringPtrInput + // Encrypted secret, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted secret may be decrypted using the command line. + EncryptedSecret pulumi.StringPtrInput + // Encrypted SES SMTP password, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted password may be decrypted using the command line. + EncryptedSesSmtpPasswordV4 pulumi.StringPtrInput + // Fingerprint of the PGP key used to encrypt the secret. This attribute is not available for imported resources. + KeyFingerprint pulumi.StringPtrInput + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encryptedSecret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). + PgpKey pulumi.StringPtrInput + // Secret access key. This attribute is not available for imported resources. Note that this will be written to the state file. If you use this, please protect your backend state file judiciously. Alternatively, you may supply a `pgpKey` instead, which will prevent the secret from being stored in plaintext, at the cost of preventing the use of the secret key in automation. + Secret pulumi.StringPtrInput + // Secret access key converted into an SES SMTP password by applying [AWS's documented Sigv4 conversion algorithm](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert). This attribute is not available for imported resources. As SigV4 is region specific, valid Provider regions are `ap-south-1`, `ap-southeast-2`, `eu-central-1`, `eu-west-1`, `us-east-1` and `us-west-2`. See current [AWS SES regions](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region). + SesSmtpPasswordV4 pulumi.StringPtrInput + // Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. + Status pulumi.StringPtrInput + // IAM user to associate with this access key. + User pulumi.StringPtrInput +} + +func (AccessKeyState) ElementType() reflect.Type { + return reflect.TypeOf((*accessKeyState)(nil)).Elem() +} + +type accessKeyArgs struct { + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encryptedSecret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). + PgpKey *string `pulumi:"pgpKey"` + // Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. + Status *string `pulumi:"status"` + // IAM user to associate with this access key. + User string `pulumi:"user"` +} + +// The set of arguments for constructing a AccessKey resource. +type AccessKeyArgs struct { + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encryptedSecret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). + PgpKey pulumi.StringPtrInput + // Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. + Status pulumi.StringPtrInput + // IAM user to associate with this access key. + User pulumi.StringInput +} + +func (AccessKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accessKeyArgs)(nil)).Elem() +} + +type AccessKeyInput interface { + pulumi.Input + + ToAccessKeyOutput() AccessKeyOutput + ToAccessKeyOutputWithContext(ctx context.Context) AccessKeyOutput +} + +func (*AccessKey) ElementType() reflect.Type { + return reflect.TypeOf((**AccessKey)(nil)).Elem() +} + +func (i *AccessKey) ToAccessKeyOutput() AccessKeyOutput { + return i.ToAccessKeyOutputWithContext(context.Background()) +} + +func (i *AccessKey) ToAccessKeyOutputWithContext(ctx context.Context) AccessKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessKeyOutput) +} + +// AccessKeyArrayInput is an input type that accepts AccessKeyArray and AccessKeyArrayOutput values. +// You can construct a concrete instance of `AccessKeyArrayInput` via: +// +// AccessKeyArray{ AccessKeyArgs{...} } +type AccessKeyArrayInput interface { + pulumi.Input + + ToAccessKeyArrayOutput() AccessKeyArrayOutput + ToAccessKeyArrayOutputWithContext(context.Context) AccessKeyArrayOutput +} + +type AccessKeyArray []AccessKeyInput + +func (AccessKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccessKey)(nil)).Elem() +} + +func (i AccessKeyArray) ToAccessKeyArrayOutput() AccessKeyArrayOutput { + return i.ToAccessKeyArrayOutputWithContext(context.Background()) +} + +func (i AccessKeyArray) ToAccessKeyArrayOutputWithContext(ctx context.Context) AccessKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessKeyArrayOutput) +} + +// AccessKeyMapInput is an input type that accepts AccessKeyMap and AccessKeyMapOutput values. +// You can construct a concrete instance of `AccessKeyMapInput` via: +// +// AccessKeyMap{ "key": AccessKeyArgs{...} } +type AccessKeyMapInput interface { + pulumi.Input + + ToAccessKeyMapOutput() AccessKeyMapOutput + ToAccessKeyMapOutputWithContext(context.Context) AccessKeyMapOutput +} + +type AccessKeyMap map[string]AccessKeyInput + +func (AccessKeyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccessKey)(nil)).Elem() +} + +func (i AccessKeyMap) ToAccessKeyMapOutput() AccessKeyMapOutput { + return i.ToAccessKeyMapOutputWithContext(context.Background()) +} + +func (i AccessKeyMap) ToAccessKeyMapOutputWithContext(ctx context.Context) AccessKeyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessKeyMapOutput) +} + +type AccessKeyOutput struct{ *pulumi.OutputState } + +func (AccessKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessKey)(nil)).Elem() +} + +func (o AccessKeyOutput) ToAccessKeyOutput() AccessKeyOutput { + return o +} + +func (o AccessKeyOutput) ToAccessKeyOutputWithContext(ctx context.Context) AccessKeyOutput { + return o +} + +// Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. +func (o AccessKeyOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.CreateDate }).(pulumi.StringOutput) +} + +// Encrypted secret, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted secret may be decrypted using the command line. +func (o AccessKeyOutput) EncryptedSecret() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.EncryptedSecret }).(pulumi.StringOutput) +} + +// Encrypted SES SMTP password, base64 encoded, if `pgpKey` was specified. This attribute is not available for imported resources. The encrypted password may be decrypted using the command line. +func (o AccessKeyOutput) EncryptedSesSmtpPasswordV4() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.EncryptedSesSmtpPasswordV4 }).(pulumi.StringOutput) +} + +// Fingerprint of the PGP key used to encrypt the secret. This attribute is not available for imported resources. +func (o AccessKeyOutput) KeyFingerprint() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.KeyFingerprint }).(pulumi.StringOutput) +} + +// Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:some_person_that_exists`, for use in the `encryptedSecret` output attribute. If providing a base-64 encoded PGP public key, make sure to provide the "raw" version and not the "armored" one (e.g. avoid passing the `-a` option to `gpg --export`). +func (o AccessKeyOutput) PgpKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringPtrOutput { return v.PgpKey }).(pulumi.StringPtrOutput) +} + +// Secret access key. This attribute is not available for imported resources. Note that this will be written to the state file. If you use this, please protect your backend state file judiciously. Alternatively, you may supply a `pgpKey` instead, which will prevent the secret from being stored in plaintext, at the cost of preventing the use of the secret key in automation. +func (o AccessKeyOutput) Secret() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.Secret }).(pulumi.StringOutput) +} + +// Secret access key converted into an SES SMTP password by applying [AWS's documented Sigv4 conversion algorithm](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html#smtp-credentials-convert). This attribute is not available for imported resources. As SigV4 is region specific, valid Provider regions are `ap-south-1`, `ap-southeast-2`, `eu-central-1`, `eu-west-1`, `us-east-1` and `us-west-2`. See current [AWS SES regions](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region). +func (o AccessKeyOutput) SesSmtpPasswordV4() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.SesSmtpPasswordV4 }).(pulumi.StringOutput) +} + +// Access key status to apply. Defaults to `Active`. Valid values are `Active` and `Inactive`. +func (o AccessKeyOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) +} + +// IAM user to associate with this access key. +func (o AccessKeyOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v *AccessKey) pulumi.StringOutput { return v.User }).(pulumi.StringOutput) +} + +type AccessKeyArrayOutput struct{ *pulumi.OutputState } + +func (AccessKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccessKey)(nil)).Elem() +} + +func (o AccessKeyArrayOutput) ToAccessKeyArrayOutput() AccessKeyArrayOutput { + return o +} + +func (o AccessKeyArrayOutput) ToAccessKeyArrayOutputWithContext(ctx context.Context) AccessKeyArrayOutput { + return o +} + +func (o AccessKeyArrayOutput) Index(i pulumi.IntInput) AccessKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccessKey { + return vs[0].([]*AccessKey)[vs[1].(int)] + }).(AccessKeyOutput) +} + +type AccessKeyMapOutput struct{ *pulumi.OutputState } + +func (AccessKeyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccessKey)(nil)).Elem() +} + +func (o AccessKeyMapOutput) ToAccessKeyMapOutput() AccessKeyMapOutput { + return o +} + +func (o AccessKeyMapOutput) ToAccessKeyMapOutputWithContext(ctx context.Context) AccessKeyMapOutput { + return o +} + +func (o AccessKeyMapOutput) MapIndex(k pulumi.StringInput) AccessKeyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccessKey { + return vs[0].(map[string]*AccessKey)[vs[1].(string)] + }).(AccessKeyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccessKeyInput)(nil)).Elem(), &AccessKey{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessKeyArrayInput)(nil)).Elem(), AccessKeyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessKeyMapInput)(nil)).Elem(), AccessKeyMap{}) + pulumi.RegisterOutputType(AccessKeyOutput{}) + pulumi.RegisterOutputType(AccessKeyArrayOutput{}) + pulumi.RegisterOutputType(AccessKeyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountAlias.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountAlias.go new file mode 100644 index 000000000..7bb320f1e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountAlias.go @@ -0,0 +1,257 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **Note:** There is only a single account alias per AWS account. +// +// Manages the account alias for the AWS Account. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewAccountAlias(ctx, "alias", &iam.AccountAliasArgs{ +// AccountAlias: pulumi.String("my-account-alias"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import the current Account Alias using the `account_alias`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/accountAlias:AccountAlias alias my-account-alias +// +// ``` +type AccountAlias struct { + pulumi.CustomResourceState + + // The account alias + AccountAlias pulumi.StringOutput `pulumi:"accountAlias"` +} + +// NewAccountAlias registers a new resource with the given unique name, arguments, and options. +func NewAccountAlias(ctx *pulumi.Context, + name string, args *AccountAliasArgs, opts ...pulumi.ResourceOption) (*AccountAlias, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AccountAlias == nil { + return nil, errors.New("invalid value for required argument 'AccountAlias'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountAlias + err := ctx.RegisterResource("aws:iam/accountAlias:AccountAlias", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountAlias gets an existing AccountAlias resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountAlias(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountAliasState, opts ...pulumi.ResourceOption) (*AccountAlias, error) { + var resource AccountAlias + err := ctx.ReadResource("aws:iam/accountAlias:AccountAlias", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountAlias resources. +type accountAliasState struct { + // The account alias + AccountAlias *string `pulumi:"accountAlias"` +} + +type AccountAliasState struct { + // The account alias + AccountAlias pulumi.StringPtrInput +} + +func (AccountAliasState) ElementType() reflect.Type { + return reflect.TypeOf((*accountAliasState)(nil)).Elem() +} + +type accountAliasArgs struct { + // The account alias + AccountAlias string `pulumi:"accountAlias"` +} + +// The set of arguments for constructing a AccountAlias resource. +type AccountAliasArgs struct { + // The account alias + AccountAlias pulumi.StringInput +} + +func (AccountAliasArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountAliasArgs)(nil)).Elem() +} + +type AccountAliasInput interface { + pulumi.Input + + ToAccountAliasOutput() AccountAliasOutput + ToAccountAliasOutputWithContext(ctx context.Context) AccountAliasOutput +} + +func (*AccountAlias) ElementType() reflect.Type { + return reflect.TypeOf((**AccountAlias)(nil)).Elem() +} + +func (i *AccountAlias) ToAccountAliasOutput() AccountAliasOutput { + return i.ToAccountAliasOutputWithContext(context.Background()) +} + +func (i *AccountAlias) ToAccountAliasOutputWithContext(ctx context.Context) AccountAliasOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountAliasOutput) +} + +// AccountAliasArrayInput is an input type that accepts AccountAliasArray and AccountAliasArrayOutput values. +// You can construct a concrete instance of `AccountAliasArrayInput` via: +// +// AccountAliasArray{ AccountAliasArgs{...} } +type AccountAliasArrayInput interface { + pulumi.Input + + ToAccountAliasArrayOutput() AccountAliasArrayOutput + ToAccountAliasArrayOutputWithContext(context.Context) AccountAliasArrayOutput +} + +type AccountAliasArray []AccountAliasInput + +func (AccountAliasArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountAlias)(nil)).Elem() +} + +func (i AccountAliasArray) ToAccountAliasArrayOutput() AccountAliasArrayOutput { + return i.ToAccountAliasArrayOutputWithContext(context.Background()) +} + +func (i AccountAliasArray) ToAccountAliasArrayOutputWithContext(ctx context.Context) AccountAliasArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountAliasArrayOutput) +} + +// AccountAliasMapInput is an input type that accepts AccountAliasMap and AccountAliasMapOutput values. +// You can construct a concrete instance of `AccountAliasMapInput` via: +// +// AccountAliasMap{ "key": AccountAliasArgs{...} } +type AccountAliasMapInput interface { + pulumi.Input + + ToAccountAliasMapOutput() AccountAliasMapOutput + ToAccountAliasMapOutputWithContext(context.Context) AccountAliasMapOutput +} + +type AccountAliasMap map[string]AccountAliasInput + +func (AccountAliasMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountAlias)(nil)).Elem() +} + +func (i AccountAliasMap) ToAccountAliasMapOutput() AccountAliasMapOutput { + return i.ToAccountAliasMapOutputWithContext(context.Background()) +} + +func (i AccountAliasMap) ToAccountAliasMapOutputWithContext(ctx context.Context) AccountAliasMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountAliasMapOutput) +} + +type AccountAliasOutput struct{ *pulumi.OutputState } + +func (AccountAliasOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountAlias)(nil)).Elem() +} + +func (o AccountAliasOutput) ToAccountAliasOutput() AccountAliasOutput { + return o +} + +func (o AccountAliasOutput) ToAccountAliasOutputWithContext(ctx context.Context) AccountAliasOutput { + return o +} + +// The account alias +func (o AccountAliasOutput) AccountAlias() pulumi.StringOutput { + return o.ApplyT(func(v *AccountAlias) pulumi.StringOutput { return v.AccountAlias }).(pulumi.StringOutput) +} + +type AccountAliasArrayOutput struct{ *pulumi.OutputState } + +func (AccountAliasArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountAlias)(nil)).Elem() +} + +func (o AccountAliasArrayOutput) ToAccountAliasArrayOutput() AccountAliasArrayOutput { + return o +} + +func (o AccountAliasArrayOutput) ToAccountAliasArrayOutputWithContext(ctx context.Context) AccountAliasArrayOutput { + return o +} + +func (o AccountAliasArrayOutput) Index(i pulumi.IntInput) AccountAliasOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountAlias { + return vs[0].([]*AccountAlias)[vs[1].(int)] + }).(AccountAliasOutput) +} + +type AccountAliasMapOutput struct{ *pulumi.OutputState } + +func (AccountAliasMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountAlias)(nil)).Elem() +} + +func (o AccountAliasMapOutput) ToAccountAliasMapOutput() AccountAliasMapOutput { + return o +} + +func (o AccountAliasMapOutput) ToAccountAliasMapOutputWithContext(ctx context.Context) AccountAliasMapOutput { + return o +} + +func (o AccountAliasMapOutput) MapIndex(k pulumi.StringInput) AccountAliasOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountAlias { + return vs[0].(map[string]*AccountAlias)[vs[1].(string)] + }).(AccountAliasOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountAliasInput)(nil)).Elem(), &AccountAlias{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountAliasArrayInput)(nil)).Elem(), AccountAliasArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountAliasMapInput)(nil)).Elem(), AccountAliasMap{}) + pulumi.RegisterOutputType(AccountAliasOutput{}) + pulumi.RegisterOutputType(AccountAliasArrayOutput{}) + pulumi.RegisterOutputType(AccountAliasMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountPasswordPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountPasswordPolicy.go new file mode 100644 index 000000000..b4cf8def8 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/accountPasswordPolicy.go @@ -0,0 +1,391 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **Note:** There is only a single policy allowed per AWS account. An existing policy will be lost when using this resource as an effect of this limitation. +// +// Manages Password Policy for the AWS Account. +// See more about [Account Password Policy](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html) +// in the official AWS docs. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewAccountPasswordPolicy(ctx, "strict", &iam.AccountPasswordPolicyArgs{ +// AllowUsersToChangePassword: pulumi.Bool(true), +// MinimumPasswordLength: pulumi.Int(8), +// RequireLowercaseCharacters: pulumi.Bool(true), +// RequireNumbers: pulumi.Bool(true), +// RequireSymbols: pulumi.Bool(true), +// RequireUppercaseCharacters: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Account Password Policy using the word `iam-account-password-policy`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/accountPasswordPolicy:AccountPasswordPolicy strict iam-account-password-policy +// +// ``` +type AccountPasswordPolicy struct { + pulumi.CustomResourceState + + // Whether to allow users to change their own password + AllowUsersToChangePassword pulumi.BoolPtrOutput `pulumi:"allowUsersToChangePassword"` + // Indicates whether passwords in the account expire. Returns `true` if `maxPasswordAge` contains a value greater than `0`. Returns `false` if it is `0` or _not present_. + ExpirePasswords pulumi.BoolOutput `pulumi:"expirePasswords"` + // Whether users are prevented from setting a new password after their password has expired (i.e., require administrator reset) + HardExpiry pulumi.BoolOutput `pulumi:"hardExpiry"` + // The number of days that an user password is valid. + MaxPasswordAge pulumi.IntOutput `pulumi:"maxPasswordAge"` + // Minimum length to require for user passwords. + MinimumPasswordLength pulumi.IntPtrOutput `pulumi:"minimumPasswordLength"` + // The number of previous passwords that users are prevented from reusing. + PasswordReusePrevention pulumi.IntOutput `pulumi:"passwordReusePrevention"` + // Whether to require lowercase characters for user passwords. + RequireLowercaseCharacters pulumi.BoolOutput `pulumi:"requireLowercaseCharacters"` + // Whether to require numbers for user passwords. + RequireNumbers pulumi.BoolOutput `pulumi:"requireNumbers"` + // Whether to require symbols for user passwords. + RequireSymbols pulumi.BoolOutput `pulumi:"requireSymbols"` + // Whether to require uppercase characters for user passwords. + RequireUppercaseCharacters pulumi.BoolOutput `pulumi:"requireUppercaseCharacters"` +} + +// NewAccountPasswordPolicy registers a new resource with the given unique name, arguments, and options. +func NewAccountPasswordPolicy(ctx *pulumi.Context, + name string, args *AccountPasswordPolicyArgs, opts ...pulumi.ResourceOption) (*AccountPasswordPolicy, error) { + if args == nil { + args = &AccountPasswordPolicyArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountPasswordPolicy + err := ctx.RegisterResource("aws:iam/accountPasswordPolicy:AccountPasswordPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountPasswordPolicy gets an existing AccountPasswordPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountPasswordPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountPasswordPolicyState, opts ...pulumi.ResourceOption) (*AccountPasswordPolicy, error) { + var resource AccountPasswordPolicy + err := ctx.ReadResource("aws:iam/accountPasswordPolicy:AccountPasswordPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountPasswordPolicy resources. +type accountPasswordPolicyState struct { + // Whether to allow users to change their own password + AllowUsersToChangePassword *bool `pulumi:"allowUsersToChangePassword"` + // Indicates whether passwords in the account expire. Returns `true` if `maxPasswordAge` contains a value greater than `0`. Returns `false` if it is `0` or _not present_. + ExpirePasswords *bool `pulumi:"expirePasswords"` + // Whether users are prevented from setting a new password after their password has expired (i.e., require administrator reset) + HardExpiry *bool `pulumi:"hardExpiry"` + // The number of days that an user password is valid. + MaxPasswordAge *int `pulumi:"maxPasswordAge"` + // Minimum length to require for user passwords. + MinimumPasswordLength *int `pulumi:"minimumPasswordLength"` + // The number of previous passwords that users are prevented from reusing. + PasswordReusePrevention *int `pulumi:"passwordReusePrevention"` + // Whether to require lowercase characters for user passwords. + RequireLowercaseCharacters *bool `pulumi:"requireLowercaseCharacters"` + // Whether to require numbers for user passwords. + RequireNumbers *bool `pulumi:"requireNumbers"` + // Whether to require symbols for user passwords. + RequireSymbols *bool `pulumi:"requireSymbols"` + // Whether to require uppercase characters for user passwords. + RequireUppercaseCharacters *bool `pulumi:"requireUppercaseCharacters"` +} + +type AccountPasswordPolicyState struct { + // Whether to allow users to change their own password + AllowUsersToChangePassword pulumi.BoolPtrInput + // Indicates whether passwords in the account expire. Returns `true` if `maxPasswordAge` contains a value greater than `0`. Returns `false` if it is `0` or _not present_. + ExpirePasswords pulumi.BoolPtrInput + // Whether users are prevented from setting a new password after their password has expired (i.e., require administrator reset) + HardExpiry pulumi.BoolPtrInput + // The number of days that an user password is valid. + MaxPasswordAge pulumi.IntPtrInput + // Minimum length to require for user passwords. + MinimumPasswordLength pulumi.IntPtrInput + // The number of previous passwords that users are prevented from reusing. + PasswordReusePrevention pulumi.IntPtrInput + // Whether to require lowercase characters for user passwords. + RequireLowercaseCharacters pulumi.BoolPtrInput + // Whether to require numbers for user passwords. + RequireNumbers pulumi.BoolPtrInput + // Whether to require symbols for user passwords. + RequireSymbols pulumi.BoolPtrInput + // Whether to require uppercase characters for user passwords. + RequireUppercaseCharacters pulumi.BoolPtrInput +} + +func (AccountPasswordPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*accountPasswordPolicyState)(nil)).Elem() +} + +type accountPasswordPolicyArgs struct { + // Whether to allow users to change their own password + AllowUsersToChangePassword *bool `pulumi:"allowUsersToChangePassword"` + // Whether users are prevented from setting a new password after their password has expired (i.e., require administrator reset) + HardExpiry *bool `pulumi:"hardExpiry"` + // The number of days that an user password is valid. + MaxPasswordAge *int `pulumi:"maxPasswordAge"` + // Minimum length to require for user passwords. + MinimumPasswordLength *int `pulumi:"minimumPasswordLength"` + // The number of previous passwords that users are prevented from reusing. + PasswordReusePrevention *int `pulumi:"passwordReusePrevention"` + // Whether to require lowercase characters for user passwords. + RequireLowercaseCharacters *bool `pulumi:"requireLowercaseCharacters"` + // Whether to require numbers for user passwords. + RequireNumbers *bool `pulumi:"requireNumbers"` + // Whether to require symbols for user passwords. + RequireSymbols *bool `pulumi:"requireSymbols"` + // Whether to require uppercase characters for user passwords. + RequireUppercaseCharacters *bool `pulumi:"requireUppercaseCharacters"` +} + +// The set of arguments for constructing a AccountPasswordPolicy resource. +type AccountPasswordPolicyArgs struct { + // Whether to allow users to change their own password + AllowUsersToChangePassword pulumi.BoolPtrInput + // Whether users are prevented from setting a new password after their password has expired (i.e., require administrator reset) + HardExpiry pulumi.BoolPtrInput + // The number of days that an user password is valid. + MaxPasswordAge pulumi.IntPtrInput + // Minimum length to require for user passwords. + MinimumPasswordLength pulumi.IntPtrInput + // The number of previous passwords that users are prevented from reusing. + PasswordReusePrevention pulumi.IntPtrInput + // Whether to require lowercase characters for user passwords. + RequireLowercaseCharacters pulumi.BoolPtrInput + // Whether to require numbers for user passwords. + RequireNumbers pulumi.BoolPtrInput + // Whether to require symbols for user passwords. + RequireSymbols pulumi.BoolPtrInput + // Whether to require uppercase characters for user passwords. + RequireUppercaseCharacters pulumi.BoolPtrInput +} + +func (AccountPasswordPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountPasswordPolicyArgs)(nil)).Elem() +} + +type AccountPasswordPolicyInput interface { + pulumi.Input + + ToAccountPasswordPolicyOutput() AccountPasswordPolicyOutput + ToAccountPasswordPolicyOutputWithContext(ctx context.Context) AccountPasswordPolicyOutput +} + +func (*AccountPasswordPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**AccountPasswordPolicy)(nil)).Elem() +} + +func (i *AccountPasswordPolicy) ToAccountPasswordPolicyOutput() AccountPasswordPolicyOutput { + return i.ToAccountPasswordPolicyOutputWithContext(context.Background()) +} + +func (i *AccountPasswordPolicy) ToAccountPasswordPolicyOutputWithContext(ctx context.Context) AccountPasswordPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountPasswordPolicyOutput) +} + +// AccountPasswordPolicyArrayInput is an input type that accepts AccountPasswordPolicyArray and AccountPasswordPolicyArrayOutput values. +// You can construct a concrete instance of `AccountPasswordPolicyArrayInput` via: +// +// AccountPasswordPolicyArray{ AccountPasswordPolicyArgs{...} } +type AccountPasswordPolicyArrayInput interface { + pulumi.Input + + ToAccountPasswordPolicyArrayOutput() AccountPasswordPolicyArrayOutput + ToAccountPasswordPolicyArrayOutputWithContext(context.Context) AccountPasswordPolicyArrayOutput +} + +type AccountPasswordPolicyArray []AccountPasswordPolicyInput + +func (AccountPasswordPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountPasswordPolicy)(nil)).Elem() +} + +func (i AccountPasswordPolicyArray) ToAccountPasswordPolicyArrayOutput() AccountPasswordPolicyArrayOutput { + return i.ToAccountPasswordPolicyArrayOutputWithContext(context.Background()) +} + +func (i AccountPasswordPolicyArray) ToAccountPasswordPolicyArrayOutputWithContext(ctx context.Context) AccountPasswordPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountPasswordPolicyArrayOutput) +} + +// AccountPasswordPolicyMapInput is an input type that accepts AccountPasswordPolicyMap and AccountPasswordPolicyMapOutput values. +// You can construct a concrete instance of `AccountPasswordPolicyMapInput` via: +// +// AccountPasswordPolicyMap{ "key": AccountPasswordPolicyArgs{...} } +type AccountPasswordPolicyMapInput interface { + pulumi.Input + + ToAccountPasswordPolicyMapOutput() AccountPasswordPolicyMapOutput + ToAccountPasswordPolicyMapOutputWithContext(context.Context) AccountPasswordPolicyMapOutput +} + +type AccountPasswordPolicyMap map[string]AccountPasswordPolicyInput + +func (AccountPasswordPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountPasswordPolicy)(nil)).Elem() +} + +func (i AccountPasswordPolicyMap) ToAccountPasswordPolicyMapOutput() AccountPasswordPolicyMapOutput { + return i.ToAccountPasswordPolicyMapOutputWithContext(context.Background()) +} + +func (i AccountPasswordPolicyMap) ToAccountPasswordPolicyMapOutputWithContext(ctx context.Context) AccountPasswordPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountPasswordPolicyMapOutput) +} + +type AccountPasswordPolicyOutput struct{ *pulumi.OutputState } + +func (AccountPasswordPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountPasswordPolicy)(nil)).Elem() +} + +func (o AccountPasswordPolicyOutput) ToAccountPasswordPolicyOutput() AccountPasswordPolicyOutput { + return o +} + +func (o AccountPasswordPolicyOutput) ToAccountPasswordPolicyOutputWithContext(ctx context.Context) AccountPasswordPolicyOutput { + return o +} + +// Whether to allow users to change their own password +func (o AccountPasswordPolicyOutput) AllowUsersToChangePassword() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolPtrOutput { return v.AllowUsersToChangePassword }).(pulumi.BoolPtrOutput) +} + +// Indicates whether passwords in the account expire. Returns `true` if `maxPasswordAge` contains a value greater than `0`. Returns `false` if it is `0` or _not present_. +func (o AccountPasswordPolicyOutput) ExpirePasswords() pulumi.BoolOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolOutput { return v.ExpirePasswords }).(pulumi.BoolOutput) +} + +// Whether users are prevented from setting a new password after their password has expired (i.e., require administrator reset) +func (o AccountPasswordPolicyOutput) HardExpiry() pulumi.BoolOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolOutput { return v.HardExpiry }).(pulumi.BoolOutput) +} + +// The number of days that an user password is valid. +func (o AccountPasswordPolicyOutput) MaxPasswordAge() pulumi.IntOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.IntOutput { return v.MaxPasswordAge }).(pulumi.IntOutput) +} + +// Minimum length to require for user passwords. +func (o AccountPasswordPolicyOutput) MinimumPasswordLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.IntPtrOutput { return v.MinimumPasswordLength }).(pulumi.IntPtrOutput) +} + +// The number of previous passwords that users are prevented from reusing. +func (o AccountPasswordPolicyOutput) PasswordReusePrevention() pulumi.IntOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.IntOutput { return v.PasswordReusePrevention }).(pulumi.IntOutput) +} + +// Whether to require lowercase characters for user passwords. +func (o AccountPasswordPolicyOutput) RequireLowercaseCharacters() pulumi.BoolOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolOutput { return v.RequireLowercaseCharacters }).(pulumi.BoolOutput) +} + +// Whether to require numbers for user passwords. +func (o AccountPasswordPolicyOutput) RequireNumbers() pulumi.BoolOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolOutput { return v.RequireNumbers }).(pulumi.BoolOutput) +} + +// Whether to require symbols for user passwords. +func (o AccountPasswordPolicyOutput) RequireSymbols() pulumi.BoolOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolOutput { return v.RequireSymbols }).(pulumi.BoolOutput) +} + +// Whether to require uppercase characters for user passwords. +func (o AccountPasswordPolicyOutput) RequireUppercaseCharacters() pulumi.BoolOutput { + return o.ApplyT(func(v *AccountPasswordPolicy) pulumi.BoolOutput { return v.RequireUppercaseCharacters }).(pulumi.BoolOutput) +} + +type AccountPasswordPolicyArrayOutput struct{ *pulumi.OutputState } + +func (AccountPasswordPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountPasswordPolicy)(nil)).Elem() +} + +func (o AccountPasswordPolicyArrayOutput) ToAccountPasswordPolicyArrayOutput() AccountPasswordPolicyArrayOutput { + return o +} + +func (o AccountPasswordPolicyArrayOutput) ToAccountPasswordPolicyArrayOutputWithContext(ctx context.Context) AccountPasswordPolicyArrayOutput { + return o +} + +func (o AccountPasswordPolicyArrayOutput) Index(i pulumi.IntInput) AccountPasswordPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountPasswordPolicy { + return vs[0].([]*AccountPasswordPolicy)[vs[1].(int)] + }).(AccountPasswordPolicyOutput) +} + +type AccountPasswordPolicyMapOutput struct{ *pulumi.OutputState } + +func (AccountPasswordPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountPasswordPolicy)(nil)).Elem() +} + +func (o AccountPasswordPolicyMapOutput) ToAccountPasswordPolicyMapOutput() AccountPasswordPolicyMapOutput { + return o +} + +func (o AccountPasswordPolicyMapOutput) ToAccountPasswordPolicyMapOutputWithContext(ctx context.Context) AccountPasswordPolicyMapOutput { + return o +} + +func (o AccountPasswordPolicyMapOutput) MapIndex(k pulumi.StringInput) AccountPasswordPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountPasswordPolicy { + return vs[0].(map[string]*AccountPasswordPolicy)[vs[1].(string)] + }).(AccountPasswordPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountPasswordPolicyInput)(nil)).Elem(), &AccountPasswordPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountPasswordPolicyArrayInput)(nil)).Elem(), AccountPasswordPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountPasswordPolicyMapInput)(nil)).Elem(), AccountPasswordPolicyMap{}) + pulumi.RegisterOutputType(AccountPasswordPolicyOutput{}) + pulumi.RegisterOutputType(AccountPasswordPolicyArrayOutput{}) + pulumi.RegisterOutputType(AccountPasswordPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccessKeys.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccessKeys.go new file mode 100644 index 000000000..cb445b7d7 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccessKeys.go @@ -0,0 +1,121 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about IAM access keys of a +// specific IAM user. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetAccessKeys(ctx, &iam.GetAccessKeysArgs{ +// User: "an_example_user_name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetAccessKeys(ctx *pulumi.Context, args *GetAccessKeysArgs, opts ...pulumi.InvokeOption) (*GetAccessKeysResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetAccessKeysResult + err := ctx.Invoke("aws:iam/getAccessKeys:getAccessKeys", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAccessKeys. +type GetAccessKeysArgs struct { + // Name of the IAM user associated with the access keys. + User string `pulumi:"user"` +} + +// A collection of values returned by getAccessKeys. +type GetAccessKeysResult struct { + // List of the IAM access keys associated with the specified user. See below. + AccessKeys []GetAccessKeysAccessKey `pulumi:"accessKeys"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + User string `pulumi:"user"` +} + +func GetAccessKeysOutput(ctx *pulumi.Context, args GetAccessKeysOutputArgs, opts ...pulumi.InvokeOption) GetAccessKeysResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetAccessKeysResult, error) { + args := v.(GetAccessKeysArgs) + r, err := GetAccessKeys(ctx, &args, opts...) + var s GetAccessKeysResult + if r != nil { + s = *r + } + return s, err + }).(GetAccessKeysResultOutput) +} + +// A collection of arguments for invoking getAccessKeys. +type GetAccessKeysOutputArgs struct { + // Name of the IAM user associated with the access keys. + User pulumi.StringInput `pulumi:"user"` +} + +func (GetAccessKeysOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetAccessKeysArgs)(nil)).Elem() +} + +// A collection of values returned by getAccessKeys. +type GetAccessKeysResultOutput struct{ *pulumi.OutputState } + +func (GetAccessKeysResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAccessKeysResult)(nil)).Elem() +} + +func (o GetAccessKeysResultOutput) ToGetAccessKeysResultOutput() GetAccessKeysResultOutput { + return o +} + +func (o GetAccessKeysResultOutput) ToGetAccessKeysResultOutputWithContext(ctx context.Context) GetAccessKeysResultOutput { + return o +} + +// List of the IAM access keys associated with the specified user. See below. +func (o GetAccessKeysResultOutput) AccessKeys() GetAccessKeysAccessKeyArrayOutput { + return o.ApplyT(func(v GetAccessKeysResult) []GetAccessKeysAccessKey { return v.AccessKeys }).(GetAccessKeysAccessKeyArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetAccessKeysResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetAccessKeysResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetAccessKeysResultOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v GetAccessKeysResult) string { return v.User }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetAccessKeysResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccountAlias.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccountAlias.go new file mode 100644 index 000000000..0450e7c64 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getAccountAlias.go @@ -0,0 +1,97 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The IAM Account Alias data source allows access to the account alias +// for the effective account in which this provider is working. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := iam.LookupAccountAlias(ctx, nil, nil) +// if err != nil { +// return err +// } +// ctx.Export("accountId", current.AccountAlias) +// return nil +// }) +// } +// +// ``` +func LookupAccountAlias(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*LookupAccountAliasResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAccountAliasResult + err := ctx.Invoke("aws:iam/getAccountAlias:getAccountAlias", nil, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of values returned by getAccountAlias. +type LookupAccountAliasResult struct { + // Alias associated with the AWS account. + AccountAlias string `pulumi:"accountAlias"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` +} + +func LookupAccountAliasOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) LookupAccountAliasResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (LookupAccountAliasResult, error) { + r, err := LookupAccountAlias(ctx, opts...) + var s LookupAccountAliasResult + if r != nil { + s = *r + } + return s, err + }).(LookupAccountAliasResultOutput) +} + +// A collection of values returned by getAccountAlias. +type LookupAccountAliasResultOutput struct{ *pulumi.OutputState } + +func (LookupAccountAliasResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAccountAliasResult)(nil)).Elem() +} + +func (o LookupAccountAliasResultOutput) ToLookupAccountAliasResultOutput() LookupAccountAliasResultOutput { + return o +} + +func (o LookupAccountAliasResultOutput) ToLookupAccountAliasResultOutputWithContext(ctx context.Context) LookupAccountAliasResultOutput { + return o +} + +// Alias associated with the AWS account. +func (o LookupAccountAliasResultOutput) AccountAlias() pulumi.StringOutput { + return o.ApplyT(func(v LookupAccountAliasResult) string { return v.AccountAlias }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupAccountAliasResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupAccountAliasResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAccountAliasResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getGroup.go new file mode 100644 index 000000000..b465808a1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getGroup.go @@ -0,0 +1,143 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM group. By using this data source, you can reference IAM group +// properties without having to hard code ARNs as input. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupGroup(ctx, &iam.LookupGroupArgs{ +// GroupName: "an_example_group_name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupGroup(ctx *pulumi.Context, args *LookupGroupArgs, opts ...pulumi.InvokeOption) (*LookupGroupResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupGroupResult + err := ctx.Invoke("aws:iam/getGroup:getGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getGroup. +type LookupGroupArgs struct { + // Friendly IAM group name to match. + GroupName string `pulumi:"groupName"` +} + +// A collection of values returned by getGroup. +type LookupGroupResult struct { + // User ARN. + Arn string `pulumi:"arn"` + // Stable and unique string identifying the group. + GroupId string `pulumi:"groupId"` + GroupName string `pulumi:"groupName"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Path to the IAM user. + Path string `pulumi:"path"` + // List of objects containing group member information. See below. + Users []GetGroupUser `pulumi:"users"` +} + +func LookupGroupOutput(ctx *pulumi.Context, args LookupGroupOutputArgs, opts ...pulumi.InvokeOption) LookupGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupGroupResult, error) { + args := v.(LookupGroupArgs) + r, err := LookupGroup(ctx, &args, opts...) + var s LookupGroupResult + if r != nil { + s = *r + } + return s, err + }).(LookupGroupResultOutput) +} + +// A collection of arguments for invoking getGroup. +type LookupGroupOutputArgs struct { + // Friendly IAM group name to match. + GroupName pulumi.StringInput `pulumi:"groupName"` +} + +func (LookupGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupGroupArgs)(nil)).Elem() +} + +// A collection of values returned by getGroup. +type LookupGroupResultOutput struct{ *pulumi.OutputState } + +func (LookupGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupGroupResult)(nil)).Elem() +} + +func (o LookupGroupResultOutput) ToLookupGroupResultOutput() LookupGroupResultOutput { + return o +} + +func (o LookupGroupResultOutput) ToLookupGroupResultOutputWithContext(ctx context.Context) LookupGroupResultOutput { + return o +} + +// User ARN. +func (o LookupGroupResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupGroupResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Stable and unique string identifying the group. +func (o LookupGroupResultOutput) GroupId() pulumi.StringOutput { + return o.ApplyT(func(v LookupGroupResult) string { return v.GroupId }).(pulumi.StringOutput) +} + +func (o LookupGroupResultOutput) GroupName() pulumi.StringOutput { + return o.ApplyT(func(v LookupGroupResult) string { return v.GroupName }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupGroupResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupGroupResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Path to the IAM user. +func (o LookupGroupResultOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LookupGroupResult) string { return v.Path }).(pulumi.StringOutput) +} + +// List of objects containing group member information. See below. +func (o LookupGroupResultOutput) Users() GetGroupUserArrayOutput { + return o.ApplyT(func(v LookupGroupResult) []GetGroupUser { return v.Users }).(GetGroupUserArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupGroupResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfile.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfile.go new file mode 100644 index 000000000..ba4e0fb81 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfile.go @@ -0,0 +1,157 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM instance profile. By using this data source, you can reference IAM +// instance profile properties without having to hard code ARNs as input. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupInstanceProfile(ctx, &iam.LookupInstanceProfileArgs{ +// Name: "an_example_instance_profile_name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupInstanceProfile(ctx *pulumi.Context, args *LookupInstanceProfileArgs, opts ...pulumi.InvokeOption) (*LookupInstanceProfileResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupInstanceProfileResult + err := ctx.Invoke("aws:iam/getInstanceProfile:getInstanceProfile", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getInstanceProfile. +type LookupInstanceProfileArgs struct { + // Friendly IAM instance profile name to match. + Name string `pulumi:"name"` +} + +// A collection of values returned by getInstanceProfile. +type LookupInstanceProfileResult struct { + // ARN. + Arn string `pulumi:"arn"` + // String representation of the date the instance profile was created. + CreateDate string `pulumi:"createDate"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Name string `pulumi:"name"` + // Path to the instance profile. + Path string `pulumi:"path"` + // Role ARN associated with this instance profile. + RoleArn string `pulumi:"roleArn"` + // Role ID associated with this instance profile. + RoleId string `pulumi:"roleId"` + // Role name associated with this instance profile. + RoleName string `pulumi:"roleName"` +} + +func LookupInstanceProfileOutput(ctx *pulumi.Context, args LookupInstanceProfileOutputArgs, opts ...pulumi.InvokeOption) LookupInstanceProfileResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupInstanceProfileResult, error) { + args := v.(LookupInstanceProfileArgs) + r, err := LookupInstanceProfile(ctx, &args, opts...) + var s LookupInstanceProfileResult + if r != nil { + s = *r + } + return s, err + }).(LookupInstanceProfileResultOutput) +} + +// A collection of arguments for invoking getInstanceProfile. +type LookupInstanceProfileOutputArgs struct { + // Friendly IAM instance profile name to match. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupInstanceProfileOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupInstanceProfileArgs)(nil)).Elem() +} + +// A collection of values returned by getInstanceProfile. +type LookupInstanceProfileResultOutput struct{ *pulumi.OutputState } + +func (LookupInstanceProfileResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupInstanceProfileResult)(nil)).Elem() +} + +func (o LookupInstanceProfileResultOutput) ToLookupInstanceProfileResultOutput() LookupInstanceProfileResultOutput { + return o +} + +func (o LookupInstanceProfileResultOutput) ToLookupInstanceProfileResultOutputWithContext(ctx context.Context) LookupInstanceProfileResultOutput { + return o +} + +// ARN. +func (o LookupInstanceProfileResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// String representation of the date the instance profile was created. +func (o LookupInstanceProfileResultOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.CreateDate }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupInstanceProfileResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupInstanceProfileResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Path to the instance profile. +func (o LookupInstanceProfileResultOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.Path }).(pulumi.StringOutput) +} + +// Role ARN associated with this instance profile. +func (o LookupInstanceProfileResultOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.RoleArn }).(pulumi.StringOutput) +} + +// Role ID associated with this instance profile. +func (o LookupInstanceProfileResultOutput) RoleId() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.RoleId }).(pulumi.StringOutput) +} + +// Role name associated with this instance profile. +func (o LookupInstanceProfileResultOutput) RoleName() pulumi.StringOutput { + return o.ApplyT(func(v LookupInstanceProfileResult) string { return v.RoleName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupInstanceProfileResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfiles.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfiles.go new file mode 100644 index 000000000..69188f0da --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getInstanceProfiles.go @@ -0,0 +1,136 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about all +// IAM instance profiles under a role. By using this data source, you can reference IAM +// instance profile properties without having to hard code ARNs as input. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetInstanceProfiles(ctx, &iam.GetInstanceProfilesArgs{ +// RoleName: "an_example_iam_role_name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetInstanceProfiles(ctx *pulumi.Context, args *GetInstanceProfilesArgs, opts ...pulumi.InvokeOption) (*GetInstanceProfilesResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetInstanceProfilesResult + err := ctx.Invoke("aws:iam/getInstanceProfiles:getInstanceProfiles", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getInstanceProfiles. +type GetInstanceProfilesArgs struct { + // IAM role name. + RoleName string `pulumi:"roleName"` +} + +// A collection of values returned by getInstanceProfiles. +type GetInstanceProfilesResult struct { + // Set of ARNs of instance profiles. + Arns []string `pulumi:"arns"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Set of IAM instance profile names. + Names []string `pulumi:"names"` + // Set of IAM instance profile paths. + Paths []string `pulumi:"paths"` + RoleName string `pulumi:"roleName"` +} + +func GetInstanceProfilesOutput(ctx *pulumi.Context, args GetInstanceProfilesOutputArgs, opts ...pulumi.InvokeOption) GetInstanceProfilesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetInstanceProfilesResult, error) { + args := v.(GetInstanceProfilesArgs) + r, err := GetInstanceProfiles(ctx, &args, opts...) + var s GetInstanceProfilesResult + if r != nil { + s = *r + } + return s, err + }).(GetInstanceProfilesResultOutput) +} + +// A collection of arguments for invoking getInstanceProfiles. +type GetInstanceProfilesOutputArgs struct { + // IAM role name. + RoleName pulumi.StringInput `pulumi:"roleName"` +} + +func (GetInstanceProfilesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetInstanceProfilesArgs)(nil)).Elem() +} + +// A collection of values returned by getInstanceProfiles. +type GetInstanceProfilesResultOutput struct{ *pulumi.OutputState } + +func (GetInstanceProfilesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetInstanceProfilesResult)(nil)).Elem() +} + +func (o GetInstanceProfilesResultOutput) ToGetInstanceProfilesResultOutput() GetInstanceProfilesResultOutput { + return o +} + +func (o GetInstanceProfilesResultOutput) ToGetInstanceProfilesResultOutputWithContext(ctx context.Context) GetInstanceProfilesResultOutput { + return o +} + +// Set of ARNs of instance profiles. +func (o GetInstanceProfilesResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetInstanceProfilesResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetInstanceProfilesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetInstanceProfilesResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Set of IAM instance profile names. +func (o GetInstanceProfilesResultOutput) Names() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetInstanceProfilesResult) []string { return v.Names }).(pulumi.StringArrayOutput) +} + +// Set of IAM instance profile paths. +func (o GetInstanceProfilesResultOutput) Paths() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetInstanceProfilesResult) []string { return v.Paths }).(pulumi.StringArrayOutput) +} + +func (o GetInstanceProfilesResultOutput) RoleName() pulumi.StringOutput { + return o.ApplyT(func(v GetInstanceProfilesResult) string { return v.RoleName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetInstanceProfilesResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getOpenIdConnectProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getOpenIdConnectProvider.go new file mode 100644 index 000000000..8a20a1710 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getOpenIdConnectProvider.go @@ -0,0 +1,173 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM OpenID Connect provider. By using this data source, you can retrieve the +// the resource information by either its `arn` or `url`. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupOpenIdConnectProvider(ctx, &iam.LookupOpenIdConnectProviderArgs{ +// Arn: pulumi.StringRef("arn:aws:iam::123456789012:oidc-provider/accounts.google.com"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupOpenIdConnectProvider(ctx, &iam.LookupOpenIdConnectProviderArgs{ +// Url: pulumi.StringRef("https://accounts.google.com"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupOpenIdConnectProvider(ctx *pulumi.Context, args *LookupOpenIdConnectProviderArgs, opts ...pulumi.InvokeOption) (*LookupOpenIdConnectProviderResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupOpenIdConnectProviderResult + err := ctx.Invoke("aws:iam/getOpenIdConnectProvider:getOpenIdConnectProvider", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getOpenIdConnectProvider. +type LookupOpenIdConnectProviderArgs struct { + // ARN of the OpenID Connect provider. + Arn *string `pulumi:"arn"` + // Map of resource tags for the IAM OIDC provider. + Tags map[string]string `pulumi:"tags"` + // URL of the OpenID Connect provider. + Url *string `pulumi:"url"` +} + +// A collection of values returned by getOpenIdConnectProvider. +type LookupOpenIdConnectProviderResult struct { + Arn string `pulumi:"arn"` + // List of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) + ClientIdLists []string `pulumi:"clientIdLists"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Map of resource tags for the IAM OIDC provider. + Tags map[string]string `pulumi:"tags"` + // List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). + ThumbprintLists []string `pulumi:"thumbprintLists"` + Url string `pulumi:"url"` +} + +func LookupOpenIdConnectProviderOutput(ctx *pulumi.Context, args LookupOpenIdConnectProviderOutputArgs, opts ...pulumi.InvokeOption) LookupOpenIdConnectProviderResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupOpenIdConnectProviderResult, error) { + args := v.(LookupOpenIdConnectProviderArgs) + r, err := LookupOpenIdConnectProvider(ctx, &args, opts...) + var s LookupOpenIdConnectProviderResult + if r != nil { + s = *r + } + return s, err + }).(LookupOpenIdConnectProviderResultOutput) +} + +// A collection of arguments for invoking getOpenIdConnectProvider. +type LookupOpenIdConnectProviderOutputArgs struct { + // ARN of the OpenID Connect provider. + Arn pulumi.StringPtrInput `pulumi:"arn"` + // Map of resource tags for the IAM OIDC provider. + Tags pulumi.StringMapInput `pulumi:"tags"` + // URL of the OpenID Connect provider. + Url pulumi.StringPtrInput `pulumi:"url"` +} + +func (LookupOpenIdConnectProviderOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOpenIdConnectProviderArgs)(nil)).Elem() +} + +// A collection of values returned by getOpenIdConnectProvider. +type LookupOpenIdConnectProviderResultOutput struct{ *pulumi.OutputState } + +func (LookupOpenIdConnectProviderResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupOpenIdConnectProviderResult)(nil)).Elem() +} + +func (o LookupOpenIdConnectProviderResultOutput) ToLookupOpenIdConnectProviderResultOutput() LookupOpenIdConnectProviderResultOutput { + return o +} + +func (o LookupOpenIdConnectProviderResultOutput) ToLookupOpenIdConnectProviderResultOutputWithContext(ctx context.Context) LookupOpenIdConnectProviderResultOutput { + return o +} + +func (o LookupOpenIdConnectProviderResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupOpenIdConnectProviderResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// List of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) +func (o LookupOpenIdConnectProviderResultOutput) ClientIdLists() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupOpenIdConnectProviderResult) []string { return v.ClientIdLists }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupOpenIdConnectProviderResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupOpenIdConnectProviderResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Map of resource tags for the IAM OIDC provider. +func (o LookupOpenIdConnectProviderResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupOpenIdConnectProviderResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). +func (o LookupOpenIdConnectProviderResultOutput) ThumbprintLists() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupOpenIdConnectProviderResult) []string { return v.ThumbprintLists }).(pulumi.StringArrayOutput) +} + +func (o LookupOpenIdConnectProviderResultOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v LookupOpenIdConnectProviderResult) string { return v.Url }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupOpenIdConnectProviderResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicy.go new file mode 100644 index 000000000..fee962a48 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicy.go @@ -0,0 +1,207 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM policy. +// +// ## Example Usage +// ### By ARN +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{ +// Arn: pulumi.StringRef("arn:aws:iam::123456789012:policy/UsersManageOwnCredentials"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### By Name +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{ +// Name: pulumi.StringRef("test_policy"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupPolicy(ctx *pulumi.Context, args *LookupPolicyArgs, opts ...pulumi.InvokeOption) (*LookupPolicyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPolicyResult + err := ctx.Invoke("aws:iam/getPolicy:getPolicy", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPolicy. +type LookupPolicyArgs struct { + // ARN of the IAM policy. + // Conflicts with `name` and `pathPrefix`. + Arn *string `pulumi:"arn"` + // Name of the IAM policy. + // Conflicts with `arn`. + Name *string `pulumi:"name"` + // Prefix of the path to the IAM policy. + // Defaults to a slash (`/`). + // Conflicts with `arn`. + PathPrefix *string `pulumi:"pathPrefix"` + // Key-value mapping of tags for the IAM Policy. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getPolicy. +type LookupPolicyResult struct { + // ARN of the policy. + Arn string `pulumi:"arn"` + // Description of the policy. + Description string `pulumi:"description"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Name string `pulumi:"name"` + // Path to the policy. + Path string `pulumi:"path"` + PathPrefix *string `pulumi:"pathPrefix"` + // Policy document of the policy. + Policy string `pulumi:"policy"` + // Policy's ID. + PolicyId string `pulumi:"policyId"` + // Key-value mapping of tags for the IAM Policy. + Tags map[string]string `pulumi:"tags"` +} + +func LookupPolicyOutput(ctx *pulumi.Context, args LookupPolicyOutputArgs, opts ...pulumi.InvokeOption) LookupPolicyResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPolicyResult, error) { + args := v.(LookupPolicyArgs) + r, err := LookupPolicy(ctx, &args, opts...) + var s LookupPolicyResult + if r != nil { + s = *r + } + return s, err + }).(LookupPolicyResultOutput) +} + +// A collection of arguments for invoking getPolicy. +type LookupPolicyOutputArgs struct { + // ARN of the IAM policy. + // Conflicts with `name` and `pathPrefix`. + Arn pulumi.StringPtrInput `pulumi:"arn"` + // Name of the IAM policy. + // Conflicts with `arn`. + Name pulumi.StringPtrInput `pulumi:"name"` + // Prefix of the path to the IAM policy. + // Defaults to a slash (`/`). + // Conflicts with `arn`. + PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` + // Key-value mapping of tags for the IAM Policy. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LookupPolicyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPolicyArgs)(nil)).Elem() +} + +// A collection of values returned by getPolicy. +type LookupPolicyResultOutput struct{ *pulumi.OutputState } + +func (LookupPolicyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPolicyResult)(nil)).Elem() +} + +func (o LookupPolicyResultOutput) ToLookupPolicyResultOutput() LookupPolicyResultOutput { + return o +} + +func (o LookupPolicyResultOutput) ToLookupPolicyResultOutputWithContext(ctx context.Context) LookupPolicyResultOutput { + return o +} + +// ARN of the policy. +func (o LookupPolicyResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Description of the policy. +func (o LookupPolicyResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupPolicyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupPolicyResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Path to the policy. +func (o LookupPolicyResultOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.Path }).(pulumi.StringOutput) +} + +func (o LookupPolicyResultOutput) PathPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPolicyResult) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) +} + +// Policy document of the policy. +func (o LookupPolicyResultOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.Policy }).(pulumi.StringOutput) +} + +// Policy's ID. +func (o LookupPolicyResultOutput) PolicyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupPolicyResult) string { return v.PolicyId }).(pulumi.StringOutput) +} + +// Key-value mapping of tags for the IAM Policy. +func (o LookupPolicyResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupPolicyResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPolicyResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicyDocument.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicyDocument.go new file mode 100644 index 000000000..b9a44c8df --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPolicyDocument.go @@ -0,0 +1,795 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Generates an IAM policy document in JSON format for use with resources that expect policy documents such as `iam.Policy`. +// +// Using this data source to generate policy documents is *optional*. It is also valid to use literal JSON strings in your configuration or to use the `file` interpolation function to read a raw JSON policy document from a file. +// +// ## Example Usage +// ### Basic Example +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplePolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: pulumi.Array{ +// iam.GetPolicyDocumentStatement{ +// Sid: pulumi.StringRef("1"), +// Actions: []string{ +// "s3:ListAllMyBuckets", +// "s3:GetBucketLocation", +// }, +// Resources: []string{ +// "arn:aws:s3:::*", +// }, +// }, +// iam.GetPolicyDocumentStatement{ +// Actions: []string{ +// "s3:ListBucket", +// }, +// Resources: []string{ +// fmt.Sprintf("arn:aws:s3:::%v", _var.S3_bucket_name), +// }, +// Conditions: []iam.GetPolicyDocumentStatementCondition{ +// { +// Test: "StringLike", +// Variable: "s3:prefix", +// Values: []string{ +// "", +// "home/", +// "home/&{aws:username}/", +// }, +// }, +// }, +// }, +// iam.GetPolicyDocumentStatement{ +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// fmt.Sprintf("arn:aws:s3:::%v/home/&{aws:username}", _var.S3_bucket_name), +// fmt.Sprintf("arn:aws:s3:::%v/home/&{aws:username}/*", _var.S3_bucket_name), +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = iam.NewPolicy(ctx, "examplePolicy", &iam.PolicyArgs{ +// Path: pulumi.String("/"), +// Policy: *pulumi.String(examplePolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example Multiple Condition Keys and Values +// +// You can specify a [condition with multiple keys and values](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) by supplying multiple `condition` blocks with the same `test` value, but differing `variable` and `values` values. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "kms:Decrypt", +// "kms:GenerateDataKey", +// }, +// Conditions: []iam.GetPolicyDocumentStatementCondition{ +// { +// Test: "ForAnyValue:StringEquals", +// Values: []string{ +// "pi", +// }, +// Variable: "kms:EncryptionContext:service", +// }, +// { +// Test: "ForAnyValue:StringEquals", +// Values: []string{ +// "rds", +// }, +// Variable: "kms:EncryptionContext:aws:pi:service", +// }, +// { +// Test: "ForAnyValue:StringEquals", +// Values: []string{ +// "db-AAAAABBBBBCCCCCDDDDDEEEEE", +// "db-EEEEEDDDDDCCCCCBBBBBAAAAA", +// }, +// Variable: "kms:EncryptionContext:aws:rds:db-id", +// }, +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// `data.aws_iam_policy_document.example_multiple_condition_keys_and_values.json` will evaluate to: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// ### Example Assume-Role Policy with Multiple Principals +// +// You can specify multiple principal blocks with different types. You can also use this data source to generate an assume-role policy. +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "sts:AssumeRole", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "firehose.amazonaws.com", +// }, +// }, +// { +// Type: "AWS", +// Identifiers: interface{}{ +// _var.Trusted_role_arn, +// }, +// }, +// { +// Type: "Federated", +// Identifiers: []string{ +// fmt.Sprintf("arn:aws:iam::%v:saml-provider/%v", _var.Account_id, _var.Provider_name), +// "cognito-identity.amazonaws.com", +// }, +// }, +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// ### Example Using A Source Document +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// source, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "ec2:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// { +// Sid: pulumi.StringRef("SidToOverride"), +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// SourcePolicyDocuments: interface{}{ +// source.Json, +// }, +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("SidToOverride"), +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// "arn:aws:s3:::somebucket", +// "arn:aws:s3:::somebucket/*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// `data.aws_iam_policy_document.source_document_example.json` will evaluate to: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// ### Example Using An Override Document +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// override, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("SidToOverride"), +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// OverridePolicyDocuments: interface{}{ +// override.Json, +// }, +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "ec2:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// { +// Sid: pulumi.StringRef("SidToOverride"), +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// "arn:aws:s3:::somebucket", +// "arn:aws:s3:::somebucket/*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// `data.aws_iam_policy_document.override_policy_document_example.json` will evaluate to: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// ### Example with Both Source and Override Documents +// +// You can also combine `sourcePolicyDocuments` and `overridePolicyDocuments` in the same document. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// source, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("OverridePlaceholder"), +// Actions: []string{ +// "ec2:DescribeAccountAttributes", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// override, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("OverridePlaceholder"), +// Actions: []string{ +// "s3:GetObject", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// SourcePolicyDocuments: interface{}{ +// source.Json, +// }, +// OverridePolicyDocuments: interface{}{ +// override.Json, +// }, +// }, nil); +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// `data.aws_iam_policy_document.politik.json` will evaluate to: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// ### Example of Merging Source Documents +// +// Multiple documents can be combined using the `sourcePolicyDocuments` or `overridePolicyDocuments` attributes. `sourcePolicyDocuments` requires that all documents have unique Sids, while `overridePolicyDocuments` will iteratively override matching Sids. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// sourceOne, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "ec2:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// { +// Sid: pulumi.StringRef("UniqueSidOne"), +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// sourceTwo, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: pulumi.Array{ +// iam.GetPolicyDocumentStatement{ +// Sid: pulumi.StringRef("UniqueSidTwo"), +// Actions: []string{ +// "iam:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// iam.GetPolicyDocumentStatement{ +// Actions: []string{ +// "lambda:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// SourcePolicyDocuments: interface{}{ +// sourceOne.Json, +// sourceTwo.Json, +// }, +// }, nil); +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// `data.aws_iam_policy_document.combined.json` will evaluate to: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// ### Example of Merging Override Documents +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// policyOne, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("OverridePlaceHolderOne"), +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "s3:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// policyTwo, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "ec2:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// { +// Sid: pulumi.StringRef("OverridePlaceHolderTwo"), +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "iam:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// policyThree, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("OverridePlaceHolderOne"), +// Effect: pulumi.StringRef("Deny"), +// Actions: []string{ +// "logs:*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// _, err = iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// OverridePolicyDocuments: interface{}{ +// policyOne.Json, +// policyTwo.Json, +// policyThree.Json, +// }, +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Sid: pulumi.StringRef("OverridePlaceHolderTwo"), +// Effect: pulumi.StringRef("Deny"), +// Actions: []string{ +// "*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil); +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// `data.aws_iam_policy_document.combined.json` will evaluate to: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +func GetPolicyDocument(ctx *pulumi.Context, args *GetPolicyDocumentArgs, opts ...pulumi.InvokeOption) (*GetPolicyDocumentResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetPolicyDocumentResult + err := ctx.Invoke("aws:iam/getPolicyDocument:getPolicyDocument", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPolicyDocument. +type GetPolicyDocumentArgs struct { + // List of IAM policy documents that are merged together into the exported document. In merging, statements with non-blank `sid`s will override statements with the same `sid` from earlier documents in the list. Statements with non-blank `sid`s will also override statements with the same `sid` from `sourcePolicyDocuments`. Non-overriding statements will be added to the exported document. + OverridePolicyDocuments []string `pulumi:"overridePolicyDocuments"` + // ID for the policy document. + PolicyId *string `pulumi:"policyId"` + // List of IAM policy documents that are merged together into the exported document. Statements defined in `sourcePolicyDocuments` must have unique `sid`s. Statements with the same `sid` from `overridePolicyDocuments` will override source statements. + SourcePolicyDocuments []string `pulumi:"sourcePolicyDocuments"` + // Configuration block for a policy statement. Detailed below. + Statements []GetPolicyDocumentStatement `pulumi:"statements"` + // IAM policy document version. Valid values are `2008-10-17` and `2012-10-17`. Defaults to `2012-10-17`. For more information, see the [AWS IAM User Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html). + Version *string `pulumi:"version"` +} + +// A collection of values returned by getPolicyDocument. +type GetPolicyDocumentResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Standard JSON policy document rendered based on the arguments above. + Json string `pulumi:"json"` + OverridePolicyDocuments []string `pulumi:"overridePolicyDocuments"` + PolicyId *string `pulumi:"policyId"` + SourcePolicyDocuments []string `pulumi:"sourcePolicyDocuments"` + Statements []GetPolicyDocumentStatement `pulumi:"statements"` + Version *string `pulumi:"version"` +} + +func GetPolicyDocumentOutput(ctx *pulumi.Context, args GetPolicyDocumentOutputArgs, opts ...pulumi.InvokeOption) GetPolicyDocumentResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetPolicyDocumentResult, error) { + args := v.(GetPolicyDocumentArgs) + r, err := GetPolicyDocument(ctx, &args, opts...) + var s GetPolicyDocumentResult + if r != nil { + s = *r + } + return s, err + }).(GetPolicyDocumentResultOutput) +} + +// A collection of arguments for invoking getPolicyDocument. +type GetPolicyDocumentOutputArgs struct { + // List of IAM policy documents that are merged together into the exported document. In merging, statements with non-blank `sid`s will override statements with the same `sid` from earlier documents in the list. Statements with non-blank `sid`s will also override statements with the same `sid` from `sourcePolicyDocuments`. Non-overriding statements will be added to the exported document. + OverridePolicyDocuments pulumi.StringArrayInput `pulumi:"overridePolicyDocuments"` + // ID for the policy document. + PolicyId pulumi.StringPtrInput `pulumi:"policyId"` + // List of IAM policy documents that are merged together into the exported document. Statements defined in `sourcePolicyDocuments` must have unique `sid`s. Statements with the same `sid` from `overridePolicyDocuments` will override source statements. + SourcePolicyDocuments pulumi.StringArrayInput `pulumi:"sourcePolicyDocuments"` + // Configuration block for a policy statement. Detailed below. + Statements GetPolicyDocumentStatementArrayInput `pulumi:"statements"` + // IAM policy document version. Valid values are `2008-10-17` and `2012-10-17`. Defaults to `2012-10-17`. For more information, see the [AWS IAM User Guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html). + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (GetPolicyDocumentOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentArgs)(nil)).Elem() +} + +// A collection of values returned by getPolicyDocument. +type GetPolicyDocumentResultOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentResult)(nil)).Elem() +} + +func (o GetPolicyDocumentResultOutput) ToGetPolicyDocumentResultOutput() GetPolicyDocumentResultOutput { + return o +} + +func (o GetPolicyDocumentResultOutput) ToGetPolicyDocumentResultOutputWithContext(ctx context.Context) GetPolicyDocumentResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o GetPolicyDocumentResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Standard JSON policy document rendered based on the arguments above. +func (o GetPolicyDocumentResultOutput) Json() pulumi.StringOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) string { return v.Json }).(pulumi.StringOutput) +} + +func (o GetPolicyDocumentResultOutput) OverridePolicyDocuments() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) []string { return v.OverridePolicyDocuments }).(pulumi.StringArrayOutput) +} + +func (o GetPolicyDocumentResultOutput) PolicyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) *string { return v.PolicyId }).(pulumi.StringPtrOutput) +} + +func (o GetPolicyDocumentResultOutput) SourcePolicyDocuments() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) []string { return v.SourcePolicyDocuments }).(pulumi.StringArrayOutput) +} + +func (o GetPolicyDocumentResultOutput) Statements() GetPolicyDocumentStatementArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) []GetPolicyDocumentStatement { return v.Statements }).(GetPolicyDocumentStatementArrayOutput) +} + +func (o GetPolicyDocumentResultOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetPolicyDocumentResult) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetPolicyDocumentResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPrincipalPolicySimulation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPrincipalPolicySimulation.go new file mode 100644 index 000000000..47c6e2f3b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getPrincipalPolicySimulation.go @@ -0,0 +1,215 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Runs a simulation of the IAM policies of a particular principal against a given hypothetical request. +// +// You can use this data source in conjunction with +// Preconditions and Postconditions so that your configuration can test either whether it should have sufficient access to do its own work, or whether policies your configuration declares itself are sufficient for their intended use elsewhere. +// +// > **Note:** Correctly using this data source requires familiarity with various details of AWS Identity and Access Management, and how various AWS services integrate with it. For general information on the AWS IAM policy simulator, see [Testing IAM policies with the IAM policy simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html). This data source wraps the `iam:SimulatePrincipalPolicy` API action described on that page. +// +// ## Example Usage +func LookupPrincipalPolicySimulation(ctx *pulumi.Context, args *LookupPrincipalPolicySimulationArgs, opts ...pulumi.InvokeOption) (*LookupPrincipalPolicySimulationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPrincipalPolicySimulationResult + err := ctx.Invoke("aws:iam/getPrincipalPolicySimulation:getPrincipalPolicySimulation", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPrincipalPolicySimulation. +type LookupPrincipalPolicySimulationArgs struct { + // A set of IAM action names to run simulations for. Each entry in this set adds an additional hypothetical request to the simulation. + // + // Action names consist of a service prefix and an action verb separated by a colon, such as `s3:GetObject`. Refer to [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) to see the full set of possible IAM action names across all AWS services. + ActionNames []string `pulumi:"actionNames"` + // A set of additional principal policy documents to include in the simulation. The simulator will behave as if each of these policies were associated with the object specified in `policySourceArn`, allowing you to test the effect of hypothetical policies not yet created. + AdditionalPoliciesJsons []string `pulumi:"additionalPoliciesJsons"` + // The ARN of an user that will appear as the "caller" of the simulated requests. If you do not specify `callerArn` then the simulation will use the `policySourceArn` instead, if it contains a user ARN. + CallerArn *string `pulumi:"callerArn"` + // Each `context` block defines an entry in the table of additional context keys in the simulated request. + // + // IAM uses context keys for both custom conditions and for interpolating dynamic request-specific values into policy values. If you use policies that include those features then you will need to provide suitable example values for those keys to achieve a realistic simulation. + Contexts []GetPrincipalPolicySimulationContext `pulumi:"contexts"` + // A set of [permissions boundary policy documents](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to include in the simulation. + PermissionsBoundaryPoliciesJsons []string `pulumi:"permissionsBoundaryPoliciesJsons"` + // The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the IAM user, group, or role whose policies will be included in the simulation. + // + // You must closely match the form of the real service request you are simulating in order to achieve a realistic result. You can use the following additional arguments to specify other characteristics of the simulated requests: + PolicySourceArn string `pulumi:"policySourceArn"` + // A set of ARNs of resources to include in the simulation. + // + // This argument is important for actions that have either required or optional resource types listed in [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html), and you must provide ARNs that identify AWS objects of the appropriate types for the chosen actions. + // + // The policy simulator only automatically loads policies associated with the `policySourceArn`, so if your given resources have their own resource-level policy then you'll also need to provide that explicitly using the `resourcePolicyJson` argument to achieve a realistic simulation. + ResourceArns []string `pulumi:"resourceArns"` + // Specifies a special simulation type to run. Some EC2 actions require special simulation behaviors and a particular set of resource ARNs to achieve a realistic result. + // + // For more details, see the `ResourceHandlingOption` request parameter for [the underlying `iam:SimulatePrincipalPolicy` action](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html). + ResourceHandlingOption *string `pulumi:"resourceHandlingOption"` + // An AWS account ID to use for any resource ARN in `resourceArns` that doesn't include its own AWS account ID. If unspecified, the simulator will use the account ID from the `callerArn` argument as a placeholder. + ResourceOwnerAccountId *string `pulumi:"resourceOwnerAccountId"` + // An IAM policy document representing the resource-level policy of all of the resources specified in `resourceArns`. + // + // The policy simulator cannot automatically load policies that are associated with individual resources, as described in the documentation for `resourceArns` above. + ResourcePolicyJson *string `pulumi:"resourcePolicyJson"` +} + +// A collection of values returned by getPrincipalPolicySimulation. +type LookupPrincipalPolicySimulationResult struct { + ActionNames []string `pulumi:"actionNames"` + AdditionalPoliciesJsons []string `pulumi:"additionalPoliciesJsons"` + // `true` if all of the simulation results have decision "allowed", or `false` otherwise. + AllAllowed bool `pulumi:"allAllowed"` + CallerArn *string `pulumi:"callerArn"` + Contexts []GetPrincipalPolicySimulationContext `pulumi:"contexts"` + Id string `pulumi:"id"` + PermissionsBoundaryPoliciesJsons []string `pulumi:"permissionsBoundaryPoliciesJsons"` + PolicySourceArn string `pulumi:"policySourceArn"` + ResourceArns []string `pulumi:"resourceArns"` + ResourceHandlingOption *string `pulumi:"resourceHandlingOption"` + ResourceOwnerAccountId *string `pulumi:"resourceOwnerAccountId"` + ResourcePolicyJson *string `pulumi:"resourcePolicyJson"` + // A set of result objects, one for each of the simulated requests, with the following nested attributes: + Results []GetPrincipalPolicySimulationResult `pulumi:"results"` +} + +func LookupPrincipalPolicySimulationOutput(ctx *pulumi.Context, args LookupPrincipalPolicySimulationOutputArgs, opts ...pulumi.InvokeOption) LookupPrincipalPolicySimulationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPrincipalPolicySimulationResult, error) { + args := v.(LookupPrincipalPolicySimulationArgs) + r, err := LookupPrincipalPolicySimulation(ctx, &args, opts...) + var s LookupPrincipalPolicySimulationResult + if r != nil { + s = *r + } + return s, err + }).(LookupPrincipalPolicySimulationResultOutput) +} + +// A collection of arguments for invoking getPrincipalPolicySimulation. +type LookupPrincipalPolicySimulationOutputArgs struct { + // A set of IAM action names to run simulations for. Each entry in this set adds an additional hypothetical request to the simulation. + // + // Action names consist of a service prefix and an action verb separated by a colon, such as `s3:GetObject`. Refer to [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) to see the full set of possible IAM action names across all AWS services. + ActionNames pulumi.StringArrayInput `pulumi:"actionNames"` + // A set of additional principal policy documents to include in the simulation. The simulator will behave as if each of these policies were associated with the object specified in `policySourceArn`, allowing you to test the effect of hypothetical policies not yet created. + AdditionalPoliciesJsons pulumi.StringArrayInput `pulumi:"additionalPoliciesJsons"` + // The ARN of an user that will appear as the "caller" of the simulated requests. If you do not specify `callerArn` then the simulation will use the `policySourceArn` instead, if it contains a user ARN. + CallerArn pulumi.StringPtrInput `pulumi:"callerArn"` + // Each `context` block defines an entry in the table of additional context keys in the simulated request. + // + // IAM uses context keys for both custom conditions and for interpolating dynamic request-specific values into policy values. If you use policies that include those features then you will need to provide suitable example values for those keys to achieve a realistic simulation. + Contexts GetPrincipalPolicySimulationContextArrayInput `pulumi:"contexts"` + // A set of [permissions boundary policy documents](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) to include in the simulation. + PermissionsBoundaryPoliciesJsons pulumi.StringArrayInput `pulumi:"permissionsBoundaryPoliciesJsons"` + // The [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the IAM user, group, or role whose policies will be included in the simulation. + // + // You must closely match the form of the real service request you are simulating in order to achieve a realistic result. You can use the following additional arguments to specify other characteristics of the simulated requests: + PolicySourceArn pulumi.StringInput `pulumi:"policySourceArn"` + // A set of ARNs of resources to include in the simulation. + // + // This argument is important for actions that have either required or optional resource types listed in [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html), and you must provide ARNs that identify AWS objects of the appropriate types for the chosen actions. + // + // The policy simulator only automatically loads policies associated with the `policySourceArn`, so if your given resources have their own resource-level policy then you'll also need to provide that explicitly using the `resourcePolicyJson` argument to achieve a realistic simulation. + ResourceArns pulumi.StringArrayInput `pulumi:"resourceArns"` + // Specifies a special simulation type to run. Some EC2 actions require special simulation behaviors and a particular set of resource ARNs to achieve a realistic result. + // + // For more details, see the `ResourceHandlingOption` request parameter for [the underlying `iam:SimulatePrincipalPolicy` action](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html). + ResourceHandlingOption pulumi.StringPtrInput `pulumi:"resourceHandlingOption"` + // An AWS account ID to use for any resource ARN in `resourceArns` that doesn't include its own AWS account ID. If unspecified, the simulator will use the account ID from the `callerArn` argument as a placeholder. + ResourceOwnerAccountId pulumi.StringPtrInput `pulumi:"resourceOwnerAccountId"` + // An IAM policy document representing the resource-level policy of all of the resources specified in `resourceArns`. + // + // The policy simulator cannot automatically load policies that are associated with individual resources, as described in the documentation for `resourceArns` above. + ResourcePolicyJson pulumi.StringPtrInput `pulumi:"resourcePolicyJson"` +} + +func (LookupPrincipalPolicySimulationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPrincipalPolicySimulationArgs)(nil)).Elem() +} + +// A collection of values returned by getPrincipalPolicySimulation. +type LookupPrincipalPolicySimulationResultOutput struct{ *pulumi.OutputState } + +func (LookupPrincipalPolicySimulationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPrincipalPolicySimulationResult)(nil)).Elem() +} + +func (o LookupPrincipalPolicySimulationResultOutput) ToLookupPrincipalPolicySimulationResultOutput() LookupPrincipalPolicySimulationResultOutput { + return o +} + +func (o LookupPrincipalPolicySimulationResultOutput) ToLookupPrincipalPolicySimulationResultOutputWithContext(ctx context.Context) LookupPrincipalPolicySimulationResultOutput { + return o +} + +func (o LookupPrincipalPolicySimulationResultOutput) ActionNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) []string { return v.ActionNames }).(pulumi.StringArrayOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) AdditionalPoliciesJsons() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) []string { return v.AdditionalPoliciesJsons }).(pulumi.StringArrayOutput) +} + +// `true` if all of the simulation results have decision "allowed", or `false` otherwise. +func (o LookupPrincipalPolicySimulationResultOutput) AllAllowed() pulumi.BoolOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) bool { return v.AllAllowed }).(pulumi.BoolOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) CallerArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) *string { return v.CallerArn }).(pulumi.StringPtrOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) Contexts() GetPrincipalPolicySimulationContextArrayOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) []GetPrincipalPolicySimulationContext { return v.Contexts }).(GetPrincipalPolicySimulationContextArrayOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) PermissionsBoundaryPoliciesJsons() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) []string { return v.PermissionsBoundaryPoliciesJsons }).(pulumi.StringArrayOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) PolicySourceArn() pulumi.StringOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) string { return v.PolicySourceArn }).(pulumi.StringOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) ResourceArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) []string { return v.ResourceArns }).(pulumi.StringArrayOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) ResourceHandlingOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) *string { return v.ResourceHandlingOption }).(pulumi.StringPtrOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) ResourceOwnerAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) *string { return v.ResourceOwnerAccountId }).(pulumi.StringPtrOutput) +} + +func (o LookupPrincipalPolicySimulationResultOutput) ResourcePolicyJson() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) *string { return v.ResourcePolicyJson }).(pulumi.StringPtrOutput) +} + +// A set of result objects, one for each of the simulated requests, with the following nested attributes: +func (o LookupPrincipalPolicySimulationResultOutput) Results() GetPrincipalPolicySimulationResultArrayOutput { + return o.ApplyT(func(v LookupPrincipalPolicySimulationResult) []GetPrincipalPolicySimulationResult { return v.Results }).(GetPrincipalPolicySimulationResultArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPrincipalPolicySimulationResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRole.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRole.go new file mode 100644 index 000000000..d7d32779a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRole.go @@ -0,0 +1,189 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM role. By using this data source, you can reference IAM role +// properties without having to hard code ARNs as input. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupRole(ctx, &iam.LookupRoleArgs{ +// Name: "an_example_role_name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupRole(ctx *pulumi.Context, args *LookupRoleArgs, opts ...pulumi.InvokeOption) (*LookupRoleResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupRoleResult + err := ctx.Invoke("aws:iam/getRole:getRole", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getRole. +type LookupRoleArgs struct { + // Friendly IAM role name to match. + Name string `pulumi:"name"` + // Tags attached to the role. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getRole. +type LookupRoleResult struct { + // ARN of the role. + Arn string `pulumi:"arn"` + // Policy document associated with the role. + AssumeRolePolicy string `pulumi:"assumeRolePolicy"` + // Creation date of the role in RFC 3339 format. + CreateDate string `pulumi:"createDate"` + // Description for the role. + Description string `pulumi:"description"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Maximum session duration. + MaxSessionDuration int `pulumi:"maxSessionDuration"` + Name string `pulumi:"name"` + // Path to the role. + Path string `pulumi:"path"` + // The ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary string `pulumi:"permissionsBoundary"` + // Contains information about the last time that an IAM role was used. See `roleLastUsed` for details. + RoleLastUseds []GetRoleRoleLastUsed `pulumi:"roleLastUseds"` + // Tags attached to the role. + Tags map[string]string `pulumi:"tags"` + // Stable and unique string identifying the role. + UniqueId string `pulumi:"uniqueId"` +} + +func LookupRoleOutput(ctx *pulumi.Context, args LookupRoleOutputArgs, opts ...pulumi.InvokeOption) LookupRoleResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupRoleResult, error) { + args := v.(LookupRoleArgs) + r, err := LookupRole(ctx, &args, opts...) + var s LookupRoleResult + if r != nil { + s = *r + } + return s, err + }).(LookupRoleResultOutput) +} + +// A collection of arguments for invoking getRole. +type LookupRoleOutputArgs struct { + // Friendly IAM role name to match. + Name pulumi.StringInput `pulumi:"name"` + // Tags attached to the role. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LookupRoleOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRoleArgs)(nil)).Elem() +} + +// A collection of values returned by getRole. +type LookupRoleResultOutput struct{ *pulumi.OutputState } + +func (LookupRoleResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRoleResult)(nil)).Elem() +} + +func (o LookupRoleResultOutput) ToLookupRoleResultOutput() LookupRoleResultOutput { + return o +} + +func (o LookupRoleResultOutput) ToLookupRoleResultOutputWithContext(ctx context.Context) LookupRoleResultOutput { + return o +} + +// ARN of the role. +func (o LookupRoleResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Policy document associated with the role. +func (o LookupRoleResultOutput) AssumeRolePolicy() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.AssumeRolePolicy }).(pulumi.StringOutput) +} + +// Creation date of the role in RFC 3339 format. +func (o LookupRoleResultOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.CreateDate }).(pulumi.StringOutput) +} + +// Description for the role. +func (o LookupRoleResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.Description }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupRoleResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Maximum session duration. +func (o LookupRoleResultOutput) MaxSessionDuration() pulumi.IntOutput { + return o.ApplyT(func(v LookupRoleResult) int { return v.MaxSessionDuration }).(pulumi.IntOutput) +} + +func (o LookupRoleResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Path to the role. +func (o LookupRoleResultOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.Path }).(pulumi.StringOutput) +} + +// The ARN of the policy that is used to set the permissions boundary for the role. +func (o LookupRoleResultOutput) PermissionsBoundary() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.PermissionsBoundary }).(pulumi.StringOutput) +} + +// Contains information about the last time that an IAM role was used. See `roleLastUsed` for details. +func (o LookupRoleResultOutput) RoleLastUseds() GetRoleRoleLastUsedArrayOutput { + return o.ApplyT(func(v LookupRoleResult) []GetRoleRoleLastUsed { return v.RoleLastUseds }).(GetRoleRoleLastUsedArrayOutput) +} + +// Tags attached to the role. +func (o LookupRoleResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupRoleResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Stable and unique string identifying the role. +func (o LookupRoleResultOutput) UniqueId() pulumi.StringOutput { + return o.ApplyT(func(v LookupRoleResult) string { return v.UniqueId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupRoleResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRoles.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRoles.go new file mode 100644 index 000000000..57fc905ce --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getRoles.go @@ -0,0 +1,241 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get the ARNs and Names of IAM Roles. +// +// ## Example Usage +// ### All roles in an account +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetRoles(ctx, nil, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Roles filtered by name regex +// +// Roles whose role-name contains `project` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetRoles(ctx, &iam.GetRolesArgs{ +// NameRegex: pulumi.StringRef(".*project.*"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Roles filtered by path prefix +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetRoles(ctx, &iam.GetRolesArgs{ +// PathPrefix: pulumi.StringRef("/custom-path"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Roles provisioned by AWS SSO +// +// # Roles in the account filtered by path prefix +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetRoles(ctx, &iam.GetRolesArgs{ +// PathPrefix: pulumi.StringRef("/aws-reserved/sso.amazonaws.com/"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// # Specific role in the account filtered by name regex and path prefix +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetRoles(ctx, &iam.GetRolesArgs{ +// NameRegex: pulumi.StringRef("AWSReservedSSO_permission_set_name_.*"), +// PathPrefix: pulumi.StringRef("/aws-reserved/sso.amazonaws.com/"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetRoles(ctx *pulumi.Context, args *GetRolesArgs, opts ...pulumi.InvokeOption) (*GetRolesResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetRolesResult + err := ctx.Invoke("aws:iam/getRoles:getRoles", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getRoles. +type GetRolesArgs struct { + // Regex string to apply to the IAM roles list returned by AWS. This allows more advanced filtering not supported from the AWS API. This filtering is done locally on what AWS returns, and could have a performance impact if the result is large. Combine this with other options to narrow down the list AWS returns. + NameRegex *string `pulumi:"nameRegex"` + // Path prefix for filtering the results. For example, the prefix `/application_abc/component_xyz/` gets all roles whose path starts with `/application_abc/component_xyz/`. If it is not included, it defaults to a slash (`/`), listing all roles. For more details, check out [list-roles in the AWS CLI reference][1]. + PathPrefix *string `pulumi:"pathPrefix"` +} + +// A collection of values returned by getRoles. +type GetRolesResult struct { + // Set of ARNs of the matched IAM roles. + Arns []string `pulumi:"arns"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + NameRegex *string `pulumi:"nameRegex"` + // Set of Names of the matched IAM roles. + Names []string `pulumi:"names"` + PathPrefix *string `pulumi:"pathPrefix"` +} + +func GetRolesOutput(ctx *pulumi.Context, args GetRolesOutputArgs, opts ...pulumi.InvokeOption) GetRolesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetRolesResult, error) { + args := v.(GetRolesArgs) + r, err := GetRoles(ctx, &args, opts...) + var s GetRolesResult + if r != nil { + s = *r + } + return s, err + }).(GetRolesResultOutput) +} + +// A collection of arguments for invoking getRoles. +type GetRolesOutputArgs struct { + // Regex string to apply to the IAM roles list returned by AWS. This allows more advanced filtering not supported from the AWS API. This filtering is done locally on what AWS returns, and could have a performance impact if the result is large. Combine this with other options to narrow down the list AWS returns. + NameRegex pulumi.StringPtrInput `pulumi:"nameRegex"` + // Path prefix for filtering the results. For example, the prefix `/application_abc/component_xyz/` gets all roles whose path starts with `/application_abc/component_xyz/`. If it is not included, it defaults to a slash (`/`), listing all roles. For more details, check out [list-roles in the AWS CLI reference][1]. + PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` +} + +func (GetRolesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetRolesArgs)(nil)).Elem() +} + +// A collection of values returned by getRoles. +type GetRolesResultOutput struct{ *pulumi.OutputState } + +func (GetRolesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetRolesResult)(nil)).Elem() +} + +func (o GetRolesResultOutput) ToGetRolesResultOutput() GetRolesResultOutput { + return o +} + +func (o GetRolesResultOutput) ToGetRolesResultOutputWithContext(ctx context.Context) GetRolesResultOutput { + return o +} + +// Set of ARNs of the matched IAM roles. +func (o GetRolesResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRolesResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetRolesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetRolesResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetRolesResultOutput) NameRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetRolesResult) *string { return v.NameRegex }).(pulumi.StringPtrOutput) +} + +// Set of Names of the matched IAM roles. +func (o GetRolesResultOutput) Names() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetRolesResult) []string { return v.Names }).(pulumi.StringArrayOutput) +} + +func (o GetRolesResultOutput) PathPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetRolesResult) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetRolesResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSamlProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSamlProvider.go new file mode 100644 index 000000000..adcc67048 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSamlProvider.go @@ -0,0 +1,154 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM SAML provider. This will allow you to easily retrieve the metadata +// document of an existing SAML provider. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupSamlProvider(ctx, &iam.LookupSamlProviderArgs{ +// Arn: "arn:aws:iam::123456789:saml-provider/myprovider", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupSamlProvider(ctx *pulumi.Context, args *LookupSamlProviderArgs, opts ...pulumi.InvokeOption) (*LookupSamlProviderResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupSamlProviderResult + err := ctx.Invoke("aws:iam/getSamlProvider:getSamlProvider", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getSamlProvider. +type LookupSamlProviderArgs struct { + // ARN assigned by AWS for the provider. + Arn string `pulumi:"arn"` + // Tags attached to the SAML provider. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getSamlProvider. +type LookupSamlProviderResult struct { + Arn string `pulumi:"arn"` + // Creation date of the SAML provider in RFC1123 format, e.g. `Mon, 02 Jan 2006 15:04:05 MST`. + CreateDate string `pulumi:"createDate"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Name of the provider. + Name string `pulumi:"name"` + // The XML document generated by an identity provider that supports SAML 2.0. + SamlMetadataDocument string `pulumi:"samlMetadataDocument"` + // Tags attached to the SAML provider. + Tags map[string]string `pulumi:"tags"` + // Expiration date and time for the SAML provider in RFC1123 format, e.g. `Mon, 02 Jan 2007 15:04:05 MST`. + ValidUntil string `pulumi:"validUntil"` +} + +func LookupSamlProviderOutput(ctx *pulumi.Context, args LookupSamlProviderOutputArgs, opts ...pulumi.InvokeOption) LookupSamlProviderResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupSamlProviderResult, error) { + args := v.(LookupSamlProviderArgs) + r, err := LookupSamlProvider(ctx, &args, opts...) + var s LookupSamlProviderResult + if r != nil { + s = *r + } + return s, err + }).(LookupSamlProviderResultOutput) +} + +// A collection of arguments for invoking getSamlProvider. +type LookupSamlProviderOutputArgs struct { + // ARN assigned by AWS for the provider. + Arn pulumi.StringInput `pulumi:"arn"` + // Tags attached to the SAML provider. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LookupSamlProviderOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSamlProviderArgs)(nil)).Elem() +} + +// A collection of values returned by getSamlProvider. +type LookupSamlProviderResultOutput struct{ *pulumi.OutputState } + +func (LookupSamlProviderResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSamlProviderResult)(nil)).Elem() +} + +func (o LookupSamlProviderResultOutput) ToLookupSamlProviderResultOutput() LookupSamlProviderResultOutput { + return o +} + +func (o LookupSamlProviderResultOutput) ToLookupSamlProviderResultOutputWithContext(ctx context.Context) LookupSamlProviderResultOutput { + return o +} + +func (o LookupSamlProviderResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupSamlProviderResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// Creation date of the SAML provider in RFC1123 format, e.g. `Mon, 02 Jan 2006 15:04:05 MST`. +func (o LookupSamlProviderResultOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v LookupSamlProviderResult) string { return v.CreateDate }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupSamlProviderResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupSamlProviderResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Name of the provider. +func (o LookupSamlProviderResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupSamlProviderResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The XML document generated by an identity provider that supports SAML 2.0. +func (o LookupSamlProviderResultOutput) SamlMetadataDocument() pulumi.StringOutput { + return o.ApplyT(func(v LookupSamlProviderResult) string { return v.SamlMetadataDocument }).(pulumi.StringOutput) +} + +// Tags attached to the SAML provider. +func (o LookupSamlProviderResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupSamlProviderResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Expiration date and time for the SAML provider in RFC1123 format, e.g. `Mon, 02 Jan 2007 15:04:05 MST`. +func (o LookupSamlProviderResultOutput) ValidUntil() pulumi.StringOutput { + return o.ApplyT(func(v LookupSamlProviderResult) string { return v.ValidUntil }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupSamlProviderResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getServerCertificate.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getServerCertificate.go new file mode 100644 index 000000000..8b2f1b415 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getServerCertificate.go @@ -0,0 +1,198 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to lookup information about IAM Server Certificates. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elb" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// my_domain, err := iam.LookupServerCertificate(ctx, &iam.LookupServerCertificateArgs{ +// NamePrefix: pulumi.StringRef("my-domain.org"), +// Latest: pulumi.BoolRef(true), +// }, nil) +// if err != nil { +// return err +// } +// _, err = elb.NewLoadBalancer(ctx, "elb", &elb.LoadBalancerArgs{ +// Listeners: elb.LoadBalancerListenerArray{ +// &elb.LoadBalancerListenerArgs{ +// InstancePort: pulumi.Int(8000), +// InstanceProtocol: pulumi.String("https"), +// LbPort: pulumi.Int(443), +// LbProtocol: pulumi.String("https"), +// SslCertificateId: *pulumi.String(my_domain.Arn), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupServerCertificate(ctx *pulumi.Context, args *LookupServerCertificateArgs, opts ...pulumi.InvokeOption) (*LookupServerCertificateResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupServerCertificateResult + err := ctx.Invoke("aws:iam/getServerCertificate:getServerCertificate", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getServerCertificate. +type LookupServerCertificateArgs struct { + // sort results by expiration date. returns the certificate with expiration date in furthest in the future. + Latest *bool `pulumi:"latest"` + // exact name of the cert to lookup + Name *string `pulumi:"name"` + // prefix of cert to filter by + NamePrefix *string `pulumi:"namePrefix"` + // prefix of path to filter by + PathPrefix *string `pulumi:"pathPrefix"` +} + +// A collection of values returned by getServerCertificate. +type LookupServerCertificateResult struct { + // is set to the ARN of the IAM Server Certificate + Arn string `pulumi:"arn"` + // is the public key certificate (PEM-encoded). This is useful when [configuring back-end instance authentication](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html) policy for load balancer + CertificateBody string `pulumi:"certificateBody"` + // is the public key certificate chain (PEM-encoded) if exists, empty otherwise + CertificateChain string `pulumi:"certificateChain"` + // is set to the expiration date of the IAM Server Certificate + ExpirationDate string `pulumi:"expirationDate"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Latest *bool `pulumi:"latest"` + Name string `pulumi:"name"` + NamePrefix *string `pulumi:"namePrefix"` + // is set to the path of the IAM Server Certificate + Path string `pulumi:"path"` + PathPrefix *string `pulumi:"pathPrefix"` + // is the date when the server certificate was uploaded + UploadDate string `pulumi:"uploadDate"` +} + +func LookupServerCertificateOutput(ctx *pulumi.Context, args LookupServerCertificateOutputArgs, opts ...pulumi.InvokeOption) LookupServerCertificateResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupServerCertificateResult, error) { + args := v.(LookupServerCertificateArgs) + r, err := LookupServerCertificate(ctx, &args, opts...) + var s LookupServerCertificateResult + if r != nil { + s = *r + } + return s, err + }).(LookupServerCertificateResultOutput) +} + +// A collection of arguments for invoking getServerCertificate. +type LookupServerCertificateOutputArgs struct { + // sort results by expiration date. returns the certificate with expiration date in furthest in the future. + Latest pulumi.BoolPtrInput `pulumi:"latest"` + // exact name of the cert to lookup + Name pulumi.StringPtrInput `pulumi:"name"` + // prefix of cert to filter by + NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` + // prefix of path to filter by + PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` +} + +func (LookupServerCertificateOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupServerCertificateArgs)(nil)).Elem() +} + +// A collection of values returned by getServerCertificate. +type LookupServerCertificateResultOutput struct{ *pulumi.OutputState } + +func (LookupServerCertificateResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupServerCertificateResult)(nil)).Elem() +} + +func (o LookupServerCertificateResultOutput) ToLookupServerCertificateResultOutput() LookupServerCertificateResultOutput { + return o +} + +func (o LookupServerCertificateResultOutput) ToLookupServerCertificateResultOutputWithContext(ctx context.Context) LookupServerCertificateResultOutput { + return o +} + +// is set to the ARN of the IAM Server Certificate +func (o LookupServerCertificateResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// is the public key certificate (PEM-encoded). This is useful when [configuring back-end instance authentication](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html) policy for load balancer +func (o LookupServerCertificateResultOutput) CertificateBody() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.CertificateBody }).(pulumi.StringOutput) +} + +// is the public key certificate chain (PEM-encoded) if exists, empty otherwise +func (o LookupServerCertificateResultOutput) CertificateChain() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.CertificateChain }).(pulumi.StringOutput) +} + +// is set to the expiration date of the IAM Server Certificate +func (o LookupServerCertificateResultOutput) ExpirationDate() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.ExpirationDate }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupServerCertificateResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupServerCertificateResultOutput) Latest() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupServerCertificateResult) *bool { return v.Latest }).(pulumi.BoolPtrOutput) +} + +func (o LookupServerCertificateResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o LookupServerCertificateResultOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupServerCertificateResult) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) +} + +// is set to the path of the IAM Server Certificate +func (o LookupServerCertificateResultOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.Path }).(pulumi.StringOutput) +} + +func (o LookupServerCertificateResultOutput) PathPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupServerCertificateResult) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) +} + +// is the date when the server certificate was uploaded +func (o LookupServerCertificateResultOutput) UploadDate() pulumi.StringOutput { + return o.ApplyT(func(v LookupServerCertificateResult) string { return v.UploadDate }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupServerCertificateResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSessionContext.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSessionContext.go new file mode 100644 index 000000000..3acfc0fed --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getSessionContext.go @@ -0,0 +1,180 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source provides information on the IAM source role of an STS assumed role. For non-role ARNs, this data source simply passes the ARN through in `issuerArn`. +// +// For some AWS resources, multiple types of principals are allowed in the same argument (e.g., IAM users and IAM roles). However, these arguments often do not allow assumed-role (i.e., STS, temporary credential) principals. Given an STS ARN, this data source provides the ARN for the source IAM role. +// +// ## Example Usage +// ### Basic Example +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetSessionContext(ctx, &iam.GetSessionContextArgs{ +// Arn: "arn:aws:sts::123456789012:assumed-role/Audien-Heaven/MatyNoyes", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Find the Runner's Source Role +// +// Combined with `getCallerIdentity`, you can get the current user's source IAM role ARN (`issuerArn`) if you're using an assumed role. If you're not using an assumed role, the caller's (e.g., an IAM user's) ARN will simply be passed through. In environments where both IAM users and individuals using assumed roles need to apply the same configurations, this data source enables seamless use. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := aws.GetCallerIdentity(ctx, nil, nil) +// if err != nil { +// return err +// } +// _, err = iam.GetSessionContext(ctx, &iam.GetSessionContextArgs{ +// Arn: current.Arn, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetSessionContext(ctx *pulumi.Context, args *GetSessionContextArgs, opts ...pulumi.InvokeOption) (*GetSessionContextResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetSessionContextResult + err := ctx.Invoke("aws:iam/getSessionContext:getSessionContext", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getSessionContext. +type GetSessionContextArgs struct { + // ARN for an assumed role. + // + // > If `arn` is a non-role ARN, Pulumi gives no error and `issuerArn` will be equal to the `arn` value. For STS assumed-role ARNs, Pulumi gives an error if the identified IAM role does not exist. + Arn string `pulumi:"arn"` +} + +// A collection of values returned by getSessionContext. +type GetSessionContextResult struct { + Arn string `pulumi:"arn"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // IAM source role ARN if `arn` corresponds to an STS assumed role. Otherwise, `issuerArn` is equal to `arn`. + IssuerArn string `pulumi:"issuerArn"` + // Unique identifier of the IAM role that issues the STS assumed role. + IssuerId string `pulumi:"issuerId"` + // Name of the source role. Only available if `arn` corresponds to an STS assumed role. + IssuerName string `pulumi:"issuerName"` + // Name of the STS session. Only available if `arn` corresponds to an STS assumed role. + SessionName string `pulumi:"sessionName"` +} + +func GetSessionContextOutput(ctx *pulumi.Context, args GetSessionContextOutputArgs, opts ...pulumi.InvokeOption) GetSessionContextResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetSessionContextResult, error) { + args := v.(GetSessionContextArgs) + r, err := GetSessionContext(ctx, &args, opts...) + var s GetSessionContextResult + if r != nil { + s = *r + } + return s, err + }).(GetSessionContextResultOutput) +} + +// A collection of arguments for invoking getSessionContext. +type GetSessionContextOutputArgs struct { + // ARN for an assumed role. + // + // > If `arn` is a non-role ARN, Pulumi gives no error and `issuerArn` will be equal to the `arn` value. For STS assumed-role ARNs, Pulumi gives an error if the identified IAM role does not exist. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (GetSessionContextOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetSessionContextArgs)(nil)).Elem() +} + +// A collection of values returned by getSessionContext. +type GetSessionContextResultOutput struct{ *pulumi.OutputState } + +func (GetSessionContextResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetSessionContextResult)(nil)).Elem() +} + +func (o GetSessionContextResultOutput) ToGetSessionContextResultOutput() GetSessionContextResultOutput { + return o +} + +func (o GetSessionContextResultOutput) ToGetSessionContextResultOutputWithContext(ctx context.Context) GetSessionContextResultOutput { + return o +} + +func (o GetSessionContextResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetSessionContextResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetSessionContextResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetSessionContextResult) string { return v.Id }).(pulumi.StringOutput) +} + +// IAM source role ARN if `arn` corresponds to an STS assumed role. Otherwise, `issuerArn` is equal to `arn`. +func (o GetSessionContextResultOutput) IssuerArn() pulumi.StringOutput { + return o.ApplyT(func(v GetSessionContextResult) string { return v.IssuerArn }).(pulumi.StringOutput) +} + +// Unique identifier of the IAM role that issues the STS assumed role. +func (o GetSessionContextResultOutput) IssuerId() pulumi.StringOutput { + return o.ApplyT(func(v GetSessionContextResult) string { return v.IssuerId }).(pulumi.StringOutput) +} + +// Name of the source role. Only available if `arn` corresponds to an STS assumed role. +func (o GetSessionContextResultOutput) IssuerName() pulumi.StringOutput { + return o.ApplyT(func(v GetSessionContextResult) string { return v.IssuerName }).(pulumi.StringOutput) +} + +// Name of the STS session. Only available if `arn` corresponds to an STS assumed role. +func (o GetSessionContextResultOutput) SessionName() pulumi.StringOutput { + return o.ApplyT(func(v GetSessionContextResult) string { return v.SessionName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetSessionContextResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUser.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUser.go new file mode 100644 index 000000000..919fa12d6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUser.go @@ -0,0 +1,156 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// This data source can be used to fetch information about a specific +// IAM user. By using this data source, you can reference IAM user +// properties without having to hard code ARNs or unique IDs as input. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.LookupUser(ctx, &iam.LookupUserArgs{ +// UserName: "an_example_user_name", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupUser(ctx *pulumi.Context, args *LookupUserArgs, opts ...pulumi.InvokeOption) (*LookupUserResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupUserResult + err := ctx.Invoke("aws:iam/getUser:getUser", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getUser. +type LookupUserArgs struct { + // Map of key-value pairs associated with the user. + Tags map[string]string `pulumi:"tags"` + // Friendly IAM user name to match. + UserName string `pulumi:"userName"` +} + +// A collection of values returned by getUser. +type LookupUserResult struct { + // ARN assigned by AWS for this user. + Arn string `pulumi:"arn"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Path in which this user was created. + Path string `pulumi:"path"` + // The ARN of the policy that is used to set the permissions boundary for the user. + PermissionsBoundary string `pulumi:"permissionsBoundary"` + // Map of key-value pairs associated with the user. + Tags map[string]string `pulumi:"tags"` + // Unique ID assigned by AWS for this user. + UserId string `pulumi:"userId"` + // Name associated to this User + UserName string `pulumi:"userName"` +} + +func LookupUserOutput(ctx *pulumi.Context, args LookupUserOutputArgs, opts ...pulumi.InvokeOption) LookupUserResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupUserResult, error) { + args := v.(LookupUserArgs) + r, err := LookupUser(ctx, &args, opts...) + var s LookupUserResult + if r != nil { + s = *r + } + return s, err + }).(LookupUserResultOutput) +} + +// A collection of arguments for invoking getUser. +type LookupUserOutputArgs struct { + // Map of key-value pairs associated with the user. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Friendly IAM user name to match. + UserName pulumi.StringInput `pulumi:"userName"` +} + +func (LookupUserOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupUserArgs)(nil)).Elem() +} + +// A collection of values returned by getUser. +type LookupUserResultOutput struct{ *pulumi.OutputState } + +func (LookupUserResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupUserResult)(nil)).Elem() +} + +func (o LookupUserResultOutput) ToLookupUserResultOutput() LookupUserResultOutput { + return o +} + +func (o LookupUserResultOutput) ToLookupUserResultOutputWithContext(ctx context.Context) LookupUserResultOutput { + return o +} + +// ARN assigned by AWS for this user. +func (o LookupUserResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserResult) string { return v.Arn }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupUserResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Path in which this user was created. +func (o LookupUserResultOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserResult) string { return v.Path }).(pulumi.StringOutput) +} + +// The ARN of the policy that is used to set the permissions boundary for the user. +func (o LookupUserResultOutput) PermissionsBoundary() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserResult) string { return v.PermissionsBoundary }).(pulumi.StringOutput) +} + +// Map of key-value pairs associated with the user. +func (o LookupUserResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupUserResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Unique ID assigned by AWS for this user. +func (o LookupUserResultOutput) UserId() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserResult) string { return v.UserId }).(pulumi.StringOutput) +} + +// Name associated to this User +func (o LookupUserResultOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v LookupUserResult) string { return v.UserName }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupUserResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUserSshKey.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUserSshKey.go new file mode 100644 index 000000000..a3e01dad0 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUserSshKey.go @@ -0,0 +1,154 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get information about a SSH public key associated with the specified IAM user. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetUserSshKey(ctx, &iam.GetUserSshKeyArgs{ +// Encoding: "SSH", +// SshPublicKeyId: "APKARUZ32GUTKIGARLXE", +// Username: "test-user", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetUserSshKey(ctx *pulumi.Context, args *GetUserSshKeyArgs, opts ...pulumi.InvokeOption) (*GetUserSshKeyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetUserSshKeyResult + err := ctx.Invoke("aws:iam/getUserSshKey:getUserSshKey", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getUserSshKey. +type GetUserSshKeyArgs struct { + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding string `pulumi:"encoding"` + // Unique identifier for the SSH public key. + SshPublicKeyId string `pulumi:"sshPublicKeyId"` + // Name of the IAM user associated with the SSH public key. + Username string `pulumi:"username"` +} + +// A collection of values returned by getUserSshKey. +type GetUserSshKeyResult struct { + Encoding string `pulumi:"encoding"` + // MD5 message digest of the SSH public key. + Fingerprint string `pulumi:"fingerprint"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // SSH public key. + PublicKey string `pulumi:"publicKey"` + SshPublicKeyId string `pulumi:"sshPublicKeyId"` + // Status of the SSH public key. Active means that the key can be used for authentication with an CodeCommit repository. Inactive means that the key cannot be used. + Status string `pulumi:"status"` + Username string `pulumi:"username"` +} + +func GetUserSshKeyOutput(ctx *pulumi.Context, args GetUserSshKeyOutputArgs, opts ...pulumi.InvokeOption) GetUserSshKeyResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetUserSshKeyResult, error) { + args := v.(GetUserSshKeyArgs) + r, err := GetUserSshKey(ctx, &args, opts...) + var s GetUserSshKeyResult + if r != nil { + s = *r + } + return s, err + }).(GetUserSshKeyResultOutput) +} + +// A collection of arguments for invoking getUserSshKey. +type GetUserSshKeyOutputArgs struct { + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding pulumi.StringInput `pulumi:"encoding"` + // Unique identifier for the SSH public key. + SshPublicKeyId pulumi.StringInput `pulumi:"sshPublicKeyId"` + // Name of the IAM user associated with the SSH public key. + Username pulumi.StringInput `pulumi:"username"` +} + +func (GetUserSshKeyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetUserSshKeyArgs)(nil)).Elem() +} + +// A collection of values returned by getUserSshKey. +type GetUserSshKeyResultOutput struct{ *pulumi.OutputState } + +func (GetUserSshKeyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetUserSshKeyResult)(nil)).Elem() +} + +func (o GetUserSshKeyResultOutput) ToGetUserSshKeyResultOutput() GetUserSshKeyResultOutput { + return o +} + +func (o GetUserSshKeyResultOutput) ToGetUserSshKeyResultOutputWithContext(ctx context.Context) GetUserSshKeyResultOutput { + return o +} + +func (o GetUserSshKeyResultOutput) Encoding() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.Encoding }).(pulumi.StringOutput) +} + +// MD5 message digest of the SSH public key. +func (o GetUserSshKeyResultOutput) Fingerprint() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.Fingerprint }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetUserSshKeyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.Id }).(pulumi.StringOutput) +} + +// SSH public key. +func (o GetUserSshKeyResultOutput) PublicKey() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.PublicKey }).(pulumi.StringOutput) +} + +func (o GetUserSshKeyResultOutput) SshPublicKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.SshPublicKeyId }).(pulumi.StringOutput) +} + +// Status of the SSH public key. Active means that the key can be used for authentication with an CodeCommit repository. Inactive means that the key cannot be used. +func (o GetUserSshKeyResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.Status }).(pulumi.StringOutput) +} + +func (o GetUserSshKeyResultOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v GetUserSshKeyResult) string { return v.Username }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetUserSshKeyResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUsers.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUsers.go new file mode 100644 index 000000000..9cd5c670b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/getUsers.go @@ -0,0 +1,187 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to get the ARNs and Names of IAM Users. +// +// ## Example Usage +// ### All users in an account +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetUsers(ctx, nil, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Users filtered by name regex +// +// Users whose username contains `abc` +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetUsers(ctx, &iam.GetUsersArgs{ +// NameRegex: pulumi.StringRef(".*abc.*"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Users filtered by path prefix +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.GetUsers(ctx, &iam.GetUsersArgs{ +// PathPrefix: pulumi.StringRef("/custom-path"), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetUsers(ctx *pulumi.Context, args *GetUsersArgs, opts ...pulumi.InvokeOption) (*GetUsersResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetUsersResult + err := ctx.Invoke("aws:iam/getUsers:getUsers", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getUsers. +type GetUsersArgs struct { + // Regex string to apply to the IAM users list returned by AWS. This allows more advanced filtering not supported from the AWS API. This filtering is done locally on what AWS returns, and could have a performance impact if the result is large. Combine this with other options to narrow down the list AWS returns. + NameRegex *string `pulumi:"nameRegex"` + // Path prefix for filtering the results. For example, the prefix `/division_abc/subdivision_xyz/` gets all users whose path starts with `/division_abc/subdivision_xyz/`. If it is not included, it defaults to a slash (`/`), listing all users. For more details, check out [list-users in the AWS CLI reference][1]. + PathPrefix *string `pulumi:"pathPrefix"` +} + +// A collection of values returned by getUsers. +type GetUsersResult struct { + // Set of ARNs of the matched IAM users. + Arns []string `pulumi:"arns"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + NameRegex *string `pulumi:"nameRegex"` + // Set of Names of the matched IAM users. + Names []string `pulumi:"names"` + PathPrefix *string `pulumi:"pathPrefix"` +} + +func GetUsersOutput(ctx *pulumi.Context, args GetUsersOutputArgs, opts ...pulumi.InvokeOption) GetUsersResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetUsersResult, error) { + args := v.(GetUsersArgs) + r, err := GetUsers(ctx, &args, opts...) + var s GetUsersResult + if r != nil { + s = *r + } + return s, err + }).(GetUsersResultOutput) +} + +// A collection of arguments for invoking getUsers. +type GetUsersOutputArgs struct { + // Regex string to apply to the IAM users list returned by AWS. This allows more advanced filtering not supported from the AWS API. This filtering is done locally on what AWS returns, and could have a performance impact if the result is large. Combine this with other options to narrow down the list AWS returns. + NameRegex pulumi.StringPtrInput `pulumi:"nameRegex"` + // Path prefix for filtering the results. For example, the prefix `/division_abc/subdivision_xyz/` gets all users whose path starts with `/division_abc/subdivision_xyz/`. If it is not included, it defaults to a slash (`/`), listing all users. For more details, check out [list-users in the AWS CLI reference][1]. + PathPrefix pulumi.StringPtrInput `pulumi:"pathPrefix"` +} + +func (GetUsersOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetUsersArgs)(nil)).Elem() +} + +// A collection of values returned by getUsers. +type GetUsersResultOutput struct{ *pulumi.OutputState } + +func (GetUsersResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetUsersResult)(nil)).Elem() +} + +func (o GetUsersResultOutput) ToGetUsersResultOutput() GetUsersResultOutput { + return o +} + +func (o GetUsersResultOutput) ToGetUsersResultOutputWithContext(ctx context.Context) GetUsersResultOutput { + return o +} + +// Set of ARNs of the matched IAM users. +func (o GetUsersResultOutput) Arns() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetUsersResult) []string { return v.Arns }).(pulumi.StringArrayOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetUsersResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetUsersResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetUsersResultOutput) NameRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetUsersResult) *string { return v.NameRegex }).(pulumi.StringPtrOutput) +} + +// Set of Names of the matched IAM users. +func (o GetUsersResultOutput) Names() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetUsersResult) []string { return v.Names }).(pulumi.StringArrayOutput) +} + +func (o GetUsersResultOutput) PathPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetUsersResult) *string { return v.PathPrefix }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetUsersResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/group.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/group.go new file mode 100644 index 000000000..7916d5004 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/group.go @@ -0,0 +1,290 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM group. +// +// > **NOTE on user management:** Using `iam.GroupMembership` or `iam.UserGroupMembership` resources in addition to manually managing user/group membership using the console may lead to configuration drift or conflicts. For this reason, it's recommended to either manage membership entirely with the provider or entirely within the AWS console. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewGroup(ctx, "developers", &iam.GroupArgs{ +// Path: pulumi.String("/users/"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Groups using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/group:Group developers developers +// +// ``` +type Group struct { + pulumi.CustomResourceState + + // The ARN assigned by AWS for this group. + Arn pulumi.StringOutput `pulumi:"arn"` + // The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + Name pulumi.StringOutput `pulumi:"name"` + // Path in which to create the group. + Path pulumi.StringPtrOutput `pulumi:"path"` + // The [unique ID][1] assigned by AWS. + UniqueId pulumi.StringOutput `pulumi:"uniqueId"` +} + +// NewGroup registers a new resource with the given unique name, arguments, and options. +func NewGroup(ctx *pulumi.Context, + name string, args *GroupArgs, opts ...pulumi.ResourceOption) (*Group, error) { + if args == nil { + args = &GroupArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Group + err := ctx.RegisterResource("aws:iam/group:Group", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGroup gets an existing Group resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGroup(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GroupState, opts ...pulumi.ResourceOption) (*Group, error) { + var resource Group + err := ctx.ReadResource("aws:iam/group:Group", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Group resources. +type groupState struct { + // The ARN assigned by AWS for this group. + Arn *string `pulumi:"arn"` + // The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + Name *string `pulumi:"name"` + // Path in which to create the group. + Path *string `pulumi:"path"` + // The [unique ID][1] assigned by AWS. + UniqueId *string `pulumi:"uniqueId"` +} + +type GroupState struct { + // The ARN assigned by AWS for this group. + Arn pulumi.StringPtrInput + // The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + Name pulumi.StringPtrInput + // Path in which to create the group. + Path pulumi.StringPtrInput + // The [unique ID][1] assigned by AWS. + UniqueId pulumi.StringPtrInput +} + +func (GroupState) ElementType() reflect.Type { + return reflect.TypeOf((*groupState)(nil)).Elem() +} + +type groupArgs struct { + // The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + Name *string `pulumi:"name"` + // Path in which to create the group. + Path *string `pulumi:"path"` +} + +// The set of arguments for constructing a Group resource. +type GroupArgs struct { + // The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". + Name pulumi.StringPtrInput + // Path in which to create the group. + Path pulumi.StringPtrInput +} + +func (GroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*groupArgs)(nil)).Elem() +} + +type GroupInput interface { + pulumi.Input + + ToGroupOutput() GroupOutput + ToGroupOutputWithContext(ctx context.Context) GroupOutput +} + +func (*Group) ElementType() reflect.Type { + return reflect.TypeOf((**Group)(nil)).Elem() +} + +func (i *Group) ToGroupOutput() GroupOutput { + return i.ToGroupOutputWithContext(context.Background()) +} + +func (i *Group) ToGroupOutputWithContext(ctx context.Context) GroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupOutput) +} + +// GroupArrayInput is an input type that accepts GroupArray and GroupArrayOutput values. +// You can construct a concrete instance of `GroupArrayInput` via: +// +// GroupArray{ GroupArgs{...} } +type GroupArrayInput interface { + pulumi.Input + + ToGroupArrayOutput() GroupArrayOutput + ToGroupArrayOutputWithContext(context.Context) GroupArrayOutput +} + +type GroupArray []GroupInput + +func (GroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Group)(nil)).Elem() +} + +func (i GroupArray) ToGroupArrayOutput() GroupArrayOutput { + return i.ToGroupArrayOutputWithContext(context.Background()) +} + +func (i GroupArray) ToGroupArrayOutputWithContext(ctx context.Context) GroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupArrayOutput) +} + +// GroupMapInput is an input type that accepts GroupMap and GroupMapOutput values. +// You can construct a concrete instance of `GroupMapInput` via: +// +// GroupMap{ "key": GroupArgs{...} } +type GroupMapInput interface { + pulumi.Input + + ToGroupMapOutput() GroupMapOutput + ToGroupMapOutputWithContext(context.Context) GroupMapOutput +} + +type GroupMap map[string]GroupInput + +func (GroupMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Group)(nil)).Elem() +} + +func (i GroupMap) ToGroupMapOutput() GroupMapOutput { + return i.ToGroupMapOutputWithContext(context.Background()) +} + +func (i GroupMap) ToGroupMapOutputWithContext(ctx context.Context) GroupMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupMapOutput) +} + +type GroupOutput struct{ *pulumi.OutputState } + +func (GroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Group)(nil)).Elem() +} + +func (o GroupOutput) ToGroupOutput() GroupOutput { + return o +} + +func (o GroupOutput) ToGroupOutputWithContext(ctx context.Context) GroupOutput { + return o +} + +// The ARN assigned by AWS for this group. +func (o GroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Group) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The group's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. Group names are not distinguished by case. For example, you cannot create groups named both "ADMINS" and "admins". +func (o GroupOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Group) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Path in which to create the group. +func (o GroupOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Group) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// The [unique ID][1] assigned by AWS. +func (o GroupOutput) UniqueId() pulumi.StringOutput { + return o.ApplyT(func(v *Group) pulumi.StringOutput { return v.UniqueId }).(pulumi.StringOutput) +} + +type GroupArrayOutput struct{ *pulumi.OutputState } + +func (GroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Group)(nil)).Elem() +} + +func (o GroupArrayOutput) ToGroupArrayOutput() GroupArrayOutput { + return o +} + +func (o GroupArrayOutput) ToGroupArrayOutputWithContext(ctx context.Context) GroupArrayOutput { + return o +} + +func (o GroupArrayOutput) Index(i pulumi.IntInput) GroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Group { + return vs[0].([]*Group)[vs[1].(int)] + }).(GroupOutput) +} + +type GroupMapOutput struct{ *pulumi.OutputState } + +func (GroupMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Group)(nil)).Elem() +} + +func (o GroupMapOutput) ToGroupMapOutput() GroupMapOutput { + return o +} + +func (o GroupMapOutput) ToGroupMapOutputWithContext(ctx context.Context) GroupMapOutput { + return o +} + +func (o GroupMapOutput) MapIndex(k pulumi.StringInput) GroupOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Group { + return vs[0].(map[string]*Group)[vs[1].(string)] + }).(GroupOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GroupInput)(nil)).Elem(), &Group{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupArrayInput)(nil)).Elem(), GroupArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupMapInput)(nil)).Elem(), GroupMap{}) + pulumi.RegisterOutputType(GroupOutput{}) + pulumi.RegisterOutputType(GroupArrayOutput{}) + pulumi.RegisterOutputType(GroupMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupMembership.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupMembership.go new file mode 100644 index 000000000..410985a37 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupMembership.go @@ -0,0 +1,301 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **WARNING:** Multiple iam.GroupMembership resources with the same group name will produce inconsistent behavior! +// +// Provides a top level resource to manage IAM Group membership for IAM Users. For +// more information on managing IAM Groups or IAM Users, see IAM Groups or +// IAM Users +// +// > **Note:** `iam.GroupMembership` will conflict with itself if used more than once with the same group. To non-exclusively manage the users in a group, see the +// `iam.UserGroupMembership` resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// group, err := iam.NewGroup(ctx, "group", nil) +// if err != nil { +// return err +// } +// userOne, err := iam.NewUser(ctx, "userOne", nil) +// if err != nil { +// return err +// } +// userTwo, err := iam.NewUser(ctx, "userTwo", nil) +// if err != nil { +// return err +// } +// _, err = iam.NewGroupMembership(ctx, "team", &iam.GroupMembershipArgs{ +// Users: pulumi.StringArray{ +// userOne.Name, +// userTwo.Name, +// }, +// Group: group.Name, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type GroupMembership struct { + pulumi.CustomResourceState + + // The IAM Group name to attach the list of `users` to + Group pulumi.StringOutput `pulumi:"group"` + // The name to identify the Group Membership + Name pulumi.StringOutput `pulumi:"name"` + // A list of IAM User names to associate with the Group + Users pulumi.StringArrayOutput `pulumi:"users"` +} + +// NewGroupMembership registers a new resource with the given unique name, arguments, and options. +func NewGroupMembership(ctx *pulumi.Context, + name string, args *GroupMembershipArgs, opts ...pulumi.ResourceOption) (*GroupMembership, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Group == nil { + return nil, errors.New("invalid value for required argument 'Group'") + } + if args.Users == nil { + return nil, errors.New("invalid value for required argument 'Users'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GroupMembership + err := ctx.RegisterResource("aws:iam/groupMembership:GroupMembership", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGroupMembership gets an existing GroupMembership resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGroupMembership(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GroupMembershipState, opts ...pulumi.ResourceOption) (*GroupMembership, error) { + var resource GroupMembership + err := ctx.ReadResource("aws:iam/groupMembership:GroupMembership", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GroupMembership resources. +type groupMembershipState struct { + // The IAM Group name to attach the list of `users` to + Group *string `pulumi:"group"` + // The name to identify the Group Membership + Name *string `pulumi:"name"` + // A list of IAM User names to associate with the Group + Users []string `pulumi:"users"` +} + +type GroupMembershipState struct { + // The IAM Group name to attach the list of `users` to + Group pulumi.StringPtrInput + // The name to identify the Group Membership + Name pulumi.StringPtrInput + // A list of IAM User names to associate with the Group + Users pulumi.StringArrayInput +} + +func (GroupMembershipState) ElementType() reflect.Type { + return reflect.TypeOf((*groupMembershipState)(nil)).Elem() +} + +type groupMembershipArgs struct { + // The IAM Group name to attach the list of `users` to + Group string `pulumi:"group"` + // The name to identify the Group Membership + Name *string `pulumi:"name"` + // A list of IAM User names to associate with the Group + Users []string `pulumi:"users"` +} + +// The set of arguments for constructing a GroupMembership resource. +type GroupMembershipArgs struct { + // The IAM Group name to attach the list of `users` to + Group pulumi.StringInput + // The name to identify the Group Membership + Name pulumi.StringPtrInput + // A list of IAM User names to associate with the Group + Users pulumi.StringArrayInput +} + +func (GroupMembershipArgs) ElementType() reflect.Type { + return reflect.TypeOf((*groupMembershipArgs)(nil)).Elem() +} + +type GroupMembershipInput interface { + pulumi.Input + + ToGroupMembershipOutput() GroupMembershipOutput + ToGroupMembershipOutputWithContext(ctx context.Context) GroupMembershipOutput +} + +func (*GroupMembership) ElementType() reflect.Type { + return reflect.TypeOf((**GroupMembership)(nil)).Elem() +} + +func (i *GroupMembership) ToGroupMembershipOutput() GroupMembershipOutput { + return i.ToGroupMembershipOutputWithContext(context.Background()) +} + +func (i *GroupMembership) ToGroupMembershipOutputWithContext(ctx context.Context) GroupMembershipOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupMembershipOutput) +} + +// GroupMembershipArrayInput is an input type that accepts GroupMembershipArray and GroupMembershipArrayOutput values. +// You can construct a concrete instance of `GroupMembershipArrayInput` via: +// +// GroupMembershipArray{ GroupMembershipArgs{...} } +type GroupMembershipArrayInput interface { + pulumi.Input + + ToGroupMembershipArrayOutput() GroupMembershipArrayOutput + ToGroupMembershipArrayOutputWithContext(context.Context) GroupMembershipArrayOutput +} + +type GroupMembershipArray []GroupMembershipInput + +func (GroupMembershipArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupMembership)(nil)).Elem() +} + +func (i GroupMembershipArray) ToGroupMembershipArrayOutput() GroupMembershipArrayOutput { + return i.ToGroupMembershipArrayOutputWithContext(context.Background()) +} + +func (i GroupMembershipArray) ToGroupMembershipArrayOutputWithContext(ctx context.Context) GroupMembershipArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupMembershipArrayOutput) +} + +// GroupMembershipMapInput is an input type that accepts GroupMembershipMap and GroupMembershipMapOutput values. +// You can construct a concrete instance of `GroupMembershipMapInput` via: +// +// GroupMembershipMap{ "key": GroupMembershipArgs{...} } +type GroupMembershipMapInput interface { + pulumi.Input + + ToGroupMembershipMapOutput() GroupMembershipMapOutput + ToGroupMembershipMapOutputWithContext(context.Context) GroupMembershipMapOutput +} + +type GroupMembershipMap map[string]GroupMembershipInput + +func (GroupMembershipMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupMembership)(nil)).Elem() +} + +func (i GroupMembershipMap) ToGroupMembershipMapOutput() GroupMembershipMapOutput { + return i.ToGroupMembershipMapOutputWithContext(context.Background()) +} + +func (i GroupMembershipMap) ToGroupMembershipMapOutputWithContext(ctx context.Context) GroupMembershipMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupMembershipMapOutput) +} + +type GroupMembershipOutput struct{ *pulumi.OutputState } + +func (GroupMembershipOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupMembership)(nil)).Elem() +} + +func (o GroupMembershipOutput) ToGroupMembershipOutput() GroupMembershipOutput { + return o +} + +func (o GroupMembershipOutput) ToGroupMembershipOutputWithContext(ctx context.Context) GroupMembershipOutput { + return o +} + +// The IAM Group name to attach the list of `users` to +func (o GroupMembershipOutput) Group() pulumi.StringOutput { + return o.ApplyT(func(v *GroupMembership) pulumi.StringOutput { return v.Group }).(pulumi.StringOutput) +} + +// The name to identify the Group Membership +func (o GroupMembershipOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *GroupMembership) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// A list of IAM User names to associate with the Group +func (o GroupMembershipOutput) Users() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GroupMembership) pulumi.StringArrayOutput { return v.Users }).(pulumi.StringArrayOutput) +} + +type GroupMembershipArrayOutput struct{ *pulumi.OutputState } + +func (GroupMembershipArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupMembership)(nil)).Elem() +} + +func (o GroupMembershipArrayOutput) ToGroupMembershipArrayOutput() GroupMembershipArrayOutput { + return o +} + +func (o GroupMembershipArrayOutput) ToGroupMembershipArrayOutputWithContext(ctx context.Context) GroupMembershipArrayOutput { + return o +} + +func (o GroupMembershipArrayOutput) Index(i pulumi.IntInput) GroupMembershipOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GroupMembership { + return vs[0].([]*GroupMembership)[vs[1].(int)] + }).(GroupMembershipOutput) +} + +type GroupMembershipMapOutput struct{ *pulumi.OutputState } + +func (GroupMembershipMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupMembership)(nil)).Elem() +} + +func (o GroupMembershipMapOutput) ToGroupMembershipMapOutput() GroupMembershipMapOutput { + return o +} + +func (o GroupMembershipMapOutput) ToGroupMembershipMapOutputWithContext(ctx context.Context) GroupMembershipMapOutput { + return o +} + +func (o GroupMembershipMapOutput) MapIndex(k pulumi.StringInput) GroupMembershipOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GroupMembership { + return vs[0].(map[string]*GroupMembership)[vs[1].(string)] + }).(GroupMembershipOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GroupMembershipInput)(nil)).Elem(), &GroupMembership{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupMembershipArrayInput)(nil)).Elem(), GroupMembershipArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupMembershipMapInput)(nil)).Elem(), GroupMembershipMap{}) + pulumi.RegisterOutputType(GroupMembershipOutput{}) + pulumi.RegisterOutputType(GroupMembershipArrayOutput{}) + pulumi.RegisterOutputType(GroupMembershipMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicy.go new file mode 100644 index 000000000..9dda3bc55 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicy.go @@ -0,0 +1,340 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM policy attached to a group. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// myDevelopers, err := iam.NewGroup(ctx, "myDevelopers", &iam.GroupArgs{ +// Path: pulumi.String("/users/"), +// }) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "ec2:Describe*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = iam.NewGroupPolicy(ctx, "myDeveloperPolicy", &iam.GroupPolicyArgs{ +// Group: myDevelopers.Name, +// Policy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Group Policies using the `group_name:group_policy_name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/groupPolicy:GroupPolicy mypolicy group_of_mypolicy_name:mypolicy_name +// +// ``` +type GroupPolicy struct { + pulumi.CustomResourceState + + // The IAM group to attach to the policy. + Group pulumi.StringOutput `pulumi:"group"` + // The name of the policy. If omitted, the provider will + // assign a random, unique name. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // The policy document. This is a JSON formatted string. + Policy pulumi.StringOutput `pulumi:"policy"` +} + +// NewGroupPolicy registers a new resource with the given unique name, arguments, and options. +func NewGroupPolicy(ctx *pulumi.Context, + name string, args *GroupPolicyArgs, opts ...pulumi.ResourceOption) (*GroupPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Group == nil { + return nil, errors.New("invalid value for required argument 'Group'") + } + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GroupPolicy + err := ctx.RegisterResource("aws:iam/groupPolicy:GroupPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGroupPolicy gets an existing GroupPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGroupPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GroupPolicyState, opts ...pulumi.ResourceOption) (*GroupPolicy, error) { + var resource GroupPolicy + err := ctx.ReadResource("aws:iam/groupPolicy:GroupPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GroupPolicy resources. +type groupPolicyState struct { + // The IAM group to attach to the policy. + Group *string `pulumi:"group"` + // The name of the policy. If omitted, the provider will + // assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The policy document. This is a JSON formatted string. + Policy interface{} `pulumi:"policy"` +} + +type GroupPolicyState struct { + // The IAM group to attach to the policy. + Group pulumi.StringPtrInput + // The name of the policy. If omitted, the provider will + // assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The policy document. This is a JSON formatted string. + Policy pulumi.Input +} + +func (GroupPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*groupPolicyState)(nil)).Elem() +} + +type groupPolicyArgs struct { + // The IAM group to attach to the policy. + Group string `pulumi:"group"` + // The name of the policy. If omitted, the provider will + // assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The policy document. This is a JSON formatted string. + Policy interface{} `pulumi:"policy"` +} + +// The set of arguments for constructing a GroupPolicy resource. +type GroupPolicyArgs struct { + // The IAM group to attach to the policy. + Group pulumi.StringInput + // The name of the policy. If omitted, the provider will + // assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The policy document. This is a JSON formatted string. + Policy pulumi.Input +} + +func (GroupPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*groupPolicyArgs)(nil)).Elem() +} + +type GroupPolicyInput interface { + pulumi.Input + + ToGroupPolicyOutput() GroupPolicyOutput + ToGroupPolicyOutputWithContext(ctx context.Context) GroupPolicyOutput +} + +func (*GroupPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**GroupPolicy)(nil)).Elem() +} + +func (i *GroupPolicy) ToGroupPolicyOutput() GroupPolicyOutput { + return i.ToGroupPolicyOutputWithContext(context.Background()) +} + +func (i *GroupPolicy) ToGroupPolicyOutputWithContext(ctx context.Context) GroupPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPolicyOutput) +} + +// GroupPolicyArrayInput is an input type that accepts GroupPolicyArray and GroupPolicyArrayOutput values. +// You can construct a concrete instance of `GroupPolicyArrayInput` via: +// +// GroupPolicyArray{ GroupPolicyArgs{...} } +type GroupPolicyArrayInput interface { + pulumi.Input + + ToGroupPolicyArrayOutput() GroupPolicyArrayOutput + ToGroupPolicyArrayOutputWithContext(context.Context) GroupPolicyArrayOutput +} + +type GroupPolicyArray []GroupPolicyInput + +func (GroupPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupPolicy)(nil)).Elem() +} + +func (i GroupPolicyArray) ToGroupPolicyArrayOutput() GroupPolicyArrayOutput { + return i.ToGroupPolicyArrayOutputWithContext(context.Background()) +} + +func (i GroupPolicyArray) ToGroupPolicyArrayOutputWithContext(ctx context.Context) GroupPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPolicyArrayOutput) +} + +// GroupPolicyMapInput is an input type that accepts GroupPolicyMap and GroupPolicyMapOutput values. +// You can construct a concrete instance of `GroupPolicyMapInput` via: +// +// GroupPolicyMap{ "key": GroupPolicyArgs{...} } +type GroupPolicyMapInput interface { + pulumi.Input + + ToGroupPolicyMapOutput() GroupPolicyMapOutput + ToGroupPolicyMapOutputWithContext(context.Context) GroupPolicyMapOutput +} + +type GroupPolicyMap map[string]GroupPolicyInput + +func (GroupPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupPolicy)(nil)).Elem() +} + +func (i GroupPolicyMap) ToGroupPolicyMapOutput() GroupPolicyMapOutput { + return i.ToGroupPolicyMapOutputWithContext(context.Background()) +} + +func (i GroupPolicyMap) ToGroupPolicyMapOutputWithContext(ctx context.Context) GroupPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPolicyMapOutput) +} + +type GroupPolicyOutput struct{ *pulumi.OutputState } + +func (GroupPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupPolicy)(nil)).Elem() +} + +func (o GroupPolicyOutput) ToGroupPolicyOutput() GroupPolicyOutput { + return o +} + +func (o GroupPolicyOutput) ToGroupPolicyOutputWithContext(ctx context.Context) GroupPolicyOutput { + return o +} + +// The IAM group to attach to the policy. +func (o GroupPolicyOutput) Group() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPolicy) pulumi.StringOutput { return v.Group }).(pulumi.StringOutput) +} + +// The name of the policy. If omitted, the provider will +// assign a random, unique name. +func (o GroupPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified +// prefix. Conflicts with `name`. +func (o GroupPolicyOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPolicy) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// The policy document. This is a JSON formatted string. +func (o GroupPolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +type GroupPolicyArrayOutput struct{ *pulumi.OutputState } + +func (GroupPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupPolicy)(nil)).Elem() +} + +func (o GroupPolicyArrayOutput) ToGroupPolicyArrayOutput() GroupPolicyArrayOutput { + return o +} + +func (o GroupPolicyArrayOutput) ToGroupPolicyArrayOutputWithContext(ctx context.Context) GroupPolicyArrayOutput { + return o +} + +func (o GroupPolicyArrayOutput) Index(i pulumi.IntInput) GroupPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GroupPolicy { + return vs[0].([]*GroupPolicy)[vs[1].(int)] + }).(GroupPolicyOutput) +} + +type GroupPolicyMapOutput struct{ *pulumi.OutputState } + +func (GroupPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupPolicy)(nil)).Elem() +} + +func (o GroupPolicyMapOutput) ToGroupPolicyMapOutput() GroupPolicyMapOutput { + return o +} + +func (o GroupPolicyMapOutput) ToGroupPolicyMapOutputWithContext(ctx context.Context) GroupPolicyMapOutput { + return o +} + +func (o GroupPolicyMapOutput) MapIndex(k pulumi.StringInput) GroupPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GroupPolicy { + return vs[0].(map[string]*GroupPolicy)[vs[1].(string)] + }).(GroupPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GroupPolicyInput)(nil)).Elem(), &GroupPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupPolicyArrayInput)(nil)).Elem(), GroupPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupPolicyMapInput)(nil)).Elem(), GroupPolicyMap{}) + pulumi.RegisterOutputType(GroupPolicyOutput{}) + pulumi.RegisterOutputType(GroupPolicyArrayOutput{}) + pulumi.RegisterOutputType(GroupPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicyAttachment.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicyAttachment.go new file mode 100644 index 000000000..45fca1af1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/groupPolicyAttachment.go @@ -0,0 +1,287 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Attaches a Managed IAM Policy to an IAM group +// +// > **NOTE:** The usage of this resource conflicts with the `iam.PolicyAttachment` resource and will permanently show a difference if both are defined. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// group, err := iam.NewGroup(ctx, "group", nil) +// if err != nil { +// return err +// } +// policy, err := iam.NewPolicy(ctx, "policy", &iam.PolicyArgs{ +// Description: pulumi.String("A test policy"), +// Policy: pulumi.Any("{ ... policy JSON ... }"), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewGroupPolicyAttachment(ctx, "test-attach", &iam.GroupPolicyAttachmentArgs{ +// Group: group.Name, +// PolicyArn: policy.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM group policy attachments using the group name and policy arn separated by `/`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/groupPolicyAttachment:GroupPolicyAttachment test-attach test-group/arn:aws:iam::xxxxxxxxxxxx:policy/test-policy +// +// ``` +type GroupPolicyAttachment struct { + pulumi.CustomResourceState + + // The group the policy should be applied to + Group pulumi.StringOutput `pulumi:"group"` + // The ARN of the policy you want to apply + PolicyArn pulumi.StringOutput `pulumi:"policyArn"` +} + +// NewGroupPolicyAttachment registers a new resource with the given unique name, arguments, and options. +func NewGroupPolicyAttachment(ctx *pulumi.Context, + name string, args *GroupPolicyAttachmentArgs, opts ...pulumi.ResourceOption) (*GroupPolicyAttachment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Group == nil { + return nil, errors.New("invalid value for required argument 'Group'") + } + if args.PolicyArn == nil { + return nil, errors.New("invalid value for required argument 'PolicyArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GroupPolicyAttachment + err := ctx.RegisterResource("aws:iam/groupPolicyAttachment:GroupPolicyAttachment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGroupPolicyAttachment gets an existing GroupPolicyAttachment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGroupPolicyAttachment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GroupPolicyAttachmentState, opts ...pulumi.ResourceOption) (*GroupPolicyAttachment, error) { + var resource GroupPolicyAttachment + err := ctx.ReadResource("aws:iam/groupPolicyAttachment:GroupPolicyAttachment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GroupPolicyAttachment resources. +type groupPolicyAttachmentState struct { + // The group the policy should be applied to + Group interface{} `pulumi:"group"` + // The ARN of the policy you want to apply + PolicyArn *string `pulumi:"policyArn"` +} + +type GroupPolicyAttachmentState struct { + // The group the policy should be applied to + Group pulumi.Input + // The ARN of the policy you want to apply + PolicyArn pulumi.StringPtrInput +} + +func (GroupPolicyAttachmentState) ElementType() reflect.Type { + return reflect.TypeOf((*groupPolicyAttachmentState)(nil)).Elem() +} + +type groupPolicyAttachmentArgs struct { + // The group the policy should be applied to + Group interface{} `pulumi:"group"` + // The ARN of the policy you want to apply + PolicyArn string `pulumi:"policyArn"` +} + +// The set of arguments for constructing a GroupPolicyAttachment resource. +type GroupPolicyAttachmentArgs struct { + // The group the policy should be applied to + Group pulumi.Input + // The ARN of the policy you want to apply + PolicyArn pulumi.StringInput +} + +func (GroupPolicyAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*groupPolicyAttachmentArgs)(nil)).Elem() +} + +type GroupPolicyAttachmentInput interface { + pulumi.Input + + ToGroupPolicyAttachmentOutput() GroupPolicyAttachmentOutput + ToGroupPolicyAttachmentOutputWithContext(ctx context.Context) GroupPolicyAttachmentOutput +} + +func (*GroupPolicyAttachment) ElementType() reflect.Type { + return reflect.TypeOf((**GroupPolicyAttachment)(nil)).Elem() +} + +func (i *GroupPolicyAttachment) ToGroupPolicyAttachmentOutput() GroupPolicyAttachmentOutput { + return i.ToGroupPolicyAttachmentOutputWithContext(context.Background()) +} + +func (i *GroupPolicyAttachment) ToGroupPolicyAttachmentOutputWithContext(ctx context.Context) GroupPolicyAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPolicyAttachmentOutput) +} + +// GroupPolicyAttachmentArrayInput is an input type that accepts GroupPolicyAttachmentArray and GroupPolicyAttachmentArrayOutput values. +// You can construct a concrete instance of `GroupPolicyAttachmentArrayInput` via: +// +// GroupPolicyAttachmentArray{ GroupPolicyAttachmentArgs{...} } +type GroupPolicyAttachmentArrayInput interface { + pulumi.Input + + ToGroupPolicyAttachmentArrayOutput() GroupPolicyAttachmentArrayOutput + ToGroupPolicyAttachmentArrayOutputWithContext(context.Context) GroupPolicyAttachmentArrayOutput +} + +type GroupPolicyAttachmentArray []GroupPolicyAttachmentInput + +func (GroupPolicyAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupPolicyAttachment)(nil)).Elem() +} + +func (i GroupPolicyAttachmentArray) ToGroupPolicyAttachmentArrayOutput() GroupPolicyAttachmentArrayOutput { + return i.ToGroupPolicyAttachmentArrayOutputWithContext(context.Background()) +} + +func (i GroupPolicyAttachmentArray) ToGroupPolicyAttachmentArrayOutputWithContext(ctx context.Context) GroupPolicyAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPolicyAttachmentArrayOutput) +} + +// GroupPolicyAttachmentMapInput is an input type that accepts GroupPolicyAttachmentMap and GroupPolicyAttachmentMapOutput values. +// You can construct a concrete instance of `GroupPolicyAttachmentMapInput` via: +// +// GroupPolicyAttachmentMap{ "key": GroupPolicyAttachmentArgs{...} } +type GroupPolicyAttachmentMapInput interface { + pulumi.Input + + ToGroupPolicyAttachmentMapOutput() GroupPolicyAttachmentMapOutput + ToGroupPolicyAttachmentMapOutputWithContext(context.Context) GroupPolicyAttachmentMapOutput +} + +type GroupPolicyAttachmentMap map[string]GroupPolicyAttachmentInput + +func (GroupPolicyAttachmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupPolicyAttachment)(nil)).Elem() +} + +func (i GroupPolicyAttachmentMap) ToGroupPolicyAttachmentMapOutput() GroupPolicyAttachmentMapOutput { + return i.ToGroupPolicyAttachmentMapOutputWithContext(context.Background()) +} + +func (i GroupPolicyAttachmentMap) ToGroupPolicyAttachmentMapOutputWithContext(ctx context.Context) GroupPolicyAttachmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupPolicyAttachmentMapOutput) +} + +type GroupPolicyAttachmentOutput struct{ *pulumi.OutputState } + +func (GroupPolicyAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupPolicyAttachment)(nil)).Elem() +} + +func (o GroupPolicyAttachmentOutput) ToGroupPolicyAttachmentOutput() GroupPolicyAttachmentOutput { + return o +} + +func (o GroupPolicyAttachmentOutput) ToGroupPolicyAttachmentOutputWithContext(ctx context.Context) GroupPolicyAttachmentOutput { + return o +} + +// The group the policy should be applied to +func (o GroupPolicyAttachmentOutput) Group() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPolicyAttachment) pulumi.StringOutput { return v.Group }).(pulumi.StringOutput) +} + +// The ARN of the policy you want to apply +func (o GroupPolicyAttachmentOutput) PolicyArn() pulumi.StringOutput { + return o.ApplyT(func(v *GroupPolicyAttachment) pulumi.StringOutput { return v.PolicyArn }).(pulumi.StringOutput) +} + +type GroupPolicyAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (GroupPolicyAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GroupPolicyAttachment)(nil)).Elem() +} + +func (o GroupPolicyAttachmentArrayOutput) ToGroupPolicyAttachmentArrayOutput() GroupPolicyAttachmentArrayOutput { + return o +} + +func (o GroupPolicyAttachmentArrayOutput) ToGroupPolicyAttachmentArrayOutputWithContext(ctx context.Context) GroupPolicyAttachmentArrayOutput { + return o +} + +func (o GroupPolicyAttachmentArrayOutput) Index(i pulumi.IntInput) GroupPolicyAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GroupPolicyAttachment { + return vs[0].([]*GroupPolicyAttachment)[vs[1].(int)] + }).(GroupPolicyAttachmentOutput) +} + +type GroupPolicyAttachmentMapOutput struct{ *pulumi.OutputState } + +func (GroupPolicyAttachmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GroupPolicyAttachment)(nil)).Elem() +} + +func (o GroupPolicyAttachmentMapOutput) ToGroupPolicyAttachmentMapOutput() GroupPolicyAttachmentMapOutput { + return o +} + +func (o GroupPolicyAttachmentMapOutput) ToGroupPolicyAttachmentMapOutputWithContext(ctx context.Context) GroupPolicyAttachmentMapOutput { + return o +} + +func (o GroupPolicyAttachmentMapOutput) MapIndex(k pulumi.StringInput) GroupPolicyAttachmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GroupPolicyAttachment { + return vs[0].(map[string]*GroupPolicyAttachment)[vs[1].(string)] + }).(GroupPolicyAttachmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GroupPolicyAttachmentInput)(nil)).Elem(), &GroupPolicyAttachment{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupPolicyAttachmentArrayInput)(nil)).Elem(), GroupPolicyAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupPolicyAttachmentMapInput)(nil)).Elem(), GroupPolicyAttachmentMap{}) + pulumi.RegisterOutputType(GroupPolicyAttachmentOutput{}) + pulumi.RegisterOutputType(GroupPolicyAttachmentArrayOutput{}) + pulumi.RegisterOutputType(GroupPolicyAttachmentMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/init.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/init.go new file mode 100644 index 000000000..9c343f628 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/init.go @@ -0,0 +1,226 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:iam/accessKey:AccessKey": + r = &AccessKey{} + case "aws:iam/accountAlias:AccountAlias": + r = &AccountAlias{} + case "aws:iam/accountPasswordPolicy:AccountPasswordPolicy": + r = &AccountPasswordPolicy{} + case "aws:iam/group:Group": + r = &Group{} + case "aws:iam/groupMembership:GroupMembership": + r = &GroupMembership{} + case "aws:iam/groupPolicy:GroupPolicy": + r = &GroupPolicy{} + case "aws:iam/groupPolicyAttachment:GroupPolicyAttachment": + r = &GroupPolicyAttachment{} + case "aws:iam/instanceProfile:InstanceProfile": + r = &InstanceProfile{} + case "aws:iam/openIdConnectProvider:OpenIdConnectProvider": + r = &OpenIdConnectProvider{} + case "aws:iam/policy:Policy": + r = &Policy{} + case "aws:iam/policyAttachment:PolicyAttachment": + r = &PolicyAttachment{} + case "aws:iam/role:Role": + r = &Role{} + case "aws:iam/rolePolicy:RolePolicy": + r = &RolePolicy{} + case "aws:iam/rolePolicyAttachment:RolePolicyAttachment": + r = &RolePolicyAttachment{} + case "aws:iam/samlProvider:SamlProvider": + r = &SamlProvider{} + case "aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences": + r = &SecurityTokenServicePreferences{} + case "aws:iam/serverCertificate:ServerCertificate": + r = &ServerCertificate{} + case "aws:iam/serviceLinkedRole:ServiceLinkedRole": + r = &ServiceLinkedRole{} + case "aws:iam/serviceSpecificCredential:ServiceSpecificCredential": + r = &ServiceSpecificCredential{} + case "aws:iam/signingCertificate:SigningCertificate": + r = &SigningCertificate{} + case "aws:iam/sshKey:SshKey": + r = &SshKey{} + case "aws:iam/user:User": + r = &User{} + case "aws:iam/userGroupMembership:UserGroupMembership": + r = &UserGroupMembership{} + case "aws:iam/userLoginProfile:UserLoginProfile": + r = &UserLoginProfile{} + case "aws:iam/userPolicy:UserPolicy": + r = &UserPolicy{} + case "aws:iam/userPolicyAttachment:UserPolicyAttachment": + r = &UserPolicyAttachment{} + case "aws:iam/virtualMfaDevice:VirtualMfaDevice": + r = &VirtualMfaDevice{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws", + "iam/accessKey", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/accountAlias", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/accountPasswordPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/group", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/groupMembership", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/groupPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/groupPolicyAttachment", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/instanceProfile", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/openIdConnectProvider", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/policy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/policyAttachment", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/role", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/rolePolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/rolePolicyAttachment", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/samlProvider", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/securityTokenServicePreferences", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/serverCertificate", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/serviceLinkedRole", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/serviceSpecificCredential", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/signingCertificate", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/sshKey", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/user", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/userGroupMembership", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/userLoginProfile", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/userPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/userPolicyAttachment", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "iam/virtualMfaDevice", + &module{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/instanceProfile.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/instanceProfile.go new file mode 100644 index 000000000..1c567a8c3 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/instanceProfile.go @@ -0,0 +1,395 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM instance profile. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "ec2.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// role, err := iam.NewRole(ctx, "role", &iam.RoleArgs{ +// Path: pulumi.String("/"), +// AssumeRolePolicy: *pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewInstanceProfile(ctx, "testProfile", &iam.InstanceProfileArgs{ +// Role: role.Name, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import Instance Profiles using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/instanceProfile:InstanceProfile test_profile app-instance-profile-1 +// +// ``` +type InstanceProfile struct { + pulumi.CustomResourceState + + // ARN assigned by AWS to the instance profile. + Arn pulumi.StringOutput `pulumi:"arn"` + // Creation timestamp of the instance profile. + CreateDate pulumi.StringOutput `pulumi:"createDate"` + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercase letters. + Path pulumi.StringPtrOutput `pulumi:"path"` + // Name of the role to add to the profile. + Role pulumi.StringPtrOutput `pulumi:"role"` + // Map of resource tags for the IAM Instance Profile. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // [Unique ID][1] assigned by AWS. + UniqueId pulumi.StringOutput `pulumi:"uniqueId"` +} + +// NewInstanceProfile registers a new resource with the given unique name, arguments, and options. +func NewInstanceProfile(ctx *pulumi.Context, + name string, args *InstanceProfileArgs, opts ...pulumi.ResourceOption) (*InstanceProfile, error) { + if args == nil { + args = &InstanceProfileArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource InstanceProfile + err := ctx.RegisterResource("aws:iam/instanceProfile:InstanceProfile", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInstanceProfile gets an existing InstanceProfile resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetInstanceProfile(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InstanceProfileState, opts ...pulumi.ResourceOption) (*InstanceProfile, error) { + var resource InstanceProfile + err := ctx.ReadResource("aws:iam/instanceProfile:InstanceProfile", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering InstanceProfile resources. +type instanceProfileState struct { + // ARN assigned by AWS to the instance profile. + Arn *string `pulumi:"arn"` + // Creation timestamp of the instance profile. + CreateDate *string `pulumi:"createDate"` + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercase letters. + Path *string `pulumi:"path"` + // Name of the role to add to the profile. + Role interface{} `pulumi:"role"` + // Map of resource tags for the IAM Instance Profile. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // [Unique ID][1] assigned by AWS. + UniqueId *string `pulumi:"uniqueId"` +} + +type InstanceProfileState struct { + // ARN assigned by AWS to the instance profile. + Arn pulumi.StringPtrInput + // Creation timestamp of the instance profile. + CreateDate pulumi.StringPtrInput + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercase letters. + Path pulumi.StringPtrInput + // Name of the role to add to the profile. + Role pulumi.Input + // Map of resource tags for the IAM Instance Profile. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // [Unique ID][1] assigned by AWS. + UniqueId pulumi.StringPtrInput +} + +func (InstanceProfileState) ElementType() reflect.Type { + return reflect.TypeOf((*instanceProfileState)(nil)).Elem() +} + +type instanceProfileArgs struct { + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercase letters. + Path *string `pulumi:"path"` + // Name of the role to add to the profile. + Role interface{} `pulumi:"role"` + // Map of resource tags for the IAM Instance Profile. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a InstanceProfile resource. +type InstanceProfileArgs struct { + // Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercase letters. + Path pulumi.StringPtrInput + // Name of the role to add to the profile. + Role pulumi.Input + // Map of resource tags for the IAM Instance Profile. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (InstanceProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*instanceProfileArgs)(nil)).Elem() +} + +type InstanceProfileInput interface { + pulumi.Input + + ToInstanceProfileOutput() InstanceProfileOutput + ToInstanceProfileOutputWithContext(ctx context.Context) InstanceProfileOutput +} + +func (*InstanceProfile) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceProfile)(nil)).Elem() +} + +func (i *InstanceProfile) ToInstanceProfileOutput() InstanceProfileOutput { + return i.ToInstanceProfileOutputWithContext(context.Background()) +} + +func (i *InstanceProfile) ToInstanceProfileOutputWithContext(ctx context.Context) InstanceProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceProfileOutput) +} + +// InstanceProfileArrayInput is an input type that accepts InstanceProfileArray and InstanceProfileArrayOutput values. +// You can construct a concrete instance of `InstanceProfileArrayInput` via: +// +// InstanceProfileArray{ InstanceProfileArgs{...} } +type InstanceProfileArrayInput interface { + pulumi.Input + + ToInstanceProfileArrayOutput() InstanceProfileArrayOutput + ToInstanceProfileArrayOutputWithContext(context.Context) InstanceProfileArrayOutput +} + +type InstanceProfileArray []InstanceProfileInput + +func (InstanceProfileArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InstanceProfile)(nil)).Elem() +} + +func (i InstanceProfileArray) ToInstanceProfileArrayOutput() InstanceProfileArrayOutput { + return i.ToInstanceProfileArrayOutputWithContext(context.Background()) +} + +func (i InstanceProfileArray) ToInstanceProfileArrayOutputWithContext(ctx context.Context) InstanceProfileArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceProfileArrayOutput) +} + +// InstanceProfileMapInput is an input type that accepts InstanceProfileMap and InstanceProfileMapOutput values. +// You can construct a concrete instance of `InstanceProfileMapInput` via: +// +// InstanceProfileMap{ "key": InstanceProfileArgs{...} } +type InstanceProfileMapInput interface { + pulumi.Input + + ToInstanceProfileMapOutput() InstanceProfileMapOutput + ToInstanceProfileMapOutputWithContext(context.Context) InstanceProfileMapOutput +} + +type InstanceProfileMap map[string]InstanceProfileInput + +func (InstanceProfileMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InstanceProfile)(nil)).Elem() +} + +func (i InstanceProfileMap) ToInstanceProfileMapOutput() InstanceProfileMapOutput { + return i.ToInstanceProfileMapOutputWithContext(context.Background()) +} + +func (i InstanceProfileMap) ToInstanceProfileMapOutputWithContext(ctx context.Context) InstanceProfileMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceProfileMapOutput) +} + +type InstanceProfileOutput struct{ *pulumi.OutputState } + +func (InstanceProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceProfile)(nil)).Elem() +} + +func (o InstanceProfileOutput) ToInstanceProfileOutput() InstanceProfileOutput { + return o +} + +func (o InstanceProfileOutput) ToInstanceProfileOutputWithContext(ctx context.Context) InstanceProfileOutput { + return o +} + +// ARN assigned by AWS to the instance profile. +func (o InstanceProfileOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Creation timestamp of the instance profile. +func (o InstanceProfileOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.CreateDate }).(pulumi.StringOutput) +} + +// Name of the instance profile. If omitted, this provider will assign a random, unique name. Conflicts with `namePrefix`. Can be a string of characters consisting of upper and lowercase alphanumeric characters and these special characters: `_`, `+`, `=`, `,`, `.`, `@`, `-`. Spaces are not allowed. +func (o InstanceProfileOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o InstanceProfileOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// Path to the instance profile. For more information about paths, see [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. Can be a string of characters consisting of either a forward slash (`/`) by itself or a string that must begin and end with forward slashes. Can include any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercase letters. +func (o InstanceProfileOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// Name of the role to add to the profile. +func (o InstanceProfileOutput) Role() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringPtrOutput { return v.Role }).(pulumi.StringPtrOutput) +} + +// Map of resource tags for the IAM Instance Profile. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o InstanceProfileOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o InstanceProfileOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// [Unique ID][1] assigned by AWS. +func (o InstanceProfileOutput) UniqueId() pulumi.StringOutput { + return o.ApplyT(func(v *InstanceProfile) pulumi.StringOutput { return v.UniqueId }).(pulumi.StringOutput) +} + +type InstanceProfileArrayOutput struct{ *pulumi.OutputState } + +func (InstanceProfileArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*InstanceProfile)(nil)).Elem() +} + +func (o InstanceProfileArrayOutput) ToInstanceProfileArrayOutput() InstanceProfileArrayOutput { + return o +} + +func (o InstanceProfileArrayOutput) ToInstanceProfileArrayOutputWithContext(ctx context.Context) InstanceProfileArrayOutput { + return o +} + +func (o InstanceProfileArrayOutput) Index(i pulumi.IntInput) InstanceProfileOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceProfile { + return vs[0].([]*InstanceProfile)[vs[1].(int)] + }).(InstanceProfileOutput) +} + +type InstanceProfileMapOutput struct{ *pulumi.OutputState } + +func (InstanceProfileMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*InstanceProfile)(nil)).Elem() +} + +func (o InstanceProfileMapOutput) ToInstanceProfileMapOutput() InstanceProfileMapOutput { + return o +} + +func (o InstanceProfileMapOutput) ToInstanceProfileMapOutputWithContext(ctx context.Context) InstanceProfileMapOutput { + return o +} + +func (o InstanceProfileMapOutput) MapIndex(k pulumi.StringInput) InstanceProfileOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceProfile { + return vs[0].(map[string]*InstanceProfile)[vs[1].(string)] + }).(InstanceProfileOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*InstanceProfileInput)(nil)).Elem(), &InstanceProfile{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceProfileArrayInput)(nil)).Elem(), InstanceProfileArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceProfileMapInput)(nil)).Elem(), InstanceProfileMap{}) + pulumi.RegisterOutputType(InstanceProfileOutput{}) + pulumi.RegisterOutputType(InstanceProfileArrayOutput{}) + pulumi.RegisterOutputType(InstanceProfileMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/openIdConnectProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/openIdConnectProvider.go new file mode 100644 index 000000000..8bf05fb81 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/openIdConnectProvider.go @@ -0,0 +1,346 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM OpenID Connect provider. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewOpenIdConnectProvider(ctx, "default", &iam.OpenIdConnectProviderArgs{ +// ClientIdLists: pulumi.StringArray{ +// pulumi.String("266362248691-342342xasdasdasda-apps.googleusercontent.com"), +// }, +// ThumbprintLists: pulumi.StringArray{ +// pulumi.String("cf23df2207d99a74fbe169e3eba035e633b65d94"), +// }, +// Url: pulumi.String("https://accounts.google.com"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM OpenID Connect Providers using the `arn`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/openIdConnectProvider:OpenIdConnectProvider default arn:aws:iam::123456789012:oidc-provider/accounts.google.com +// +// ``` +type OpenIdConnectProvider struct { + pulumi.CustomResourceState + + // The ARN assigned by AWS for this provider. + Arn pulumi.StringOutput `pulumi:"arn"` + // A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) + ClientIdLists pulumi.StringArrayOutput `pulumi:"clientIdLists"` + // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). + ThumbprintLists pulumi.StringArrayOutput `pulumi:"thumbprintLists"` + // The URL of the identity provider. Corresponds to the _iss_ claim. + Url pulumi.StringOutput `pulumi:"url"` +} + +// NewOpenIdConnectProvider registers a new resource with the given unique name, arguments, and options. +func NewOpenIdConnectProvider(ctx *pulumi.Context, + name string, args *OpenIdConnectProviderArgs, opts ...pulumi.ResourceOption) (*OpenIdConnectProvider, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ClientIdLists == nil { + return nil, errors.New("invalid value for required argument 'ClientIdLists'") + } + if args.ThumbprintLists == nil { + return nil, errors.New("invalid value for required argument 'ThumbprintLists'") + } + if args.Url == nil { + return nil, errors.New("invalid value for required argument 'Url'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource OpenIdConnectProvider + err := ctx.RegisterResource("aws:iam/openIdConnectProvider:OpenIdConnectProvider", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetOpenIdConnectProvider gets an existing OpenIdConnectProvider resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetOpenIdConnectProvider(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *OpenIdConnectProviderState, opts ...pulumi.ResourceOption) (*OpenIdConnectProvider, error) { + var resource OpenIdConnectProvider + err := ctx.ReadResource("aws:iam/openIdConnectProvider:OpenIdConnectProvider", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering OpenIdConnectProvider resources. +type openIdConnectProviderState struct { + // The ARN assigned by AWS for this provider. + Arn *string `pulumi:"arn"` + // A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) + ClientIdLists []string `pulumi:"clientIdLists"` + // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). + ThumbprintLists []string `pulumi:"thumbprintLists"` + // The URL of the identity provider. Corresponds to the _iss_ claim. + Url *string `pulumi:"url"` +} + +type OpenIdConnectProviderState struct { + // The ARN assigned by AWS for this provider. + Arn pulumi.StringPtrInput + // A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) + ClientIdLists pulumi.StringArrayInput + // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). + ThumbprintLists pulumi.StringArrayInput + // The URL of the identity provider. Corresponds to the _iss_ claim. + Url pulumi.StringPtrInput +} + +func (OpenIdConnectProviderState) ElementType() reflect.Type { + return reflect.TypeOf((*openIdConnectProviderState)(nil)).Elem() +} + +type openIdConnectProviderArgs struct { + // A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) + ClientIdLists []string `pulumi:"clientIdLists"` + // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). + ThumbprintLists []string `pulumi:"thumbprintLists"` + // The URL of the identity provider. Corresponds to the _iss_ claim. + Url string `pulumi:"url"` +} + +// The set of arguments for constructing a OpenIdConnectProvider resource. +type OpenIdConnectProviderArgs struct { + // A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) + ClientIdLists pulumi.StringArrayInput + // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). + ThumbprintLists pulumi.StringArrayInput + // The URL of the identity provider. Corresponds to the _iss_ claim. + Url pulumi.StringInput +} + +func (OpenIdConnectProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*openIdConnectProviderArgs)(nil)).Elem() +} + +type OpenIdConnectProviderInput interface { + pulumi.Input + + ToOpenIdConnectProviderOutput() OpenIdConnectProviderOutput + ToOpenIdConnectProviderOutputWithContext(ctx context.Context) OpenIdConnectProviderOutput +} + +func (*OpenIdConnectProvider) ElementType() reflect.Type { + return reflect.TypeOf((**OpenIdConnectProvider)(nil)).Elem() +} + +func (i *OpenIdConnectProvider) ToOpenIdConnectProviderOutput() OpenIdConnectProviderOutput { + return i.ToOpenIdConnectProviderOutputWithContext(context.Background()) +} + +func (i *OpenIdConnectProvider) ToOpenIdConnectProviderOutputWithContext(ctx context.Context) OpenIdConnectProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpenIdConnectProviderOutput) +} + +// OpenIdConnectProviderArrayInput is an input type that accepts OpenIdConnectProviderArray and OpenIdConnectProviderArrayOutput values. +// You can construct a concrete instance of `OpenIdConnectProviderArrayInput` via: +// +// OpenIdConnectProviderArray{ OpenIdConnectProviderArgs{...} } +type OpenIdConnectProviderArrayInput interface { + pulumi.Input + + ToOpenIdConnectProviderArrayOutput() OpenIdConnectProviderArrayOutput + ToOpenIdConnectProviderArrayOutputWithContext(context.Context) OpenIdConnectProviderArrayOutput +} + +type OpenIdConnectProviderArray []OpenIdConnectProviderInput + +func (OpenIdConnectProviderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OpenIdConnectProvider)(nil)).Elem() +} + +func (i OpenIdConnectProviderArray) ToOpenIdConnectProviderArrayOutput() OpenIdConnectProviderArrayOutput { + return i.ToOpenIdConnectProviderArrayOutputWithContext(context.Background()) +} + +func (i OpenIdConnectProviderArray) ToOpenIdConnectProviderArrayOutputWithContext(ctx context.Context) OpenIdConnectProviderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpenIdConnectProviderArrayOutput) +} + +// OpenIdConnectProviderMapInput is an input type that accepts OpenIdConnectProviderMap and OpenIdConnectProviderMapOutput values. +// You can construct a concrete instance of `OpenIdConnectProviderMapInput` via: +// +// OpenIdConnectProviderMap{ "key": OpenIdConnectProviderArgs{...} } +type OpenIdConnectProviderMapInput interface { + pulumi.Input + + ToOpenIdConnectProviderMapOutput() OpenIdConnectProviderMapOutput + ToOpenIdConnectProviderMapOutputWithContext(context.Context) OpenIdConnectProviderMapOutput +} + +type OpenIdConnectProviderMap map[string]OpenIdConnectProviderInput + +func (OpenIdConnectProviderMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OpenIdConnectProvider)(nil)).Elem() +} + +func (i OpenIdConnectProviderMap) ToOpenIdConnectProviderMapOutput() OpenIdConnectProviderMapOutput { + return i.ToOpenIdConnectProviderMapOutputWithContext(context.Background()) +} + +func (i OpenIdConnectProviderMap) ToOpenIdConnectProviderMapOutputWithContext(ctx context.Context) OpenIdConnectProviderMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(OpenIdConnectProviderMapOutput) +} + +type OpenIdConnectProviderOutput struct{ *pulumi.OutputState } + +func (OpenIdConnectProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OpenIdConnectProvider)(nil)).Elem() +} + +func (o OpenIdConnectProviderOutput) ToOpenIdConnectProviderOutput() OpenIdConnectProviderOutput { + return o +} + +func (o OpenIdConnectProviderOutput) ToOpenIdConnectProviderOutputWithContext(ctx context.Context) OpenIdConnectProviderOutput { + return o +} + +// The ARN assigned by AWS for this provider. +func (o OpenIdConnectProviderOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the clientId parameter on OAuth requests.) +func (o OpenIdConnectProviderOutput) ClientIdLists() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringArrayOutput { return v.ClientIdLists }).(pulumi.StringArrayOutput) +} + +// Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o OpenIdConnectProviderOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o OpenIdConnectProviderOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). +func (o OpenIdConnectProviderOutput) ThumbprintLists() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringArrayOutput { return v.ThumbprintLists }).(pulumi.StringArrayOutput) +} + +// The URL of the identity provider. Corresponds to the _iss_ claim. +func (o OpenIdConnectProviderOutput) Url() pulumi.StringOutput { + return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringOutput { return v.Url }).(pulumi.StringOutput) +} + +type OpenIdConnectProviderArrayOutput struct{ *pulumi.OutputState } + +func (OpenIdConnectProviderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*OpenIdConnectProvider)(nil)).Elem() +} + +func (o OpenIdConnectProviderArrayOutput) ToOpenIdConnectProviderArrayOutput() OpenIdConnectProviderArrayOutput { + return o +} + +func (o OpenIdConnectProviderArrayOutput) ToOpenIdConnectProviderArrayOutputWithContext(ctx context.Context) OpenIdConnectProviderArrayOutput { + return o +} + +func (o OpenIdConnectProviderArrayOutput) Index(i pulumi.IntInput) OpenIdConnectProviderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *OpenIdConnectProvider { + return vs[0].([]*OpenIdConnectProvider)[vs[1].(int)] + }).(OpenIdConnectProviderOutput) +} + +type OpenIdConnectProviderMapOutput struct{ *pulumi.OutputState } + +func (OpenIdConnectProviderMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*OpenIdConnectProvider)(nil)).Elem() +} + +func (o OpenIdConnectProviderMapOutput) ToOpenIdConnectProviderMapOutput() OpenIdConnectProviderMapOutput { + return o +} + +func (o OpenIdConnectProviderMapOutput) ToOpenIdConnectProviderMapOutputWithContext(ctx context.Context) OpenIdConnectProviderMapOutput { + return o +} + +func (o OpenIdConnectProviderMapOutput) MapIndex(k pulumi.StringInput) OpenIdConnectProviderOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *OpenIdConnectProvider { + return vs[0].(map[string]*OpenIdConnectProvider)[vs[1].(string)] + }).(OpenIdConnectProviderOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*OpenIdConnectProviderInput)(nil)).Elem(), &OpenIdConnectProvider{}) + pulumi.RegisterInputType(reflect.TypeOf((*OpenIdConnectProviderArrayInput)(nil)).Elem(), OpenIdConnectProviderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OpenIdConnectProviderMapInput)(nil)).Elem(), OpenIdConnectProviderMap{}) + pulumi.RegisterOutputType(OpenIdConnectProviderOutput{}) + pulumi.RegisterOutputType(OpenIdConnectProviderArrayOutput{}) + pulumi.RegisterOutputType(OpenIdConnectProviderMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policy.go new file mode 100644 index 000000000..f746ea65e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policy.go @@ -0,0 +1,401 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM policy. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "ec2:Describe*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = iam.NewPolicy(ctx, "policy", &iam.PolicyArgs{ +// Path: pulumi.String("/"), +// Description: pulumi.String("My test policy"), +// Policy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Policies using the `arn`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/policy:Policy administrator arn:aws:iam::123456789012:policy/UsersManageOwnCredentials +// +// ``` +type Policy struct { + pulumi.CustomResourceState + + // The ARN assigned by AWS to this policy. + Arn pulumi.StringOutput `pulumi:"arn"` + // Description of the IAM policy. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // Path in which to create the policy. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrOutput `pulumi:"path"` + // The policy document. This is a JSON formatted string. + Policy pulumi.StringOutput `pulumi:"policy"` + // The policy's ID. + PolicyId pulumi.StringOutput `pulumi:"policyId"` + // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` +} + +// NewPolicy registers a new resource with the given unique name, arguments, and options. +func NewPolicy(ctx *pulumi.Context, + name string, args *PolicyArgs, opts ...pulumi.ResourceOption) (*Policy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Policy + err := ctx.RegisterResource("aws:iam/policy:Policy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPolicy gets an existing Policy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PolicyState, opts ...pulumi.ResourceOption) (*Policy, error) { + var resource Policy + err := ctx.ReadResource("aws:iam/policy:Policy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Policy resources. +type policyState struct { + // The ARN assigned by AWS to this policy. + Arn *string `pulumi:"arn"` + // Description of the IAM policy. + Description *string `pulumi:"description"` + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path in which to create the policy. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path *string `pulumi:"path"` + // The policy document. This is a JSON formatted string. + Policy interface{} `pulumi:"policy"` + // The policy's ID. + PolicyId *string `pulumi:"policyId"` + // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` +} + +type PolicyState struct { + // The ARN assigned by AWS to this policy. + Arn pulumi.StringPtrInput + // Description of the IAM policy. + Description pulumi.StringPtrInput + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Path in which to create the policy. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrInput + // The policy document. This is a JSON formatted string. + Policy pulumi.Input + // The policy's ID. + PolicyId pulumi.StringPtrInput + // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput +} + +func (PolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*policyState)(nil)).Elem() +} + +type policyArgs struct { + // Description of the IAM policy. + Description *string `pulumi:"description"` + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path in which to create the policy. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path *string `pulumi:"path"` + // The policy document. This is a JSON formatted string. + Policy interface{} `pulumi:"policy"` + // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a Policy resource. +type PolicyArgs struct { + // Description of the IAM policy. + Description pulumi.StringPtrInput + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Path in which to create the policy. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrInput + // The policy document. This is a JSON formatted string. + Policy pulumi.Input + // Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (PolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*policyArgs)(nil)).Elem() +} + +type PolicyInput interface { + pulumi.Input + + ToPolicyOutput() PolicyOutput + ToPolicyOutputWithContext(ctx context.Context) PolicyOutput +} + +func (*Policy) ElementType() reflect.Type { + return reflect.TypeOf((**Policy)(nil)).Elem() +} + +func (i *Policy) ToPolicyOutput() PolicyOutput { + return i.ToPolicyOutputWithContext(context.Background()) +} + +func (i *Policy) ToPolicyOutputWithContext(ctx context.Context) PolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyOutput) +} + +// PolicyArrayInput is an input type that accepts PolicyArray and PolicyArrayOutput values. +// You can construct a concrete instance of `PolicyArrayInput` via: +// +// PolicyArray{ PolicyArgs{...} } +type PolicyArrayInput interface { + pulumi.Input + + ToPolicyArrayOutput() PolicyArrayOutput + ToPolicyArrayOutputWithContext(context.Context) PolicyArrayOutput +} + +type PolicyArray []PolicyInput + +func (PolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Policy)(nil)).Elem() +} + +func (i PolicyArray) ToPolicyArrayOutput() PolicyArrayOutput { + return i.ToPolicyArrayOutputWithContext(context.Background()) +} + +func (i PolicyArray) ToPolicyArrayOutputWithContext(ctx context.Context) PolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyArrayOutput) +} + +// PolicyMapInput is an input type that accepts PolicyMap and PolicyMapOutput values. +// You can construct a concrete instance of `PolicyMapInput` via: +// +// PolicyMap{ "key": PolicyArgs{...} } +type PolicyMapInput interface { + pulumi.Input + + ToPolicyMapOutput() PolicyMapOutput + ToPolicyMapOutputWithContext(context.Context) PolicyMapOutput +} + +type PolicyMap map[string]PolicyInput + +func (PolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Policy)(nil)).Elem() +} + +func (i PolicyMap) ToPolicyMapOutput() PolicyMapOutput { + return i.ToPolicyMapOutputWithContext(context.Background()) +} + +func (i PolicyMap) ToPolicyMapOutputWithContext(ctx context.Context) PolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyMapOutput) +} + +type PolicyOutput struct{ *pulumi.OutputState } + +func (PolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Policy)(nil)).Elem() +} + +func (o PolicyOutput) ToPolicyOutput() PolicyOutput { + return o +} + +func (o PolicyOutput) ToPolicyOutputWithContext(ctx context.Context) PolicyOutput { + return o +} + +// The ARN assigned by AWS to this policy. +func (o PolicyOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Description of the IAM policy. +func (o PolicyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Policy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the policy. If omitted, the provider will assign a random, unique name. +func (o PolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o PolicyOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// Path in which to create the policy. +// See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o PolicyOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Policy) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// The policy document. This is a JSON formatted string. +func (o PolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +// The policy's ID. +func (o PolicyOutput) PolicyId() pulumi.StringOutput { + return o.ApplyT(func(v *Policy) pulumi.StringOutput { return v.PolicyId }).(pulumi.StringOutput) +} + +// Map of resource tags for the IAM Policy. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o PolicyOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Policy) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o PolicyOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Policy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +type PolicyArrayOutput struct{ *pulumi.OutputState } + +func (PolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Policy)(nil)).Elem() +} + +func (o PolicyArrayOutput) ToPolicyArrayOutput() PolicyArrayOutput { + return o +} + +func (o PolicyArrayOutput) ToPolicyArrayOutputWithContext(ctx context.Context) PolicyArrayOutput { + return o +} + +func (o PolicyArrayOutput) Index(i pulumi.IntInput) PolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Policy { + return vs[0].([]*Policy)[vs[1].(int)] + }).(PolicyOutput) +} + +type PolicyMapOutput struct{ *pulumi.OutputState } + +func (PolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Policy)(nil)).Elem() +} + +func (o PolicyMapOutput) ToPolicyMapOutput() PolicyMapOutput { + return o +} + +func (o PolicyMapOutput) ToPolicyMapOutputWithContext(ctx context.Context) PolicyMapOutput { + return o +} + +func (o PolicyMapOutput) MapIndex(k pulumi.StringInput) PolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Policy { + return vs[0].(map[string]*Policy)[vs[1].(string)] + }).(PolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PolicyInput)(nil)).Elem(), &Policy{}) + pulumi.RegisterInputType(reflect.TypeOf((*PolicyArrayInput)(nil)).Elem(), PolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PolicyMapInput)(nil)).Elem(), PolicyMap{}) + pulumi.RegisterOutputType(PolicyOutput{}) + pulumi.RegisterOutputType(PolicyArrayOutput{}) + pulumi.RegisterOutputType(PolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policyAttachment.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policyAttachment.go new file mode 100644 index 000000000..e60869b42 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/policyAttachment.go @@ -0,0 +1,378 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Attaches a Managed IAM Policy to user(s), role(s), and/or group(s) +// +// !> **WARNING:** The iam.PolicyAttachment resource creates **exclusive** attachments of IAM policies. Across the entire AWS account, all of the users/roles/groups to which a single policy is attached must be declared by a single iam.PolicyAttachment resource. This means that even any users/roles/groups that have the attached policy via any other mechanism (including other resources managed by this provider) will have that attached policy revoked by this resource. Consider `iam.RolePolicyAttachment`, `iam.UserPolicyAttachment`, or `iam.GroupPolicyAttachment` instead. These resources do not enforce exclusive attachment of an IAM policy. +// +// > **NOTE:** The usage of this resource conflicts with the `iam.GroupPolicyAttachment`, `iam.RolePolicyAttachment`, and `iam.UserPolicyAttachment` resources and will permanently show a difference if both are defined. +// +// > **NOTE:** For a given role, this resource is incompatible with using the `iam.Role` resource `managedPolicyArns` argument. When using that argument and this resource, both will attempt to manage the role's managed policy attachments and the provider will show a permanent difference. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// user, err := iam.NewUser(ctx, "user", nil) +// if err != nil { +// return err +// } +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "ec2.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// role, err := iam.NewRole(ctx, "role", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// group, err := iam.NewGroup(ctx, "group", nil) +// if err != nil { +// return err +// } +// policyPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "ec2:Describe*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// policyPolicy, err := iam.NewPolicy(ctx, "policyPolicy", &iam.PolicyArgs{ +// Description: pulumi.String("A test policy"), +// Policy: *pulumi.String(policyPolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewPolicyAttachment(ctx, "test-attach", &iam.PolicyAttachmentArgs{ +// Users: pulumi.Array{ +// user.Name, +// }, +// Roles: pulumi.Array{ +// role.Name, +// }, +// Groups: pulumi.Array{ +// group.Name, +// }, +// PolicyArn: policyPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type PolicyAttachment struct { + pulumi.CustomResourceState + + // The group(s) the policy should be applied to + Groups pulumi.StringArrayOutput `pulumi:"groups"` + // The name of the attachment. This cannot be an empty string. + Name pulumi.StringOutput `pulumi:"name"` + // The ARN of the policy you want to apply + PolicyArn pulumi.StringOutput `pulumi:"policyArn"` + // The role(s) the policy should be applied to + Roles pulumi.StringArrayOutput `pulumi:"roles"` + // The user(s) the policy should be applied to + Users pulumi.StringArrayOutput `pulumi:"users"` +} + +// NewPolicyAttachment registers a new resource with the given unique name, arguments, and options. +func NewPolicyAttachment(ctx *pulumi.Context, + name string, args *PolicyAttachmentArgs, opts ...pulumi.ResourceOption) (*PolicyAttachment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PolicyArn == nil { + return nil, errors.New("invalid value for required argument 'PolicyArn'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource PolicyAttachment + err := ctx.RegisterResource("aws:iam/policyAttachment:PolicyAttachment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPolicyAttachment gets an existing PolicyAttachment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPolicyAttachment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PolicyAttachmentState, opts ...pulumi.ResourceOption) (*PolicyAttachment, error) { + var resource PolicyAttachment + err := ctx.ReadResource("aws:iam/policyAttachment:PolicyAttachment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PolicyAttachment resources. +type policyAttachmentState struct { + // The group(s) the policy should be applied to + Groups []interface{} `pulumi:"groups"` + // The name of the attachment. This cannot be an empty string. + Name *string `pulumi:"name"` + // The ARN of the policy you want to apply + PolicyArn *string `pulumi:"policyArn"` + // The role(s) the policy should be applied to + Roles []interface{} `pulumi:"roles"` + // The user(s) the policy should be applied to + Users []interface{} `pulumi:"users"` +} + +type PolicyAttachmentState struct { + // The group(s) the policy should be applied to + Groups pulumi.ArrayInput + // The name of the attachment. This cannot be an empty string. + Name pulumi.StringPtrInput + // The ARN of the policy you want to apply + PolicyArn pulumi.StringPtrInput + // The role(s) the policy should be applied to + Roles pulumi.ArrayInput + // The user(s) the policy should be applied to + Users pulumi.ArrayInput +} + +func (PolicyAttachmentState) ElementType() reflect.Type { + return reflect.TypeOf((*policyAttachmentState)(nil)).Elem() +} + +type policyAttachmentArgs struct { + // The group(s) the policy should be applied to + Groups []interface{} `pulumi:"groups"` + // The name of the attachment. This cannot be an empty string. + Name *string `pulumi:"name"` + // The ARN of the policy you want to apply + PolicyArn string `pulumi:"policyArn"` + // The role(s) the policy should be applied to + Roles []interface{} `pulumi:"roles"` + // The user(s) the policy should be applied to + Users []interface{} `pulumi:"users"` +} + +// The set of arguments for constructing a PolicyAttachment resource. +type PolicyAttachmentArgs struct { + // The group(s) the policy should be applied to + Groups pulumi.ArrayInput + // The name of the attachment. This cannot be an empty string. + Name pulumi.StringPtrInput + // The ARN of the policy you want to apply + PolicyArn pulumi.StringInput + // The role(s) the policy should be applied to + Roles pulumi.ArrayInput + // The user(s) the policy should be applied to + Users pulumi.ArrayInput +} + +func (PolicyAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*policyAttachmentArgs)(nil)).Elem() +} + +type PolicyAttachmentInput interface { + pulumi.Input + + ToPolicyAttachmentOutput() PolicyAttachmentOutput + ToPolicyAttachmentOutputWithContext(ctx context.Context) PolicyAttachmentOutput +} + +func (*PolicyAttachment) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyAttachment)(nil)).Elem() +} + +func (i *PolicyAttachment) ToPolicyAttachmentOutput() PolicyAttachmentOutput { + return i.ToPolicyAttachmentOutputWithContext(context.Background()) +} + +func (i *PolicyAttachment) ToPolicyAttachmentOutputWithContext(ctx context.Context) PolicyAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyAttachmentOutput) +} + +// PolicyAttachmentArrayInput is an input type that accepts PolicyAttachmentArray and PolicyAttachmentArrayOutput values. +// You can construct a concrete instance of `PolicyAttachmentArrayInput` via: +// +// PolicyAttachmentArray{ PolicyAttachmentArgs{...} } +type PolicyAttachmentArrayInput interface { + pulumi.Input + + ToPolicyAttachmentArrayOutput() PolicyAttachmentArrayOutput + ToPolicyAttachmentArrayOutputWithContext(context.Context) PolicyAttachmentArrayOutput +} + +type PolicyAttachmentArray []PolicyAttachmentInput + +func (PolicyAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PolicyAttachment)(nil)).Elem() +} + +func (i PolicyAttachmentArray) ToPolicyAttachmentArrayOutput() PolicyAttachmentArrayOutput { + return i.ToPolicyAttachmentArrayOutputWithContext(context.Background()) +} + +func (i PolicyAttachmentArray) ToPolicyAttachmentArrayOutputWithContext(ctx context.Context) PolicyAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyAttachmentArrayOutput) +} + +// PolicyAttachmentMapInput is an input type that accepts PolicyAttachmentMap and PolicyAttachmentMapOutput values. +// You can construct a concrete instance of `PolicyAttachmentMapInput` via: +// +// PolicyAttachmentMap{ "key": PolicyAttachmentArgs{...} } +type PolicyAttachmentMapInput interface { + pulumi.Input + + ToPolicyAttachmentMapOutput() PolicyAttachmentMapOutput + ToPolicyAttachmentMapOutputWithContext(context.Context) PolicyAttachmentMapOutput +} + +type PolicyAttachmentMap map[string]PolicyAttachmentInput + +func (PolicyAttachmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PolicyAttachment)(nil)).Elem() +} + +func (i PolicyAttachmentMap) ToPolicyAttachmentMapOutput() PolicyAttachmentMapOutput { + return i.ToPolicyAttachmentMapOutputWithContext(context.Background()) +} + +func (i PolicyAttachmentMap) ToPolicyAttachmentMapOutputWithContext(ctx context.Context) PolicyAttachmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyAttachmentMapOutput) +} + +type PolicyAttachmentOutput struct{ *pulumi.OutputState } + +func (PolicyAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyAttachment)(nil)).Elem() +} + +func (o PolicyAttachmentOutput) ToPolicyAttachmentOutput() PolicyAttachmentOutput { + return o +} + +func (o PolicyAttachmentOutput) ToPolicyAttachmentOutputWithContext(ctx context.Context) PolicyAttachmentOutput { + return o +} + +// The group(s) the policy should be applied to +func (o PolicyAttachmentOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyAttachment) pulumi.StringArrayOutput { return v.Groups }).(pulumi.StringArrayOutput) +} + +// The name of the attachment. This cannot be an empty string. +func (o PolicyAttachmentOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *PolicyAttachment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ARN of the policy you want to apply +func (o PolicyAttachmentOutput) PolicyArn() pulumi.StringOutput { + return o.ApplyT(func(v *PolicyAttachment) pulumi.StringOutput { return v.PolicyArn }).(pulumi.StringOutput) +} + +// The role(s) the policy should be applied to +func (o PolicyAttachmentOutput) Roles() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyAttachment) pulumi.StringArrayOutput { return v.Roles }).(pulumi.StringArrayOutput) +} + +// The user(s) the policy should be applied to +func (o PolicyAttachmentOutput) Users() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyAttachment) pulumi.StringArrayOutput { return v.Users }).(pulumi.StringArrayOutput) +} + +type PolicyAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (PolicyAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PolicyAttachment)(nil)).Elem() +} + +func (o PolicyAttachmentArrayOutput) ToPolicyAttachmentArrayOutput() PolicyAttachmentArrayOutput { + return o +} + +func (o PolicyAttachmentArrayOutput) ToPolicyAttachmentArrayOutputWithContext(ctx context.Context) PolicyAttachmentArrayOutput { + return o +} + +func (o PolicyAttachmentArrayOutput) Index(i pulumi.IntInput) PolicyAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PolicyAttachment { + return vs[0].([]*PolicyAttachment)[vs[1].(int)] + }).(PolicyAttachmentOutput) +} + +type PolicyAttachmentMapOutput struct{ *pulumi.OutputState } + +func (PolicyAttachmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PolicyAttachment)(nil)).Elem() +} + +func (o PolicyAttachmentMapOutput) ToPolicyAttachmentMapOutput() PolicyAttachmentMapOutput { + return o +} + +func (o PolicyAttachmentMapOutput) ToPolicyAttachmentMapOutputWithContext(ctx context.Context) PolicyAttachmentMapOutput { + return o +} + +func (o PolicyAttachmentMapOutput) MapIndex(k pulumi.StringInput) PolicyAttachmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PolicyAttachment { + return vs[0].(map[string]*PolicyAttachment)[vs[1].(string)] + }).(PolicyAttachmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PolicyAttachmentInput)(nil)).Elem(), &PolicyAttachment{}) + pulumi.RegisterInputType(reflect.TypeOf((*PolicyAttachmentArrayInput)(nil)).Elem(), PolicyAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PolicyAttachmentMapInput)(nil)).Elem(), PolicyAttachmentMap{}) + pulumi.RegisterOutputType(PolicyAttachmentOutput{}) + pulumi.RegisterOutputType(PolicyAttachmentArrayOutput{}) + pulumi.RegisterOutputType(PolicyAttachmentMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiEnums.go new file mode 100644 index 000000000..d79f878b5 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiEnums.go @@ -0,0 +1,1292 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +type ManagedPolicy string + +const ( + ManagedPolicyAPIGatewayServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/APIGatewayServiceRolePolicy") + ManagedPolicyAWSAccountActivityAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAccountActivityAccess") + ManagedPolicyAWSAccountManagementFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAccountManagementFullAccess") + ManagedPolicyAWSAccountManagementReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAccountManagementReadOnlyAccess") + ManagedPolicyAWSAccountUsageReportAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAccountUsageReportAccess") + ManagedPolicyAWSAgentlessDiscoveryService = ManagedPolicy("arn:aws:iam::aws:policy/AWSAgentlessDiscoveryService") + ManagedPolicyAWSAppMeshEnvoyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess") + ManagedPolicyAWSAppMeshFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppMeshFullAccess") + ManagedPolicyAWSAppMeshPreviewEnvoyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppMeshPreviewEnvoyAccess") + ManagedPolicyAWSAppMeshPreviewServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSAppMeshPreviewServiceRolePolicy") + ManagedPolicyAWSAppMeshReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppMeshReadOnly") + ManagedPolicyAWSAppMeshServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSAppMeshServiceRolePolicy") + ManagedPolicyAWSAppRunnerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppRunnerFullAccess") + ManagedPolicyAWSAppRunnerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppRunnerReadOnlyAccess") + ManagedPolicyAWSAppRunnerServicePolicyForECRAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSAppRunnerServicePolicyForECRAccess") + ManagedPolicyAWSAppSyncAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppSyncAdministrator") + ManagedPolicyAWSAppSyncInvokeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppSyncInvokeFullAccess") + ManagedPolicyAWSAppSyncPushToCloudWatchLogs = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSAppSyncPushToCloudWatchLogs") + ManagedPolicyAWSAppSyncSchemaAuthor = ManagedPolicy("arn:aws:iam::aws:policy/AWSAppSyncSchemaAuthor") + ManagedPolicyAWSAppSyncServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSAppSyncServiceRolePolicy") + ManagedPolicyAWSApplicationAutoScalingCustomResourcePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoScalingCustomResourcePolicy") + ManagedPolicyAWSApplicationAutoscalingAppStreamFleetPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingAppStreamFleetPolicy") + ManagedPolicyAWSApplicationAutoscalingCassandraTablePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingCassandraTablePolicy") + ManagedPolicyAWSApplicationAutoscalingComprehendEndpointPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingComprehendEndpointPolicy") + ManagedPolicyAWSApplicationAutoscalingDynamoDBTablePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingDynamoDBTablePolicy") + ManagedPolicyAWSApplicationAutoscalingEC2SpotFleetRequestPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingEC2SpotFleetRequestPolicy") + ManagedPolicyAWSApplicationAutoscalingECSServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingECSServicePolicy") + ManagedPolicyAWSApplicationAutoscalingEMRInstanceGroupPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingEMRInstanceGroupPolicy") + ManagedPolicyAWSApplicationAutoscalingElastiCacheRGPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingElastiCacheRGPolicy") + ManagedPolicyAWSApplicationAutoscalingKafkaClusterPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingKafkaClusterPolicy") + ManagedPolicyAWSApplicationAutoscalingLambdaConcurrencyPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingLambdaConcurrencyPolicy") + ManagedPolicyAWSApplicationAutoscalingNeptuneClusterPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingNeptuneClusterPolicy") + ManagedPolicyAWSApplicationAutoscalingRDSClusterPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingRDSClusterPolicy") + ManagedPolicyAWSApplicationAutoscalingSageMakerEndpointPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationAutoscalingSageMakerEndpointPolicy") + ManagedPolicyAWSApplicationDiscoveryAgentAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationDiscoveryAgentAccess") + ManagedPolicyAWSApplicationDiscoveryAgentlessCollectorAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationDiscoveryAgentlessCollectorAccess") + ManagedPolicyAWSApplicationDiscoveryServiceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationDiscoveryServiceFullAccess") + ManagedPolicyAWSApplicationMigrationAgentInstallationPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationAgentInstallationPolicy") + ManagedPolicyAWSApplicationMigrationAgentPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationAgentPolicy") + ManagedPolicy_AWSApplicationMigrationAgentPolicy_v2 = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSApplicationMigrationAgentPolicy_v2") + ManagedPolicyAWSApplicationMigrationConversionServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSApplicationMigrationConversionServerPolicy") + ManagedPolicyAWSApplicationMigrationEC2Access = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationEC2Access") + ManagedPolicyAWSApplicationMigrationFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationFullAccess") + ManagedPolicyAWSApplicationMigrationMGHAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSApplicationMigrationMGHAccess") + ManagedPolicyAWSApplicationMigrationReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationReadOnlyAccess") + ManagedPolicyAWSApplicationMigrationReplicationServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSApplicationMigrationReplicationServerPolicy") + ManagedPolicyAWSApplicationMigrationSSMAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationSSMAccess") + ManagedPolicyAWSApplicationMigrationServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSApplicationMigrationServiceRolePolicy") + ManagedPolicyAWSApplicationMigrationVCenterClientPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSApplicationMigrationVCenterClientPolicy") + ManagedPolicyAWSArtifactAccountSync = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSArtifactAccountSync") + ManagedPolicyAWSAuditManagerAdministratorAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSAuditManagerAdministratorAccess") + ManagedPolicyAWSAuditManagerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSAuditManagerServiceRolePolicy") + ManagedPolicyAWSAutoScalingPlansEC2AutoScalingPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSAutoScalingPlansEC2AutoScalingPolicy") + ManagedPolicyAWSBackupAuditAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupAuditAccess") + ManagedPolicyAWSBackupDataTransferAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupDataTransferAccess") + ManagedPolicyAWSBackupFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupFullAccess") + ManagedPolicyAWSBackupGatewayServiceRolePolicyForVirtualMachineMetadataSync = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSBackupGatewayServiceRolePolicyForVirtualMachineMetadataSync") + ManagedPolicyAWSBackupOperatorAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupOperatorAccess") + ManagedPolicyAWSBackupOrganizationAdminAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupOrganizationAdminAccess") + ManagedPolicyAWSBackupRestoreAccessForSAPHANA = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupRestoreAccessForSAPHANA") + ManagedPolicyAWSBackupServiceLinkedRolePolicyForBackup = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSBackupServiceLinkedRolePolicyForBackup") + ManagedPolicyAWSBackupServiceLinkedRolePolicyForBackupTest = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSBackupServiceLinkedRolePolicyForBackupTest") + ManagedPolicyAWSBackupServiceRolePolicyForBackup = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForBackup") + ManagedPolicyAWSBackupServiceRolePolicyForRestores = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores") + ManagedPolicyAWSBackupServiceRolePolicyForS3Backup = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupServiceRolePolicyForS3Backup") + ManagedPolicyAWSBackupServiceRolePolicyForS3Restore = ManagedPolicy("arn:aws:iam::aws:policy/AWSBackupServiceRolePolicyForS3Restore") + ManagedPolicyAWSBatchFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBatchFullAccess") + ManagedPolicyAWSBatchServiceEventTargetRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSBatchServiceEventTargetRole") + ManagedPolicyAWSBatchServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole") + ManagedPolicyAWSBillingConductorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBillingConductorFullAccess") + ManagedPolicyAWSBillingConductorReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBillingConductorReadOnlyAccess") + ManagedPolicyAWSBillingReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBillingReadOnlyAccess") + ManagedPolicyAWSBudgetsActionsWithAWSResourceControlAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBudgetsActionsWithAWSResourceControlAccess") + ManagedPolicy_AWSBudgetsActions_RolePolicyForResourceAdministrationWithSSM = ManagedPolicy("arn:aws:iam::aws:policy/AWSBudgetsActions_RolePolicyForResourceAdministrationWithSSM") + ManagedPolicyAWSBudgetsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBudgetsReadOnlyAccess") + ManagedPolicyAWSBugBustFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBugBustFullAccess") + ManagedPolicyAWSBugBustPlayerAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSBugBustPlayerAccess") + ManagedPolicyAWSBugBustServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSBugBustServiceRolePolicy") + ManagedPolicyAWSCertificateManagerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerFullAccess") + ManagedPolicyAWSCertificateManagerPrivateCAAuditor = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerPrivateCAAuditor") + ManagedPolicyAWSCertificateManagerPrivateCAFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerPrivateCAFullAccess") + ManagedPolicyAWSCertificateManagerPrivateCAPrivilegedUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerPrivateCAPrivilegedUser") + ManagedPolicyAWSCertificateManagerPrivateCAReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerPrivateCAReadOnly") + ManagedPolicyAWSCertificateManagerPrivateCAUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerPrivateCAUser") + ManagedPolicyAWSCertificateManagerReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSCertificateManagerReadOnly") + ManagedPolicyAWSChatbotServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSChatbotServiceLinkedRolePolicy") + ManagedPolicyAWSCleanRoomsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCleanRoomsFullAccess") + ManagedPolicyAWSCleanRoomsFullAccessNoQuerying = ManagedPolicy("arn:aws:iam::aws:policy/AWSCleanRoomsFullAccessNoQuerying") + ManagedPolicyAWSCleanRoomsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCleanRoomsReadOnlyAccess") + ManagedPolicyAWSCloud9Administrator = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloud9Administrator") + ManagedPolicyAWSCloud9EnvironmentMember = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloud9EnvironmentMember") + ManagedPolicyAWSCloud9SSMInstanceProfile = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile") + ManagedPolicyAWSCloud9ServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSCloud9ServiceRolePolicy") + ManagedPolicyAWSCloud9User = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloud9User") + ManagedPolicyAWSCloudFormationFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudFormationFullAccess") + ManagedPolicyAWSCloudFormationReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess") + ManagedPolicyAWSCloudFrontLogger = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSCloudFrontLogger") + ManagedPolicyAWSCloudHSMFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudHSMFullAccess") + ManagedPolicyAWSCloudHSMReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudHSMReadOnlyAccess") + ManagedPolicyAWSCloudHSMRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCloudHSMRole") + // Deprecated: No longer supported. Use CloudTrail_FullAccess instead. + ManagedPolicyAWSCloudTrailFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudTrailFullAccess") + // Deprecated: No longer supported. Use CloudTrail_ReadOnlyAccess instead. + ManagedPolicyAWSCloudTrailReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudTrailReadOnlyAccess") + // Deprecated: No longer supported. Use CloudWatchLambdaInsightsExecutionRolePolicy instead. + ManagedPolicyAWSCloudWatchLambdaInsightsExecutionRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudWatchLambdaInsightsExecutionRolePolicy") + ManagedPolicyAWSCloudMapDiscoverInstanceAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess") + ManagedPolicyAWSCloudMapFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudMapFullAccess") + ManagedPolicyAWSCloudMapReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudMapReadOnlyAccess") + ManagedPolicyAWSCloudMapRegisterInstanceAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudMapRegisterInstanceAccess") + ManagedPolicyAWSCloudShellFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudShellFullAccess") + ManagedPolicy_CloudTrail_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudTrail_FullAccess") + ManagedPolicy_CloudTrail_ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCloudTrail_ReadOnlyAccess") + ManagedPolicy_AWSCloudWatchAlarms_ActionSSMIncidentsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSCloudWatchAlarms_ActionSSMIncidentsServiceRolePolicy") + ManagedPolicyAWSCodeArtifactAdminAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeArtifactAdminAccess") + ManagedPolicyAWSCodeArtifactReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeArtifactReadOnlyAccess") + ManagedPolicyAWSCodeBuildAdminAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess") + ManagedPolicyAWSCodeBuildDeveloperAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess") + ManagedPolicyAWSCodeBuildReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess") + ManagedPolicyAWSCodeCommitFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeCommitFullAccess") + ManagedPolicyAWSCodeCommitPowerUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeCommitPowerUser") + ManagedPolicyAWSCodeCommitReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeCommitReadOnly") + ManagedPolicyAWSCodeDeployDeployerAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeDeployDeployerAccess") + ManagedPolicyAWSCodeDeployFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeDeployFullAccess") + ManagedPolicyAWSCodeDeployReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeDeployReadOnlyAccess") + ManagedPolicyAWSCodeDeployRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole") + ManagedPolicyAWSCodeDeployRoleForCloudFormation = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForCloudFormation") + ManagedPolicyAWSCodeDeployRoleForECS = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS") + ManagedPolicyAWSCodeDeployRoleForECSLimited = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeDeployRoleForECSLimited") + ManagedPolicyAWSCodeDeployRoleForLambda = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda") + ManagedPolicyAWSCodeDeployRoleForLambdaLimited = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambdaLimited") + ManagedPolicyAWSCodePipelineApproverAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodePipelineApproverAccess") + ManagedPolicyAWSCodePipelineCustomActionAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodePipelineCustomActionAccess") + // Deprecated: No longer supported. Use CodePipeline_FullAccess instead. + ManagedPolicyAWSCodePipelineFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodePipelineFullAccess") + // Deprecated: No longer supported. Use CodePipeline_ReadOnlyAccess instead. + ManagedPolicyAWSCodePipelineReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodePipelineReadOnlyAccess") + ManagedPolicy_CodePipeline_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodePipeline_FullAccess") + ManagedPolicy_CodePipeline_ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodePipeline_ReadOnlyAccess") + ManagedPolicyAWSCodeStarFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSCodeStarFullAccess") + ManagedPolicyAWSCodeStarNotificationsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSCodeStarNotificationsServiceRolePolicy") + ManagedPolicyAWSCodeStarServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCodeStarServiceRole") + ManagedPolicy_AWS_ConfigRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWS_ConfigRole") + // Deprecated: This has been deprecated in favour of `AWS_ConfigRole` + ManagedPolicyAWSConfigRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSConfigRole") + ManagedPolicyAWSCompromisedKeyQuarantine = ManagedPolicy("arn:aws:iam::aws:policy/AWSCompromisedKeyQuarantine") + ManagedPolicyAWSCompromisedKeyQuarantineV2 = ManagedPolicy("arn:aws:iam::aws:policy/AWSCompromisedKeyQuarantineV2") + ManagedPolicyAWSConfigMultiAccountSetupPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSConfigMultiAccountSetupPolicy") + ManagedPolicyAWSConfigRemediationServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSConfigRemediationServiceRolePolicy") + ManagedPolicyAWSConfigRoleForOrganizations = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSConfigRoleForOrganizations") + ManagedPolicyAWSConfigRulesExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSConfigRulesExecutionRole") + ManagedPolicyAWSConfigServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSConfigServiceRolePolicy") + ManagedPolicyAWSConfigUserAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSConfigUserAccess") + ManagedPolicyAWSConnector = ManagedPolicy("arn:aws:iam::aws:policy/AWSConnector") + ManagedPolicyAWSControlTowerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicy") + ManagedPolicyAWSCostAndUsageReportAutomationPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSCostAndUsageReportAutomationPolicy") + ManagedPolicyAWSDataExchangeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataExchangeFullAccess") + ManagedPolicyAWSDataExchangeProviderFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataExchangeProviderFullAccess") + ManagedPolicyAWSDataExchangeReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataExchangeReadOnly") + ManagedPolicyAWSDataExchangeSubscriberFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataExchangeSubscriberFullAccess") + ManagedPolicyAWSDataLifecycleManagerServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSDataLifecycleManagerServiceRole") + ManagedPolicyAWSDataLifecycleManagerServiceRoleForAMIManagement = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSDataLifecycleManagerServiceRoleForAMIManagement") + ManagedPolicyAWSDataPipelineRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSDataPipelineRole") + ManagedPolicy_AWSDataPipeline_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataPipeline_FullAccess") + ManagedPolicy_AWSDataPipeline_PowerUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataPipeline_PowerUser") + ManagedPolicyAWSDataSyncFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataSyncFullAccess") + ManagedPolicyAWSDataSyncReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDataSyncReadOnlyAccess") + ManagedPolicyAWSDeepLensLambdaFunctionAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeepLensLambdaFunctionAccessPolicy") + ManagedPolicyAWSDeepLensServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSDeepLensServiceRolePolicy") + ManagedPolicyAWSDeepRacerAccountAdminAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeepRacerAccountAdminAccess") + ManagedPolicyAWSDeepRacerCloudFormationAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeepRacerCloudFormationAccessPolicy") + ManagedPolicyAWSDeepRacerDefaultMultiUserAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeepRacerDefaultMultiUserAccess") + ManagedPolicyAWSDeepRacerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeepRacerFullAccess") + ManagedPolicyAWSDeepRacerRoboMakerAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeepRacerRoboMakerAccessPolicy") + ManagedPolicyAWSDeepRacerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSDeepRacerServiceRolePolicy") + ManagedPolicyAWSDenyAll = ManagedPolicy("arn:aws:iam::aws:policy/AWSDenyAll") + ManagedPolicyAWSDeviceFarmFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDeviceFarmFullAccess") + ManagedPolicyAWSDeviceFarmServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSDeviceFarmServiceRolePolicy") + ManagedPolicyAWSDeviceFarmTestGridServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSDeviceFarmTestGridServiceRolePolicy") + ManagedPolicyAWSDirectConnectFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDirectConnectFullAccess") + ManagedPolicyAWSDirectConnectReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDirectConnectReadOnlyAccess") + ManagedPolicyAWSDirectConnectServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSDirectConnectServiceRolePolicy") + ManagedPolicyAWSDirectoryServiceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDirectoryServiceFullAccess") + ManagedPolicyAWSDirectoryServiceReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSDirectoryServiceReadOnlyAccess") + ManagedPolicyAWSDiscoveryContinuousExportFirehosePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSDiscoveryContinuousExportFirehosePolicy") + ManagedPolicyAWSEC2CapacityReservationFleetRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSEC2CapacityReservationFleetRolePolicy") + ManagedPolicyAWSEC2FleetServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSEC2FleetServiceRolePolicy") + ManagedPolicyAWSEC2SpotFleetServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSEC2SpotFleetServiceRolePolicy") + ManagedPolicyAWSEC2SpotServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSEC2SpotServiceRolePolicy") + ManagedPolicy_AWSECRPullThroughCache_ServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSECRPullThroughCache_ServiceRolePolicy") + ManagedPolicyAWSElasticBeanstalkCustomPlatformforEC2Role = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkCustomPlatformforEC2Role") + ManagedPolicyAWSElasticBeanstalkEnhancedHealth = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth") + // Deprecated: This policy is deprecated. Please use the AWS managed policy AdministratorAccess-AWSElasticBeanstalk instead. + ManagedPolicyAWSElasticBeanstalkFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkFullAccess") + ManagedPolicyAWSElasticBeanstalkMaintenance = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSElasticBeanstalkMaintenance") + ManagedPolicyAWSElasticBeanstalkManagedUpdatesCustomerRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy") + ManagedPolicyAWSElasticBeanstalkManagedUpdatesServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSElasticBeanstalkManagedUpdatesServiceRolePolicy") + ManagedPolicyAWSElasticBeanstalkMulticontainerDocker = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker") + // Deprecated: This policy is deprecated. Please use the AWS managed policy AWSElasticBeanstalkReadOnly instead. + ManagedPolicyAWSElasticBeanstalkReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkReadOnlyAccess") + ManagedPolicyAWSElasticBeanstalkReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkReadOnly") + ManagedPolicyAWSElasticBeanstalkRoleCWL = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCWL") + ManagedPolicyAWSElasticBeanstalkRoleCore = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore") + ManagedPolicyAWSElasticBeanstalkRoleECS = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleECS") + ManagedPolicyAWSElasticBeanstalkRoleRDS = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleRDS") + ManagedPolicyAWSElasticBeanstalkRoleSNS = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleSNS") + ManagedPolicyAWSElasticBeanstalkRoleWorkerTier = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleWorkerTier") + ManagedPolicyAWSElasticBeanstalkService = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkService") + ManagedPolicyAWSElasticBeanstalkServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSElasticBeanstalkServiceRolePolicy") + ManagedPolicyAWSElasticBeanstalkWebTier = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier") + // Deprecated: This has been deprecated in favour of `AWSElasticBeanstalkWorkerTier` + ManagedPolicyAWSElasticBeanstakWorkerTier = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier") + ManagedPolicyAWSElasticBeanstalkWorkerTier = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier") + ManagedPolicyAWSElasticDisasterRecoveryAgentInstallationPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticDisasterRecoveryAgentInstallationPolicy") + ManagedPolicyAWSElasticDisasterRecoveryAgentPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryAgentPolicy") + ManagedPolicyAWSElasticDisasterRecoveryConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticDisasterRecoveryConsoleFullAccess") + ManagedPolicyAWSElasticDisasterRecoveryConversionServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryConversionServerPolicy") + ManagedPolicyAWSElasticDisasterRecoveryEc2InstancePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryEc2InstancePolicy") + ManagedPolicyAWSElasticDisasterRecoveryFailbackInstallationPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticDisasterRecoveryFailbackInstallationPolicy") + ManagedPolicyAWSElasticDisasterRecoveryFailbackPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryFailbackPolicy") + ManagedPolicyAWSElasticDisasterRecoveryReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElasticDisasterRecoveryReadOnlyAccess") + ManagedPolicyAWSElasticDisasterRecoveryRecoveryInstancePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryRecoveryInstancePolicy") + ManagedPolicyAWSElasticDisasterRecoveryReplicationServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryReplicationServerPolicy") + ManagedPolicyAWSElasticDisasterRecoveryServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSElasticDisasterRecoveryServiceRolePolicy") + ManagedPolicyAWSElasticDisasterRecoveryStagingAccountPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryStagingAccountPolicy") + ManagedPolicy_AWSElasticDisasterRecoveryStagingAccountPolicy_v2 = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSElasticDisasterRecoveryStagingAccountPolicy_v2") + ManagedPolicyAWSElasticLoadBalancingClassicServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSElasticLoadBalancingClassicServiceRolePolicy") + ManagedPolicyAWSElasticLoadBalancingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSElasticLoadBalancingServiceRolePolicy") + ManagedPolicyAWSElementalMediaConvertFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaConvertFullAccess") + ManagedPolicyAWSElementalMediaConvertReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaConvertReadOnly") + ManagedPolicyAWSElementalMediaLiveFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaLiveFullAccess") + ManagedPolicyAWSElementalMediaLiveReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaLiveReadOnly") + ManagedPolicyAWSElementalMediaPackageFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaPackageFullAccess") + ManagedPolicyAWSElementalMediaPackageReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaPackageReadOnly") + ManagedPolicyAWSElementalMediaStoreFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaStoreFullAccess") + ManagedPolicyAWSElementalMediaStoreReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaStoreReadOnly") + ManagedPolicyAWSElementalMediaTailorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaTailorFullAccess") + ManagedPolicyAWSElementalMediaTailorReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSElementalMediaTailorReadOnly") + ManagedPolicyAWSEnhancedClassicNetworkingMangementPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSEnhancedClassicNetworkingMangementPolicy") + ManagedPolicyAWSFMAdminFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSFMAdminFullAccess") + ManagedPolicyAWSFMAdminReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSFMAdminReadOnlyAccess") + ManagedPolicyAWSFMMemberReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSFMMemberReadOnlyAccess") + ManagedPolicyAWSFaultInjectionSimulatorEC2Access = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEC2Access") + ManagedPolicyAWSFaultInjectionSimulatorECSAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorECSAccess") + ManagedPolicyAWSFaultInjectionSimulatorEKSAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEKSAccess") + ManagedPolicyAWSFaultInjectionSimulatorNetworkAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess") + ManagedPolicyAWSFaultInjectionSimulatorRDSAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorRDSAccess") + ManagedPolicyAWSFaultInjectionSimulatorSSMAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorSSMAccess") + ManagedPolicyAWSForWordPressPluginPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSForWordPressPluginPolicy") + ManagedPolicyAWSGlobalAcceleratorSLRPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSGlobalAcceleratorSLRPolicy") + ManagedPolicyAWSGlueConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess") + ManagedPolicyAWSGlueConsoleSageMakerNotebookFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGlueConsoleSageMakerNotebookFullAccess") + ManagedPolicyAWSGlueDataBrewServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSGlueDataBrewServiceRole") + ManagedPolicyAWSGlueSchemaRegistryFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGlueSchemaRegistryFullAccess") + ManagedPolicyAWSGlueSchemaRegistryReadonlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGlueSchemaRegistryReadonlyAccess") + ManagedPolicyAWSGlueServiceNotebookRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSGlueServiceNotebookRole") + ManagedPolicyAWSGlueServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole") + ManagedPolicyAWSGrafanaAccountAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/AWSGrafanaAccountAdministrator") + ManagedPolicyAWSGrafanaConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGrafanaConsoleReadOnlyAccess") + ManagedPolicyAWSGrafanaWorkspacePermissionManagement = ManagedPolicy("arn:aws:iam::aws:policy/AWSGrafanaWorkspacePermissionManagement") + ManagedPolicyAWSGreengrassFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGreengrassFullAccess") + // Deprecated: Please use AWSGreengrassFullAccess instead + ManagedPolicyAWSGreengrassFullccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGreengrassFullAccess") + ManagedPolicyAWSGreengrassReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSGreengrassReadOnlyAccess") + ManagedPolicyAWSGreengrassResourceAccessRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy") + ManagedPolicyAWSHealthFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSHealthFullAccess") + ManagedPolicy_AWSHealth_EventProcessorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSHealth_EventProcessorServiceRolePolicy") + ManagedPolicyAWSIPAMServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIPAMServiceRolePolicy") + ManagedPolicyAWSIQContractServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIQContractServiceRolePolicy") + ManagedPolicyAWSIQFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIQFullAccess") + ManagedPolicyAWSIQPermissionServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIQPermissionServiceRolePolicy") + ManagedPolicyAWSIdentitySyncFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIdentitySyncFullAccess") + ManagedPolicyAWSIdentitySyncReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIdentitySyncReadOnlyAccess") + ManagedPolicyAWSImageBuilderFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSImageBuilderFullAccess") + ManagedPolicyAWSImageBuilderReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSImageBuilderReadOnlyAccess") + ManagedPolicyAWSImportExportFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSImportExportFullAccess") + ManagedPolicyAWSImportExportReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSImportExportReadOnlyAccess") + ManagedPolicyAWSIncidentManagerResolverAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIncidentManagerResolverAccess") + ManagedPolicyAWSIncidentManagerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIncidentManagerServiceRolePolicy") + ManagedPolicyAWSIoT1ClickFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoT1ClickFullAccess") + ManagedPolicyAWSIoT1ClickReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoT1ClickReadOnlyAccess") + ManagedPolicyAWSIoTAnalyticsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTAnalyticsFullAccess") + ManagedPolicyAWSIoTAnalyticsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTAnalyticsReadOnlyAccess") + ManagedPolicyAWSIoTConfigAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTConfigAccess") + ManagedPolicyAWSIoTConfigReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTConfigReadOnlyAccess") + ManagedPolicyAWSIoTDataAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTDataAccess") + ManagedPolicyAWSIoTDeviceDefenderAddThingsToThingGroupMitigationAction = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderAddThingsToThingGroupMitigationAction") + ManagedPolicyAWSIoTDeviceDefenderAudit = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderAudit") + ManagedPolicyAWSIoTDeviceDefenderEnableIoTLoggingMitigationAction = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderEnableIoTLoggingMitigationAction") + ManagedPolicyAWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction") + ManagedPolicyAWSIoTDeviceDefenderReplaceDefaultPolicyMitigationAction = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderReplaceDefaultPolicyMitigationAction") + ManagedPolicyAWSIoTDeviceDefenderUpdateCACertMitigationAction = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderUpdateCACertMitigationAction") + ManagedPolicyAWSIoTDeviceDefenderUpdateDeviceCertMitigationAction = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTDeviceDefenderUpdateDeviceCertMitigationAction") + ManagedPolicyAWSIoTDeviceTesterForFreeRTOSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTDeviceTesterForFreeRTOSFullAccess") + ManagedPolicyAWSIoTDeviceTesterForGreengrassFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTDeviceTesterForGreengrassFullAccess") + ManagedPolicyAWSIoTEventsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTEventsFullAccess") + ManagedPolicyAWSIoTEventsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTEventsReadOnlyAccess") + ManagedPolicyAWSIoTFleetHubFederationAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTFleetHubFederationAccess") + ManagedPolicyAWSIoTFleetwiseServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIoTFleetwiseServiceRolePolicy") + ManagedPolicyAWSIoTFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTFullAccess") + ManagedPolicyAWSIoTLogging = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTLogging") + ManagedPolicyAWSIoTOTAUpdate = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTOTAUpdate") + ManagedPolicyAWSIoTRuleActions = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTRuleActions") + ManagedPolicyAWSIoTSiteWiseConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTSiteWiseConsoleFullAccess") + ManagedPolicyAWSIoTSiteWiseFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTSiteWiseFullAccess") + ManagedPolicyAWSIoTSiteWiseMonitorPortalAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTSiteWiseMonitorPortalAccess") + ManagedPolicyAWSIoTSiteWiseMonitorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIoTSiteWiseMonitorServiceRolePolicy") + ManagedPolicyAWSIoTSiteWiseReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTSiteWiseReadOnlyAccess") + ManagedPolicyAWSIoTThingsRegistration = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration") + ManagedPolicyAWSIoTWirelessDataAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTWirelessDataAccess") + ManagedPolicyAWSIoTWirelessFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTWirelessFullAccess") + ManagedPolicyAWSIoTWirelessFullPublishAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTWirelessFullPublishAccess") + ManagedPolicyAWSIoTWirelessGatewayCertManager = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTWirelessGatewayCertManager") + ManagedPolicyAWSIoTWirelessLogging = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTWirelessLogging") + ManagedPolicyAWSIoTWirelessReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIoTWirelessReadOnlyAccess") + ManagedPolicyAWSIotRoboRunnerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSIotRoboRunnerFullAccess") + ManagedPolicyAWSIotRoboRunnerReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSIotRoboRunnerReadOnly") + ManagedPolicyAWSIotRoboRunnerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSIotRoboRunnerServiceRolePolicy") + ManagedPolicyAWSKeyManagementServiceCustomKeyStoresServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSKeyManagementServiceCustomKeyStoresServiceRolePolicy") + ManagedPolicyAWSKeyManagementServiceMultiRegionKeysServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSKeyManagementServiceMultiRegionKeysServiceRolePolicy") + ManagedPolicyAWSKeyManagementServicePowerUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSKeyManagementServicePowerUser") + ManagedPolicyAWSLakeFormationCrossAccountManager = ManagedPolicy("arn:aws:iam::aws:policy/AWSLakeFormationCrossAccountManager") + ManagedPolicyAWSLakeFormationDataAdmin = ManagedPolicy("arn:aws:iam::aws:policy/AWSLakeFormationDataAdmin") + ManagedPolicyAWSLambdaBasicExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole") + ManagedPolicyAWSLambdaDynamoDBExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole") + ManagedPolicyAWSLambdaENIManagementAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaENIManagementAccess") + ManagedPolicyAWSLambdaExecute = ManagedPolicy("arn:aws:iam::aws:policy/AWSLambdaExecute") + // Deprecated: This has been deprecated in favour of `LambdaFullAccess` + ManagedPolicyAWSLambdaFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSLambdaFullAccess") + ManagedPolicyLambdaFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSLambda_FullAccess") + ManagedPolicyAWSLambdaInvocationDynamoDB = ManagedPolicy("arn:aws:iam::aws:policy/AWSLambdaInvocation-DynamoDB") + ManagedPolicyAWSLambdaKinesisExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaKinesisExecutionRole") + // Deprecated: This has been deprecated in favour of `LambdaReadOnlyAccess` + ManagedPolicyAWSLambdaReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSLambdaReadOnlyAccess") + ManagedPolicyLambdaReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSLambda_ReadOnlyAccess") + ManagedPolicyAWSLambdaMSKExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaMSKExecutionRole") + ManagedPolicyAWSLambdaReplicator = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSLambdaReplicator") + ManagedPolicyAWSLambdaRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaRole") + ManagedPolicyAWSLambdaSQSQueueExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaSQSQueueExecutionRole") + ManagedPolicyAWSLambdaVPCAccessExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole") + ManagedPolicyAWSLicenseManagerConsumptionPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSLicenseManagerConsumptionPolicy") + ManagedPolicyAWSLicenseManagerLinuxSubscriptionsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSLicenseManagerLinuxSubscriptionsServiceRolePolicy") + ManagedPolicyAWSLicenseManagerMasterAccountRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSLicenseManagerMasterAccountRolePolicy") + ManagedPolicyAWSLicenseManagerMemberAccountRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSLicenseManagerMemberAccountRolePolicy") + ManagedPolicyAWSLicenseManagerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSLicenseManagerServiceRolePolicy") + ManagedPolicyAWSLicenseManagerUserSubscriptionsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSLicenseManagerUserSubscriptionsServiceRolePolicy") + ManagedPolicyAWSM2ServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSM2ServicePolicy") + ManagedPolicyAWSManagedServicesDeploymentToolkitPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSManagedServicesDeploymentToolkitPolicy") + ManagedPolicy_AWSManagedServices_DetectiveControlsConfig_ServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSManagedServices_DetectiveControlsConfig_ServiceRolePolicy") + ManagedPolicy_AWSManagedServices_EventsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSManagedServices_EventsServiceRolePolicy") + ManagedPolicyAWSMarketplaceAmiIngestion = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceAmiIngestion") + ManagedPolicyAWSMarketplaceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceFullAccess") + ManagedPolicyAWSMarketplaceGetEntitlements = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceGetEntitlements") + ManagedPolicyAWSMarketplaceImageBuildFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceImageBuildFullAccess") + ManagedPolicyAWSMarketplaceLicenseManagementServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSMarketplaceLicenseManagementServiceRolePolicy") + ManagedPolicyAWSMarketplaceManageSubscriptions = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceManageSubscriptions") + ManagedPolicyAWSMarketplaceMeteringFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceMeteringFullAccess") + ManagedPolicyAWSMarketplaceMeteringRegisterUsage = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceMeteringRegisterUsage") + ManagedPolicyAWSMarketplaceProcurementSystemAdminFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceProcurementSystemAdminFullAccess") + ManagedPolicyAWSMarketplacePurchaseOrdersServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSMarketplacePurchaseOrdersServiceRolePolicy") + ManagedPolicyAWSMarketplaceReadonly = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceRead-only") + ManagedPolicyAWSMarketplaceSellerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceSellerFullAccess") + ManagedPolicyAWSMarketplaceSellerProductsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceSellerProductsFullAccess") + ManagedPolicyAWSMarketplaceSellerProductsReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSMarketplaceSellerProductsReadOnly") + ManagedPolicyAWSMediaTailorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSMediaTailorServiceRolePolicy") + ManagedPolicyAWSMigrationHubDMSAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSMigrationHubDMSAccess") + ManagedPolicyAWSMigrationHubDiscoveryAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSMigrationHubDiscoveryAccess") + ManagedPolicyAWSMigrationHubFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubFullAccess") + ManagedPolicyAWSMigrationHubOrchestratorConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubOrchestratorConsoleFullAccess") + ManagedPolicyAWSMigrationHubOrchestratorInstanceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubOrchestratorInstanceRolePolicy") + ManagedPolicyAWSMigrationHubOrchestratorPlugin = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubOrchestratorPlugin") + ManagedPolicyAWSMigrationHubOrchestratorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSMigrationHubOrchestratorServiceRolePolicy") + ManagedPolicyAWSMigrationHubRefactorSpacesFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubRefactorSpacesFullAccess") + ManagedPolicyAWSMigrationHubRefactorSpacesServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSMigrationHubRefactorSpacesServiceRolePolicy") + ManagedPolicyAWSMigrationHubSMSAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSMigrationHubSMSAccess") + ManagedPolicyAWSMigrationHubStrategyCollector = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubStrategyCollector") + ManagedPolicyAWSMigrationHubStrategyConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMigrationHubStrategyConsoleFullAccess") + ManagedPolicyAWSMigrationHubStrategyServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSMigrationHubStrategyServiceRolePolicy") + ManagedPolicy_AWSMobileHub_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSMobileHub_FullAccess") + ManagedPolicy_AWSMobileHub_ReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSMobileHub_ReadOnly") + // Deprecated: This policy is deprecated and will be removed in a future release. Please use AWSMobileHub_FullAccess or AWSMobileHub_ReadOnly instead. + ManagedPolicy_AWSMobileHub_ServiceUseOnly = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSMobileHub_ServiceUseOnly") + ManagedPolicyAWSNetworkFirewallServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSNetworkFirewallServiceRolePolicy") + ManagedPolicyAWSNetworkManagerCloudWANServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSNetworkManagerCloudWANServiceRolePolicy") + ManagedPolicyAWSNetworkManagerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSNetworkManagerFullAccess") + ManagedPolicyAWSNetworkManagerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSNetworkManagerReadOnlyAccess") + ManagedPolicyAWSNetworkManagerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSNetworkManagerServiceRolePolicy") + ManagedPolicyAWSOpsWorksCMInstanceProfileRole = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksCMInstanceProfileRole") + ManagedPolicyAWSOpsWorksCMServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSOpsWorksCMServiceRole") + ManagedPolicyAWSOpsWorksCloudWatchLogs = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksCloudWatchLogs") + // Deprecated: This policy is deprecated and will be removed in a future release. Please use OpsWorks_FullAccess instead. + ManagedPolicyAWSOpsWorksFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksFullAccess") + ManagedPolicyAWSOpsWorksInstanceRegistration = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksInstanceRegistration") + // Deprecated: This policy is deprecated and will be removed in a future release. Please use AWSOpsWorksRegisterCLI_EC2 or AWSOpsWorksRegisterCLI_OnPremises instead. + ManagedPolicyAWSOpsWorksRegisterCLI = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksRegisterCLI") + // Deprecated: This policy is deprecated and will be removed in a future release. Please use AWSOpsWorksCMServiceRole instead. + ManagedPolicyAWSOpsWorksRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSOpsWorksRole") + // Deprecated: This policy is deprecated and will be removed in a future release. Please use AWSQuickSightDescribeRDS instead. + ManagedPolicyAWSQuickSightDescribeRD = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightDescribeRDS") + ManagedPolicy_AWSOpsWorksRegisterCLI_EC2 = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksRegisterCLI_EC2") + ManagedPolicy_AWSOpsWorksRegisterCLI_OnPremises = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorksRegisterCLI_OnPremises") + ManagedPolicy_OpsWorks_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSOpsWorks_FullAccess") + ManagedPolicyAWSOrganizationsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSOrganizationsFullAccess") + ManagedPolicyAWSOrganizationsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSOrganizationsReadOnlyAccess") + ManagedPolicyAWSOrganizationsServiceTrustPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSOrganizationsServiceTrustPolicy") + ManagedPolicyAWSOutpostsAuthorizeServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSOutpostsAuthorizeServerPolicy") + ManagedPolicyAWSOutpostsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSOutpostsServiceRolePolicy") + ManagedPolicyAWSPanoramaApplianceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSPanoramaApplianceRolePolicy") + ManagedPolicyAWSPanoramaApplianceServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSPanoramaApplianceServiceRolePolicy") + ManagedPolicyAWSPanoramaFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSPanoramaFullAccess") + ManagedPolicyAWSPanoramaGreengrassGroupRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSPanoramaGreengrassGroupRolePolicy") + ManagedPolicyAWSPanoramaSageMakerRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSPanoramaSageMakerRolePolicy") + ManagedPolicyAWSPanoramaServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSPanoramaServiceLinkedRolePolicy") + ManagedPolicyAWSPanoramaServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSPanoramaServiceRolePolicy") + ManagedPolicyAWSPriceListServiceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSPriceListServiceFullAccess") + ManagedPolicyAWSPrivateCAAuditor = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateCAAuditor") + ManagedPolicyAWSPrivateCAFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateCAFullAccess") + ManagedPolicyAWSPrivateCAPrivilegedUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateCAPrivilegedUser") + ManagedPolicyAWSPrivateCAReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateCAReadOnly") + ManagedPolicyAWSPrivateCAUser = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateCAUser") + ManagedPolicyAWSPrivateMarketplaceAdminFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateMarketplaceAdminFullAccess") + ManagedPolicyAWSPrivateMarketplaceRequests = ManagedPolicy("arn:aws:iam::aws:policy/AWSPrivateMarketplaceRequests") + ManagedPolicyAWSPrivateNetworksServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSPrivateNetworksServiceRolePolicy") + ManagedPolicyAWSProtonCodeBuildProvisioningBasicAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSProtonCodeBuildProvisioningBasicAccess") + ManagedPolicyAWSProtonCodeBuildProvisioningServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSProtonCodeBuildProvisioningServiceRolePolicy") + ManagedPolicyAWSProtonDeveloperAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSProtonDeveloperAccess") + ManagedPolicyAWSProtonFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSProtonFullAccess") + ManagedPolicyAWSProtonReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSProtonReadOnlyAccess") + ManagedPolicyAWSProtonSyncServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSProtonSyncServiceRolePolicy") + ManagedPolicyAWSPurchaseOrdersServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSPurchaseOrdersServiceRolePolicy") + ManagedPolicyAWSQuickSightDescribeRDS = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightDescribeRDS") + ManagedPolicyAWSQuickSightDescribeRedshift = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightDescribeRedshift") + ManagedPolicyAWSQuickSightElasticsearchPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightElasticsearchPolicy") + ManagedPolicyAWSQuickSightIoTAnalyticsAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSQuickSightIoTAnalyticsAccess") + ManagedPolicyAWSQuickSightListIAM = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightListIAM") + ManagedPolicyAWSQuickSightSageMakerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightSageMakerPolicy") + ManagedPolicyAWSQuickSightTimestreamPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuickSightTimestreamPolicy") + ManagedPolicyAWSQuicksightAthenaAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuicksightAthenaAccess") + ManagedPolicyAWSQuicksightOpenSearchPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSQuicksightOpenSearchPolicy") + ManagedPolicyAWSReachabilityAnalyzerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSReachabilityAnalyzerServiceRolePolicy") + ManagedPolicyAWSRefactoringToolkitFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSRefactoringToolkitFullAccess") + ManagedPolicyAWSRefactoringToolkitSidecarPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSRefactoringToolkitSidecarPolicy") + ManagedPolicyAWSResourceAccessManagerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSResourceAccessManagerFullAccess") + ManagedPolicyAWSResourceAccessManagerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSResourceAccessManagerReadOnlyAccess") + ManagedPolicyAWSResourceAccessManagerResourceShareParticipantAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSResourceAccessManagerResourceShareParticipantAccess") + ManagedPolicyAWSResourceAccessManagerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSResourceAccessManagerServiceRolePolicy") + ManagedPolicyAWSResourceExplorerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSResourceExplorerFullAccess") + ManagedPolicyAWSResourceExplorerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSResourceExplorerReadOnlyAccess") + ManagedPolicyAWSResourceExplorerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSResourceExplorerServiceRolePolicy") + ManagedPolicyAWSResourceGroupsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSResourceGroupsReadOnlyAccess") + ManagedPolicyAWSRoboMakerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSRoboMakerReadOnlyAccess") + ManagedPolicyAWSRoboMakerServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSRoboMakerServicePolicy") + ManagedPolicyAWSRoboMakerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSRoboMakerServiceRolePolicy") + ManagedPolicy_AWSRoboMaker_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSRoboMaker_FullAccess") + ManagedPolicyAWSRolesAnywhereServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSRolesAnywhereServicePolicy") + ManagedPolicyAWSSSMForSAPServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSSMForSAPServiceLinkedRolePolicy") + ManagedPolicyAWSSSMOpsInsightsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSSMOpsInsightsServiceRolePolicy") + ManagedPolicyAWSSSODirectoryAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/AWSSSODirectoryAdministrator") + ManagedPolicyAWSSSODirectoryReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSSSODirectoryReadOnly") + ManagedPolicyAWSSSOMasterAccountAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/AWSSSOMasterAccountAdministrator") + ManagedPolicyAWSSSOMemberAccountAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/AWSSSOMemberAccountAdministrator") + ManagedPolicyAWSSSOReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSSSOReadOnly") + ManagedPolicyAWSSSOServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSSOServiceRolePolicy") + ManagedPolicyAWSSavingsPlansFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSavingsPlansFullAccess") + ManagedPolicyAWSSavingsPlansReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSavingsPlansReadOnlyAccess") + ManagedPolicyAWSSecurityHubFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSecurityHubFullAccess") + ManagedPolicyAWSSecurityHubOrganizationsAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSecurityHubOrganizationsAccess") + ManagedPolicyAWSSecurityHubReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSecurityHubReadOnlyAccess") + ManagedPolicyAWSSecurityHubServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSecurityHubServiceRolePolicy") + ManagedPolicyAWSServiceCatalogAdminFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSServiceCatalogAdminFullAccess") + ManagedPolicyAWSServiceCatalogAdminReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSServiceCatalogAdminReadOnlyAccess") + ManagedPolicyAWSServiceCatalogAppRegistryFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSServiceCatalogAppRegistryFullAccess") + ManagedPolicyAWSServiceCatalogAppRegistryReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSServiceCatalogAppRegistryReadOnlyAccess") + ManagedPolicyAWSServiceCatalogAppRegistryServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceCatalogAppRegistryServiceRolePolicy") + ManagedPolicyAWSServiceCatalogEndUserFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess") + ManagedPolicyAWSServiceCatalogEndUserReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSServiceCatalogEndUserReadOnlyAccess") + ManagedPolicyAWSServiceCatalogSyncServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceCatalogSyncServiceRolePolicy") + ManagedPolicyAWSServiceRoleForAmazonEKSNodegroup = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForAmazonEKSNodegroup") + ManagedPolicyAWSServiceRoleForCloudWatchAlarmsActionSSMServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForCloudWatchAlarmsActionSSMServiceRolePolicy") + ManagedPolicyAWSServiceRoleForCodeGuruProfiler = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForCodeGuru-Profiler") + ManagedPolicyAWSServiceRoleForEC2ScheduledInstances = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForEC2ScheduledInstances") + ManagedPolicyAWSServiceRoleForGroundStationDataflowEndpointGroupPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForGroundStationDataflowEndpointGroupPolicy") + ManagedPolicyAWSServiceRoleForImageBuilder = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForImageBuilder") + ManagedPolicyAWSServiceRoleForIoTSiteWise = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForIoTSiteWise") + ManagedPolicyAWSServiceRoleForLogDeliveryPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForLogDeliveryPolicy") + ManagedPolicyAWSServiceRoleForMonitronPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForMonitronPolicy") + ManagedPolicyAWSServiceRoleForSMS = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForSMS") + ManagedPolicyAWSServiceRolePolicyForBackupReports = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSServiceRolePolicyForBackupReports") + ManagedPolicyAWSShieldDRTAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy") + ManagedPolicyAWSShieldServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSShieldServiceRolePolicy") + ManagedPolicyAWSStepFunctionsConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSStepFunctionsConsoleFullAccess") + ManagedPolicyAWSStepFunctionsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSStepFunctionsFullAccess") + ManagedPolicyAWSStepFunctionsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSStepFunctionsReadOnlyAccess") + ManagedPolicyAWSStorageGatewayFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSStorageGatewayFullAccess") + ManagedPolicyAWSStorageGatewayReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSStorageGatewayReadOnlyAccess") + ManagedPolicyAWSStorageGatewayServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSStorageGatewayServiceRolePolicy") + ManagedPolicyAWSSupportAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSupportAccess") + ManagedPolicyAWSSupportAppFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSupportAppFullAccess") + ManagedPolicyAWSSupportAppReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSupportAppReadOnlyAccess") + ManagedPolicyAWSSupportPlansFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSupportPlansFullAccess") + ManagedPolicyAWSSupportPlansReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSupportPlansReadOnlyAccess") + ManagedPolicyAWSSupportServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSupportServiceRolePolicy") + ManagedPolicyAWSSystemsManagerAccountDiscoveryServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSystemsManagerAccountDiscoveryServicePolicy") + ManagedPolicyAWSSystemsManagerChangeManagementServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSystemsManagerChangeManagementServicePolicy") + ManagedPolicyAWSSystemsManagerForSAPFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSystemsManagerForSAPFullAccess") + ManagedPolicyAWSSystemsManagerForSAPReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSSystemsManagerForSAPReadOnlyAccess") + ManagedPolicyAWSSystemsManagerOpsDataSyncServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSSystemsManagerOpsDataSyncServiceRolePolicy") + ManagedPolicyAWSThinkboxAWSPortalAdminPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxAWSPortalAdminPolicy") + ManagedPolicyAWSThinkboxAWSPortalGatewayPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxAWSPortalGatewayPolicy") + ManagedPolicyAWSThinkboxAWSPortalWorkerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxAWSPortalWorkerPolicy") + ManagedPolicyAWSThinkboxAssetServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxAssetServerPolicy") + ManagedPolicyAWSThinkboxDeadlineResourceTrackerAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxDeadlineResourceTrackerAccessPolicy") + ManagedPolicyAWSThinkboxDeadlineResourceTrackerAdminPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxDeadlineResourceTrackerAdminPolicy") + ManagedPolicyAWSThinkboxDeadlineSpotEventPluginAdminPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxDeadlineSpotEventPluginAdminPolicy") + ManagedPolicyAWSThinkboxDeadlineSpotEventPluginWorkerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AWSThinkboxDeadlineSpotEventPluginWorkerPolicy") + ManagedPolicyAWSTransferConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSTransferConsoleFullAccess") + ManagedPolicyAWSTransferFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSTransferFullAccess") + ManagedPolicyAWSTransferLoggingAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AWSTransferLoggingAccess") + ManagedPolicyAWSTransferReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSTransferReadOnlyAccess") + ManagedPolicyAWSTrustedAdvisorPriorityFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSTrustedAdvisorPriorityFullAccess") + ManagedPolicyAWSTrustedAdvisorPriorityReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSTrustedAdvisorPriorityReadOnlyAccess") + ManagedPolicyAWSTrustedAdvisorReportingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSTrustedAdvisorReportingServiceRolePolicy") + ManagedPolicyAWSTrustedAdvisorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSTrustedAdvisorServiceRolePolicy") + ManagedPolicyAWSVPCS2SVpnServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSVPCS2SVpnServiceRolePolicy") + ManagedPolicyAWSVPCTransitGatewayServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSVPCTransitGatewayServiceRolePolicy") + ManagedPolicyAWSVPCVerifiedAccessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSVPCVerifiedAccessServiceRolePolicy") + ManagedPolicyAWSVendorInsightsAssessorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSVendorInsightsAssessorFullAccess") + ManagedPolicyAWSVendorInsightsAssessorReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSVendorInsightsAssessorReadOnly") + ManagedPolicyAWSVendorInsightsVendorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSVendorInsightsVendorFullAccess") + ManagedPolicyAWSVendorInsightsVendorReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AWSVendorInsightsVendorReadOnly") + ManagedPolicyAWSVpcLatticeServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSVpcLatticeServiceRolePolicy") + ManagedPolicyAWSWAFConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess") + ManagedPolicyAWSWAFConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess") + ManagedPolicyAWSWAFFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSWAFFullAccess") + ManagedPolicyAWSWAFReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess") + ManagedPolicyAWSWellArchitectedOrganizationsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AWSWellArchitectedOrganizationsServiceRolePolicy") + ManagedPolicyAWSWickrFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSWickrFullAccess") + ManagedPolicyAWSXrayCrossAccountSharingConfiguration = ManagedPolicy("arn:aws:iam::aws:policy/AWSXrayCrossAccountSharingConfiguration") + ManagedPolicyAWSXrayFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSXrayFullAccess") + ManagedPolicyAWSXrayReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSXrayReadOnlyAccess") + ManagedPolicyAWSXrayWriteOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess") + ManagedPolicyAWSXRayDaemonWriteAccess = ManagedPolicy("arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess") + ManagedPolicyAccessAnalyzerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AccessAnalyzerServiceRolePolicy") + ManagedPolicyAdministratorAccess = ManagedPolicy("arn:aws:iam::aws:policy/AdministratorAccess") + ManagedPolicyAdministratorAccessAWSElasticBeanstalk = ManagedPolicy("arn:aws:iam::aws:policy/AdministratorAccess-AWSElasticBeanstalk") + ManagedPolicyAdministratorAccessAmplify = ManagedPolicy("arn:aws:iam::aws:policy/AdministratorAccess-Amplify") + ManagedPolicyAlexaForBusinessDeviceSetup = ManagedPolicy("arn:aws:iam::aws:policy/AlexaForBusinessDeviceSetup") + ManagedPolicyAlexaForBusinessFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AlexaForBusinessFullAccess") + ManagedPolicyAlexaForBusinessGatewayExecution = ManagedPolicy("arn:aws:iam::aws:policy/AlexaForBusinessGatewayExecution") + ManagedPolicyAlexaForBusinessLifesizeDelegatedAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AlexaForBusinessLifesizeDelegatedAccessPolicy") + ManagedPolicyAlexaForBusinessNetworkProfileServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AlexaForBusinessNetworkProfileServicePolicy") + ManagedPolicyAlexaForBusinessPolyDelegatedAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AlexaForBusinessPolyDelegatedAccessPolicy") + ManagedPolicyAlexaForBusinessReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AlexaForBusinessReadOnlyAccess") + ManagedPolicyAmazonAPIGatewayAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAPIGatewayAdministrator") + ManagedPolicyAmazonAPIGatewayInvokeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAPIGatewayInvokeFullAccess") + ManagedPolicyAmazonAPIGatewayPushToCloudWatchLogs = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs") + ManagedPolicyAmazonAppFlowFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAppFlowFullAccess") + ManagedPolicyAmazonAppFlowReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAppFlowReadOnlyAccess") + ManagedPolicyAmazonAppStreamFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAppStreamFullAccess") + ManagedPolicyAmazonAppStreamPCAAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonAppStreamPCAAccess") + ManagedPolicyAmazonAppStreamReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAppStreamReadOnlyAccess") + ManagedPolicyAmazonAppStreamServiceAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonAppStreamServiceAccess") + ManagedPolicyAmazonAthenaFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAthenaFullAccess") + ManagedPolicyAmazonAugmentedAIFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess") + ManagedPolicyAmazonAugmentedAIHumanLoopFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAugmentedAIHumanLoopFullAccess") + ManagedPolicyAmazonAugmentedAIIntegratedAPIAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonAugmentedAIIntegratedAPIAccess") + ManagedPolicyAmazonBraketFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonBraketFullAccess") + ManagedPolicyAmazonBraketJobsExecutionPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonBraketJobsExecutionPolicy") + ManagedPolicyAmazonBraketServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonBraketServiceRolePolicy") + ManagedPolicyAmazonChimeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonChimeFullAccess") + ManagedPolicyAmazonChimeReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonChimeReadOnly") + ManagedPolicyAmazonChimeSDK = ManagedPolicy("arn:aws:iam::aws:policy/AmazonChimeSDK") + ManagedPolicyAmazonChimeSDKMediaPipelinesServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonChimeSDKMediaPipelinesServiceLinkedRolePolicy") + ManagedPolicyAmazonChimeServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonChimeServiceRolePolicy") + ManagedPolicyAmazonChimeTranscriptionServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonChimeTranscriptionServiceLinkedRolePolicy") + ManagedPolicyAmazonChimeUserManagement = ManagedPolicy("arn:aws:iam::aws:policy/AmazonChimeUserManagement") + ManagedPolicyAmazonChimeVoiceConnectorServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonChimeVoiceConnectorServiceLinkedRolePolicy") + ManagedPolicyAmazonCloudDirectoryFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCloudDirectoryFullAccess") + ManagedPolicyAmazonCloudDirectoryReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCloudDirectoryReadOnlyAccess") + ManagedPolicyAmazonCloudWatchEvidentlyFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCloudWatchEvidentlyFullAccess") + ManagedPolicyAmazonCloudWatchEvidentlyReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCloudWatchEvidentlyReadOnlyAccess") + ManagedPolicyAmazonCloudWatchEvidentlyServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonCloudWatchEvidentlyServiceRolePolicy") + ManagedPolicyAmazonCloudWatchRUMFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCloudWatchRUMFullAccess") + ManagedPolicyAmazonCloudWatchRUMReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCloudWatchRUMReadOnlyAccess") + ManagedPolicyAmazonCloudWatchRUMServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonCloudWatchRUMServiceRolePolicy") + ManagedPolicyAmazonCodeGuruProfilerAgentAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCodeGuruProfilerAgentAccess") + ManagedPolicyAmazonCodeGuruProfilerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCodeGuruProfilerFullAccess") + ManagedPolicyAmazonCodeGuruProfilerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCodeGuruProfilerReadOnlyAccess") + ManagedPolicyAmazonCodeGuruReviewerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCodeGuruReviewerFullAccess") + ManagedPolicyAmazonCodeGuruReviewerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCodeGuruReviewerReadOnlyAccess") + ManagedPolicyAmazonCodeGuruReviewerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonCodeGuruReviewerServiceRolePolicy") + ManagedPolicyAmazonCognitoDeveloperAuthenticatedIdentities = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCognitoDeveloperAuthenticatedIdentities") + ManagedPolicyAmazonCognitoIdpEmailServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonCognitoIdpEmailServiceRolePolicy") + ManagedPolicyAmazonCognitoIdpServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonCognitoIdpServiceRolePolicy") + ManagedPolicyAmazonCognitoPowerUser = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCognitoPowerUser") + ManagedPolicyAmazonCognitoReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCognitoReadOnly") + ManagedPolicyAmazonCognitoUnauthenticatedIdentities = ManagedPolicy("arn:aws:iam::aws:policy/AmazonCognitoUnauthenticatedIdentities") + ManagedPolicyAmazonConnectCampaignsServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonConnectCampaignsServiceLinkedRolePolicy") + ManagedPolicyAmazonConnectReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonConnectReadOnlyAccess") + ManagedPolicyAmazonConnectServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonConnectServiceLinkedRolePolicy") + ManagedPolicyAmazonConnectVoiceIDFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonConnectVoiceIDFullAccess") + ManagedPolicy_AmazonConnect_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonConnect_FullAccess") + ManagedPolicyAmazonDMSCloudWatchLogsRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole") + ManagedPolicyAmazonDMSRedshiftS3Role = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role") + ManagedPolicyAmazonDMSVPCManagementRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole") + ManagedPolicyAmazonDRSVPCManagement = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDRSVPCManagement") + ManagedPolicyAmazonDetectiveFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDetectiveFullAccess") + ManagedPolicyAmazonDetectiveInvestigatorAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDetectiveInvestigatorAccess") + ManagedPolicyAmazonDetectiveMemberAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDetectiveMemberAccess") + ManagedPolicyAmazonDetectiveServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonDetectiveServiceLinkedRolePolicy") + ManagedPolicyAmazonDevOpsGuruConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDevOpsGuruConsoleFullAccess") + ManagedPolicyAmazonDevOpsGuruFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDevOpsGuruFullAccess") + ManagedPolicyAmazonDevOpsGuruOrganizationsAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDevOpsGuruOrganizationsAccess") + ManagedPolicyAmazonDevOpsGuruReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDevOpsGuruReadOnlyAccess") + ManagedPolicyAmazonDevOpsGuruServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonDevOpsGuruServiceRolePolicy") + ManagedPolicyAmazonDocDBElasticServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonDocDB-ElasticServiceRolePolicy") + ManagedPolicyAmazonDocDBConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDocDBConsoleFullAccess") + ManagedPolicyAmazonDocDBFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDocDBFullAccess") + ManagedPolicyAmazonDocDBReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDocDBReadOnlyAccess") + ManagedPolicyAmazonDynamoDBFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess") + ManagedPolicyAmazonDynamoDBFullAccesswithDataPipeline = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDynamoDBFullAccesswithDataPipeline") + ManagedPolicyAmazonDynamoDBReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess") + ManagedPolicyAmazonEBSCSIDriverPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy") + ManagedPolicyAmazonEC2ContainerRegistryFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess") + ManagedPolicyAmazonEC2ContainerRegistryPowerUser = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPowerUser") + ManagedPolicyAmazonEC2ContainerRegistryReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly") + ManagedPolicyAmazonEC2ContainerServiceAutoscaleRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceAutoscaleRole") + ManagedPolicyAmazonEC2ContainerServiceEventsRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceEventsRole") + // Deprecated: This policy is deprecated and will be removed in a future release. Use AmazonECS_FullAccess instead. + ManagedPolicyAmazonEC2ContainerServiceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2ContainerServiceFullAccess") + ManagedPolicyAmazonEC2ContainerServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceRole") + ManagedPolicyAmazonEC2ContainerServiceforEC2Role = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role") + ManagedPolicyAmazonEC2FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2FullAccess") + ManagedPolicyAmazonEC2ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess") + // Deprecated: This policy is deprecated and will be removed in a future release. + ManagedPolicyAmazonEC2ReportsAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2ReportsAccess") + ManagedPolicyAmazonEC2RolePolicyForLaunchWizard = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEC2RolePolicyForLaunchWizard") + ManagedPolicyAmazonEC2RoleforAWSCodeDeploy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforAWSCodeDeploy") + ManagedPolicyAmazonEC2RoleforAWSCodeDeployLimited = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforAWSCodeDeployLimited") + ManagedPolicyAmazonEC2RoleforDataPipelineRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole") + ManagedPolicyAmazonEC2RoleforSSM = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM") + ManagedPolicyAmazonEC2SpotFleetAutoscaleRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetAutoscaleRole") + // Deprecated: This policy is deprecated and will be removed in a future release. + ManagedPolicyAmazonEC2SpotFleetRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetRole") + ManagedPolicyAmazonEC2SpotFleetTaggingRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole") + ManagedPolicyAmazonECSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonECS_FullAccess") + ManagedPolicyAmazonECSServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonECSServiceRolePolicy") + ManagedPolicyAmazonECSTaskExecutionRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy") + ManagedPolicyAmazonEKSClusterPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKSClusterPolicy") + ManagedPolicyAmazonEKSConnectorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEKSConnectorServiceRolePolicy") + ManagedPolicyAmazonEKSFargatePodExecutionRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKSFargatePodExecutionRolePolicy") + ManagedPolicyAmazonEKSForFargateServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEKSForFargateServiceRolePolicy") + ManagedPolicyAmazonEKSLocalOutpostClusterPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy") + ManagedPolicyAmazonEKSLocalOutpostServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEKSLocalOutpostServiceRolePolicy") + ManagedPolicyAmazonEKSServicePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKSServicePolicy") + ManagedPolicyAmazonEKSServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEKSServiceRolePolicy") + ManagedPolicyAmazonEKSVPCResourceController = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKSVPCResourceController") + ManagedPolicyAmazonEKSWorkerNodePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy") + ManagedPolicy_AmazonEKS_CNI_Policy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy") + ManagedPolicyAmazonEMRCleanupPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEMRCleanupPolicy") + ManagedPolicyAmazonEMRContainersServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEMRContainersServiceRolePolicy") + ManagedPolicy_AmazonEMRFullAccessPolicy_v2 = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEMRFullAccessPolicy_v2") + ManagedPolicy_AmazonEMRReadOnlyAccessPolicy_v2 = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEMRReadOnlyAccessPolicy_v2") + ManagedPolicyAmazonEMRServerlessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEMRServerlessServiceRolePolicy") + ManagedPolicy_AmazonEMRServicePolicy_v2 = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2") + ManagedPolicyAmazonESCognitoAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonESCognitoAccess") + ManagedPolicyAmazonESFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonESFullAccess") + ManagedPolicyAmazonESReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonESReadOnlyAccess") + ManagedPolicyAmazonElastiCacheFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElastiCacheFullAccess") + ManagedPolicyAmazonElastiCacheReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElastiCacheReadOnlyAccess") + ManagedPolicyAmazonElasticContainerRegistryPublicFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticContainerRegistryPublicFullAccess") + ManagedPolicyAmazonElasticContainerRegistryPublicPowerUser = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticContainerRegistryPublicPowerUser") + ManagedPolicyAmazonElasticContainerRegistryPublicReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticContainerRegistryPublicReadOnly") + ManagedPolicyAmazonElasticFileSystemClientFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticFileSystemClientFullAccess") + ManagedPolicyAmazonElasticFileSystemClientReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticFileSystemClientReadOnlyAccess") + ManagedPolicyAmazonElasticFileSystemClientReadWriteAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticFileSystemClientReadWriteAccess") + ManagedPolicyAmazonElasticFileSystemFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticFileSystemFullAccess") + ManagedPolicyAmazonElasticFileSystemReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticFileSystemReadOnlyAccess") + ManagedPolicyAmazonElasticFileSystemServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonElasticFileSystemServiceRolePolicy") + ManagedPolicyAmazonElasticFileSystemsUtils = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticFileSystemsUtils") + ManagedPolicyAmazonElasticMapReduceEditorsRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceEditorsRole") + ManagedPolicyAmazonElasticMapReduceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticMapReduceFullAccess") + ManagedPolicyAmazonElasticMapReducePlacementGroupPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticMapReducePlacementGroupPolicy") + ManagedPolicyAmazonElasticMapReduceReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticMapReduceReadOnlyAccess") + ManagedPolicyAmazonElasticMapReduceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceRole") + ManagedPolicyAmazonElasticMapReduceforAutoScalingRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforAutoScalingRole") + ManagedPolicyAmazonElasticMapReduceforEC2Role = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role") + // Deprecated: This policy is deprecated and will be removed in a future release. Use ElasticTranscoder_FullAccess instead. + ManagedPolicyAmazonElasticTranscoderFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticTranscoderFullAccess") + // Deprecated: This policy is deprecated and will be removed in a future release. Use ElasticTranscoder_JobsSubmitter instead. + ManagedPolicyAmazonElasticTranscoderJobsSubmitter = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticTranscoderJobsSubmitter") + // Deprecated: This policy is deprecated and will be removed in a future release. Use ElasticTranscoder_ReadOnlyAccess instead. + ManagedPolicyAmazonElasticTranscoderReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticTranscoderReadOnlyAccess") + ManagedPolicyAmazonElasticTranscoderRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonElasticTranscoderRole") + ManagedPolicy_ElasticTranscoder_FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticTranscoder_FullAccess") + ManagedPolicy_ElasticTranscoder_JobsSubmitter = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticTranscoder_JobsSubmitter") + ManagedPolicy_ElasticTranscoder_ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonElasticTranscoder_ReadOnlyAccess") + ManagedPolicyAmazonElasticsearchServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonElasticsearchServiceRolePolicy") + ManagedPolicyAmazonEventBridgeApiDestinationsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEventBridgeApiDestinationsServiceRolePolicy") + ManagedPolicyAmazonEventBridgeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgeFullAccess") + ManagedPolicyAmazonEventBridgePipesFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgePipesFullAccess") + ManagedPolicyAmazonEventBridgePipesOperatorAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgePipesOperatorAccess") + ManagedPolicyAmazonEventBridgePipesReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgePipesReadOnlyAccess") + ManagedPolicyAmazonEventBridgeReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgeReadOnlyAccess") + ManagedPolicyAmazonEventBridgeSchedulerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgeSchedulerFullAccess") + ManagedPolicyAmazonEventBridgeSchedulerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgeSchedulerReadOnlyAccess") + ManagedPolicyAmazonEventBridgeSchemasFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgeSchemasFullAccess") + ManagedPolicyAmazonEventBridgeSchemasReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonEventBridgeSchemasReadOnlyAccess") + ManagedPolicyAmazonEventBridgeSchemasServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonEventBridgeSchemasServiceRolePolicy") + ManagedPolicyAmazonFISServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonFISServiceRolePolicy") + ManagedPolicyAmazonFSxConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonFSxConsoleFullAccess") + ManagedPolicyAmazonFSxConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonFSxConsoleReadOnlyAccess") + ManagedPolicyAmazonFSxFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonFSxFullAccess") + ManagedPolicyAmazonFSxReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonFSxReadOnlyAccess") + ManagedPolicyAmazonFSxServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonFSxServiceRolePolicy") + ManagedPolicyAmazonForecastFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonForecastFullAccess") + ManagedPolicyAmazonFraudDetectorFullAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonFraudDetectorFullAccessPolicy") + ManagedPolicyAmazonFreeRTOSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonFreeRTOSFullAccess") + ManagedPolicyAmazonFreeRTOSOTAUpdate = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonFreeRTOSOTAUpdate") + ManagedPolicyAmazonGlacierFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonGlacierFullAccess") + ManagedPolicyAmazonGlacierReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonGlacierReadOnlyAccess") + ManagedPolicyAmazonGrafanaAthenaAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonGrafanaAthenaAccess") + ManagedPolicyAmazonGrafanaRedshiftAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonGrafanaRedshiftAccess") + ManagedPolicyAmazonGrafanaServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonGrafanaServiceLinkedRolePolicy") + ManagedPolicyAmazonGuardDutyFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonGuardDutyFullAccess") + ManagedPolicyAmazonGuardDutyMalwareProtectionServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonGuardDutyMalwareProtectionServiceRolePolicy") + ManagedPolicyAmazonGuardDutyReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonGuardDutyReadOnlyAccess") + ManagedPolicyAmazonGuardDutyServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonGuardDutyServiceRolePolicy") + ManagedPolicyAmazonHealthLakeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHealthLakeFullAccess") + ManagedPolicyAmazonHealthLakeReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHealthLakeReadOnlyAccess") + ManagedPolicyAmazonHoneycodeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHoneycodeFullAccess") + ManagedPolicyAmazonHoneycodeReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHoneycodeReadOnlyAccess") + ManagedPolicyAmazonHoneycodeServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonHoneycodeServiceRolePolicy") + ManagedPolicyAmazonHoneycodeTeamAssociationFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHoneycodeTeamAssociationFullAccess") + ManagedPolicyAmazonHoneycodeTeamAssociationReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHoneycodeTeamAssociationReadOnlyAccess") + ManagedPolicyAmazonHoneycodeWorkbookFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHoneycodeWorkbookFullAccess") + ManagedPolicyAmazonHoneycodeWorkbookReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonHoneycodeWorkbookReadOnlyAccess") + ManagedPolicyAmazonInspector2FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonInspector2FullAccess") + ManagedPolicyAmazonInspector2ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonInspector2ReadOnlyAccess") + ManagedPolicyAmazonInspector2ServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonInspector2ServiceRolePolicy") + ManagedPolicyAmazonInspectorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonInspectorFullAccess") + ManagedPolicyAmazonInspectorReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonInspectorReadOnlyAccess") + ManagedPolicyAmazonInspectorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonInspectorServiceRolePolicy") + ManagedPolicyAmazonKendraFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKendraFullAccess") + ManagedPolicyAmazonKendraReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKendraReadOnlyAccess") + ManagedPolicyAmazonKeyspacesFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKeyspacesFullAccess") + ManagedPolicyAmazonKeyspacesReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKeyspacesReadOnlyAccess") + ManagedPolicyAmazonKinesisAnalyticsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisAnalyticsFullAccess") + ManagedPolicyAmazonKinesisAnalyticsReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisAnalyticsReadOnly") + ManagedPolicyAmazonKinesisFirehoseFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisFirehoseFullAccess") + ManagedPolicyAmazonKinesisFirehoseReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisFirehoseReadOnlyAccess") + ManagedPolicyAmazonKinesisFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisFullAccess") + ManagedPolicyAmazonKinesisReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisReadOnlyAccess") + ManagedPolicyAmazonKinesisVideoStreamsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisVideoStreamsFullAccess") + ManagedPolicyAmazonKinesisVideoStreamsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonKinesisVideoStreamsReadOnlyAccess") + ManagedPolicy_AmazonLaunchWizard_Fullaccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLaunchWizard_Fullaccess") + ManagedPolicyAmazonLexChannelsAccess = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonLexChannelsAccess") + ManagedPolicyAmazonLexFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLexFullAccess") + ManagedPolicyAmazonLexReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLexReadOnly") + ManagedPolicyAmazonLexRunBotsOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLexRunBotsOnly") + ManagedPolicyAmazonLexV2BotPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonLexV2BotPolicy") + ManagedPolicyAmazonLookoutEquipmentFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutEquipmentFullAccess") + ManagedPolicyAmazonLookoutEquipmentReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutEquipmentReadOnlyAccess") + ManagedPolicyAmazonLookoutMetricsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutMetricsFullAccess") + ManagedPolicyAmazonLookoutMetricsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutMetricsReadOnlyAccess") + ManagedPolicyAmazonLookoutVisionConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutVisionConsoleFullAccess") + ManagedPolicyAmazonLookoutVisionConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutVisionConsoleReadOnlyAccess") + ManagedPolicyAmazonLookoutVisionFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutVisionFullAccess") + ManagedPolicyAmazonLookoutVisionReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonLookoutVisionReadOnlyAccess") + ManagedPolicyAmazonMCSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMCSFullAccess") + ManagedPolicyAmazonMCSReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMCSReadOnlyAccess") + ManagedPolicyAmazonMQApiFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMQApiFullAccess") + ManagedPolicyAmazonMQApiReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMQApiReadOnlyAccess") + ManagedPolicyAmazonMQFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMQFullAccess") + ManagedPolicyAmazonMQReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMQReadOnlyAccess") + ManagedPolicyAmazonMQServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonMQServiceRolePolicy") + ManagedPolicyAmazonMSKConnectReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMSKConnectReadOnlyAccess") + ManagedPolicyAmazonMSKFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMSKFullAccess") + ManagedPolicyAmazonMSKReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMSKReadOnlyAccess") + ManagedPolicyAmazonMWAAServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonMWAAServiceRolePolicy") + ManagedPolicyAmazonMachineLearningBatchPredictionsAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMachineLearningBatchPredictionsAccess") + ManagedPolicyAmazonMachineLearningCreateOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMachineLearningCreateOnlyAccess") + ManagedPolicyAmazonMachineLearningFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMachineLearningFullAccess") + ManagedPolicyAmazonMachineLearningManageRealTimeEndpointOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMachineLearningManageRealTimeEndpointOnlyAccess") + ManagedPolicyAmazonMachineLearningReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMachineLearningReadOnlyAccess") + ManagedPolicyAmazonMachineLearningRealTimePredictionOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMachineLearningRealTimePredictionOnlyAccess") + // Deprecated: This policy is deprecated. Use AmazonMachineLearningRoleforRedshiftDataSourceV3 instead. + ManagedPolicyAmazonMachineLearningRoleforRedshiftDataSource = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonMachineLearningRoleforRedshiftDataSource") + ManagedPolicyAmazonMachineLearningRoleforRedshiftDataSourceV3 = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonMachineLearningRoleforRedshiftDataSourceV3") + ManagedPolicyAmazonMacieFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMacieFullAccess") + ManagedPolicyAmazonMacieHandshakeRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonMacieHandshakeRole") + ManagedPolicyAmazonMacieServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonMacieServiceRole") + ManagedPolicyAmazonMacieServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonMacieServiceRolePolicy") + ManagedPolicyAmazonManagedBlockchainConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonManagedBlockchainConsoleFullAccess") + ManagedPolicyAmazonManagedBlockchainFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonManagedBlockchainFullAccess") + ManagedPolicyAmazonManagedBlockchainReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonManagedBlockchainReadOnlyAccess") + ManagedPolicyAmazonManagedBlockchainServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonManagedBlockchainServiceRolePolicy") + ManagedPolicyAmazonMechanicalTurkFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMechanicalTurkFullAccess") + ManagedPolicyAmazonMechanicalTurkReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMechanicalTurkReadOnly") + ManagedPolicyAmazonMemoryDBFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMemoryDBFullAccess") + ManagedPolicyAmazonMemoryDBReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMemoryDBReadOnlyAccess") + ManagedPolicyAmazonMobileAnalyticsFinancialReportAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMobileAnalyticsFinancialReportAccess") + ManagedPolicyAmazonMobileAnalyticsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMobileAnalyticsFullAccess") + ManagedPolicyAmazonMobileAnalyticsNonfinancialReportAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMobileAnalyticsNon-financialReportAccess") + ManagedPolicyAmazonMobileAnalyticsWriteOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMobileAnalyticsWriteOnlyAccess") + ManagedPolicyAmazonMonitronFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonMonitronFullAccess") + ManagedPolicyAmazonNimbleStudioLaunchProfileWorker = ManagedPolicy("arn:aws:iam::aws:policy/AmazonNimbleStudio-LaunchProfileWorker") + ManagedPolicyAmazonNimbleStudioStudioAdmin = ManagedPolicy("arn:aws:iam::aws:policy/AmazonNimbleStudio-StudioAdmin") + ManagedPolicyAmazonNimbleStudioStudioUser = ManagedPolicy("arn:aws:iam::aws:policy/AmazonNimbleStudio-StudioUser") + ManagedPolicyAmazonOmicsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonOmicsFullAccess") + ManagedPolicyAmazonOmicsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonOmicsReadOnlyAccess") + ManagedPolicyAmazonOpenSearchIngestionServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonOpenSearchIngestionServiceRolePolicy") + ManagedPolicyAmazonOpenSearchServerlessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonOpenSearchServerlessServiceRolePolicy") + ManagedPolicyAmazonOpenSearchServiceCognitoAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonOpenSearchServiceCognitoAccess") + ManagedPolicyAmazonOpenSearchServiceFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonOpenSearchServiceFullAccess") + ManagedPolicyAmazonOpenSearchServiceReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonOpenSearchServiceReadOnlyAccess") + ManagedPolicyAmazonOpenSearchServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonOpenSearchServiceRolePolicy") + ManagedPolicyAmazonPersonalizeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonPersonalizeFullAccess") + ManagedPolicyAmazonPollyFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonPollyFullAccess") + ManagedPolicyAmazonPollyReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonPollyReadOnlyAccess") + ManagedPolicyAmazonPrometheusConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonPrometheusConsoleFullAccess") + ManagedPolicyAmazonPrometheusFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonPrometheusFullAccess") + ManagedPolicyAmazonPrometheusQueryAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonPrometheusQueryAccess") + ManagedPolicyAmazonPrometheusRemoteWriteAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonPrometheusRemoteWriteAccess") + ManagedPolicyAmazonQLDBConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonQLDBConsoleFullAccess") + ManagedPolicyAmazonQLDBFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonQLDBFullAccess") + ManagedPolicyAmazonQLDBReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonQLDBReadOnly") + ManagedPolicyAmazonRDSBetaServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonRDSBetaServiceRolePolicy") + ManagedPolicyAmazonRDSCustomPreviewServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonRDSCustomPreviewServiceRolePolicy") + ManagedPolicyAmazonRDSCustomServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonRDSCustomServiceRolePolicy") + ManagedPolicyAmazonRDSDataFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRDSDataFullAccess") + ManagedPolicyAmazonRDSDirectoryServiceAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonRDSDirectoryServiceAccess") + ManagedPolicyAmazonRDSEnhancedMonitoringRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole") + ManagedPolicyAmazonRDSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRDSFullAccess") + ManagedPolicyAmazonRDSPerformanceInsightsReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRDSPerformanceInsightsReadOnly") + ManagedPolicyAmazonRDSPreviewServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonRDSPreviewServiceRolePolicy") + ManagedPolicyAmazonRDSReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRDSReadOnlyAccess") + ManagedPolicyAmazonRDSServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonRDSServiceRolePolicy") + ManagedPolicyAmazonRedshiftAllCommandsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftAllCommandsFullAccess") + ManagedPolicyAmazonRedshiftDataFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccess") + ManagedPolicyAmazonRedshiftFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftFullAccess") + ManagedPolicyAmazonRedshiftQueryEditor = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftQueryEditor") + ManagedPolicyAmazonRedshiftQueryEditorV2FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2FullAccess") + ManagedPolicyAmazonRedshiftQueryEditorV2NoSharing = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2NoSharing") + ManagedPolicyAmazonRedshiftQueryEditorV2ReadSharing = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2ReadSharing") + ManagedPolicyAmazonRedshiftQueryEditorV2ReadWriteSharing = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftQueryEditorV2ReadWriteSharing") + ManagedPolicyAmazonRedshiftReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRedshiftReadOnlyAccess") + ManagedPolicyAmazonRedshiftServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonRedshiftServiceLinkedRolePolicy") + ManagedPolicyAmazonRekognitionCustomLabelsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRekognitionCustomLabelsFullAccess") + ManagedPolicyAmazonRekognitionFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRekognitionFullAccess") + ManagedPolicyAmazonRekognitionReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRekognitionReadOnlyAccess") + ManagedPolicyAmazonRekognitionServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonRekognitionServiceRole") + ManagedPolicyAmazonRoute53AutoNamingFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53AutoNamingFullAccess") + ManagedPolicyAmazonRoute53AutoNamingReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53AutoNamingReadOnlyAccess") + ManagedPolicyAmazonRoute53AutoNamingRegistrantAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53AutoNamingRegistrantAccess") + ManagedPolicyAmazonRoute53DomainsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53DomainsFullAccess") + ManagedPolicyAmazonRoute53DomainsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53DomainsReadOnlyAccess") + ManagedPolicyAmazonRoute53FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53FullAccess") + ManagedPolicyAmazonRoute53ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53ReadOnlyAccess") + ManagedPolicyAmazonRoute53RecoveryClusterFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53RecoveryClusterFullAccess") + ManagedPolicyAmazonRoute53RecoveryClusterReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53RecoveryClusterReadOnlyAccess") + ManagedPolicyAmazonRoute53RecoveryControlConfigFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53RecoveryControlConfigFullAccess") + ManagedPolicyAmazonRoute53RecoveryControlConfigReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53RecoveryControlConfigReadOnlyAccess") + ManagedPolicyAmazonRoute53RecoveryReadinessFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53RecoveryReadinessFullAccess") + ManagedPolicyAmazonRoute53RecoveryReadinessReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53RecoveryReadinessReadOnlyAccess") + ManagedPolicyAmazonRoute53ResolverFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53ResolverFullAccess") + ManagedPolicyAmazonRoute53ResolverReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonRoute53ResolverReadOnlyAccess") + ManagedPolicyAmazonS3FullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonS3FullAccess") + ManagedPolicyAmazonS3ObjectLambdaExecutionRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy") + ManagedPolicyAmazonS3OutpostsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonS3OutpostsFullAccess") + ManagedPolicyAmazonS3OutpostsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonS3OutpostsReadOnlyAccess") + ManagedPolicyAmazonS3ReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess") + ManagedPolicyAmazonSESFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSESFullAccess") + ManagedPolicyAmazonSESReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSESReadOnlyAccess") + ManagedPolicyAmazonSNSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSNSFullAccess") + ManagedPolicyAmazonSNSReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSNSReadOnlyAccess") + ManagedPolicyAmazonSNSRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSNSRole") + ManagedPolicyAmazonSQSFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSQSFullAccess") + ManagedPolicyAmazonSQSReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSQSReadOnlyAccess") + ManagedPolicyAmazonSSMAutomationApproverAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMAutomationApproverAccess") + ManagedPolicyAmazonSSMAutomationRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSSMAutomationRole") + ManagedPolicyAmazonSSMDirectoryServiceAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess") + ManagedPolicyAmazonSSMFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMFullAccess") + ManagedPolicyAmazonSSMMaintenanceWindowRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole") + ManagedPolicyAmazonSSMManagedEC2InstanceDefaultPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMManagedEC2InstanceDefaultPolicy") + ManagedPolicyAmazonSSMPatchAssociation = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMPatchAssociation") + ManagedPolicyAmazonSSMReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess") + ManagedPolicyAmazonSSMManagedInstanceCore = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore") + ManagedPolicyAmazonSSMServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonSSMServiceRolePolicy") + ManagedPolicyAmazonSageMakerAdminServiceCatalogProductsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerAdmin-ServiceCatalogProductsServiceRolePolicy") + ManagedPolicyAmazonSageMakerCanvasForecastAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerCanvasForecastAccess") + ManagedPolicyAmazonSageMakerCanvasFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess") + ManagedPolicyAmazonSageMakerCoreServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonSageMakerCoreServiceRolePolicy") + ManagedPolicyAmazonSageMakerEdgeDeviceFleetPolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerEdgeDeviceFleetPolicy") + ManagedPolicyAmazonSageMakerFeatureStoreAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerFeatureStoreAccess") + ManagedPolicyAmazonSageMakerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerFullAccess") + ManagedPolicyAmazonSageMakerGeospatialExecutionRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerGeospatialExecutionRole") + ManagedPolicyAmazonSageMakerGeospatialFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerGeospatialFullAccess") + ManagedPolicyAmazonSageMakerGroundTruthExecution = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerGroundTruthExecution") + ManagedPolicyAmazonSageMakerMechanicalTurkAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerMechanicalTurkAccess") + ManagedPolicyAmazonSageMakerModelGovernanceUseAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerModelGovernanceUseAccess") + ManagedPolicyAmazonSageMakerNotebooksServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonSageMakerNotebooksServiceRolePolicy") + ManagedPolicyAmazonSageMakerPipelinesIntegrations = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerPipelinesIntegrations") + ManagedPolicyAmazonSageMakerReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerReadOnly") + ManagedPolicyAmazonSageMakerServiceCatalogProductsApiGatewayServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsApiGatewayServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsCloudformationServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsCloudformationServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsCodeBuildServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSageMakerServiceCatalogProductsCodeBuildServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsCodePipelineServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsCodePipelineServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsEventsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsEventsServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsFirehoseServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsFirehoseServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsGlueServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsGlueServiceRolePolicy") + ManagedPolicyAmazonSageMakerServiceCatalogProductsLambdaServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonSageMakerServiceCatalogProductsLambdaServiceRolePolicy") + ManagedPolicyAmazonSecurityLakePermissionsBoundary = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSecurityLakePermissionsBoundary") + ManagedPolicyAmazonSumerianFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonSumerianFullAccess") + ManagedPolicyAmazonTextractFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonTextractFullAccess") + ManagedPolicyAmazonTextractServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AmazonTextractServiceRole") + ManagedPolicyAmazonTimestreamConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonTimestreamConsoleFullAccess") + ManagedPolicyAmazonTimestreamFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonTimestreamFullAccess") + ManagedPolicyAmazonTimestreamReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonTimestreamReadOnlyAccess") + ManagedPolicyAmazonTranscribeFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonTranscribeFullAccess") + ManagedPolicyAmazonTranscribeReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonTranscribeReadOnlyAccess") + ManagedPolicyAmazonVPCCrossAccountNetworkInterfaceOperations = ManagedPolicy("arn:aws:iam::aws:policy/AmazonVPCCrossAccountNetworkInterfaceOperations") + ManagedPolicyAmazonVPCFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonVPCFullAccess") + ManagedPolicyAmazonVPCReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonVPCReadOnlyAccess") + ManagedPolicyAmazonWorkDocsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkDocsFullAccess") + ManagedPolicyAmazonWorkDocsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkDocsReadOnlyAccess") + ManagedPolicyAmazonWorkMailEventsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonWorkMailEventsServiceRolePolicy") + ManagedPolicyAmazonWorkMailFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkMailFullAccess") + ManagedPolicyAmazonWorkMailMessageFlowFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkMailMessageFlowFullAccess") + ManagedPolicyAmazonWorkMailMessageFlowReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkMailMessageFlowReadOnlyAccess") + ManagedPolicyAmazonWorkMailReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkMailReadOnlyAccess") + ManagedPolicyAmazonWorkSpacesAdmin = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkSpacesAdmin") + ManagedPolicyAmazonWorkSpacesApplicationManagerAdminAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkSpacesApplicationManagerAdminAccess") + ManagedPolicyAmazonWorkSpacesSelfServiceAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess") + ManagedPolicyAmazonWorkSpacesServiceAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess") + ManagedPolicyAmazonWorkSpacesWebReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkSpacesWebReadOnly") + ManagedPolicyAmazonWorkSpacesWebServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AmazonWorkSpacesWebServiceRolePolicy") + ManagedPolicyAmazonWorkspacesPCAAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonWorkspacesPCAAccess") + ManagedPolicyAmazonZocaloFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonZocaloFullAccess") + ManagedPolicyAmazonZocaloReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AmazonZocaloReadOnlyAccess") + ManagedPolicyAppIntegrationsServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AppIntegrationsServiceLinkedRolePolicy") + ManagedPolicyAppRunnerNetworkingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AppRunnerNetworkingServiceRolePolicy") + ManagedPolicyAppRunnerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AppRunnerServiceRolePolicy") + ManagedPolicyApplicationAutoScalingForAmazonAppStreamAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/ApplicationAutoScalingForAmazonAppStreamAccess") + ManagedPolicyApplicationDiscoveryServiceContinuousExportServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ApplicationDiscoveryServiceContinuousExportServiceRolePolicy") + ManagedPolicyAutoScalingConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AutoScalingConsoleFullAccess") + ManagedPolicyAutoScalingConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AutoScalingConsoleReadOnlyAccess") + ManagedPolicyAutoScalingFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/AutoScalingFullAccess") + ManagedPolicyAutoScalingNotificationAccessRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AutoScalingNotificationAccessRole") + ManagedPolicyAutoScalingReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/AutoScalingReadOnlyAccess") + ManagedPolicyAutoScalingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/AutoScalingServiceRolePolicy") + ManagedPolicyAwsGlueDataBrewFullAccessPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AwsGlueDataBrewFullAccessPolicy") + ManagedPolicyAwsGlueSessionUserRestrictedNotebookPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AwsGlueSessionUserRestrictedNotebookPolicy") + ManagedPolicyAwsGlueSessionUserRestrictedNotebookServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AwsGlueSessionUserRestrictedNotebookServiceRole") + ManagedPolicyAwsGlueSessionUserRestrictedPolicy = ManagedPolicy("arn:aws:iam::aws:policy/AwsGlueSessionUserRestrictedPolicy") + ManagedPolicyAwsGlueSessionUserRestrictedServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/AwsGlueSessionUserRestrictedServiceRole") + ManagedPolicyBatchServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/BatchServiceRolePolicy") + ManagedPolicyBilling = ManagedPolicy("arn:aws:iam::aws:policy/job-function/Billing") + ManagedPolicyCertificateManagerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CertificateManagerServiceRolePolicy") + ManagedPolicyClientVPNServiceConnectionsRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ClientVPNServiceConnectionsRolePolicy") + ManagedPolicyClientVPNServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ClientVPNServiceRolePolicy") + ManagedPolicyCloudFormationStackSetsOrgAdminServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudFormationStackSetsOrgAdminServiceRolePolicy") + ManagedPolicyCloudFormationStackSetsOrgMemberServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudFormationStackSetsOrgMemberServiceRolePolicy") + ManagedPolicyCloudFrontFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudFrontFullAccess") + ManagedPolicyCloudFrontReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudFrontReadOnlyAccess") + ManagedPolicyCloudHSMServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudHSMServiceRolePolicy") + ManagedPolicyCloudSearchFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudSearchFullAccess") + ManagedPolicyCloudSearchReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudSearchReadOnlyAccess") + ManagedPolicyCloudTrailServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudTrailServiceRolePolicy") + ManagedPolicyCloudWatchCrossAccountAccess = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudWatch-CrossAccountAccess") + ManagedPolicyCloudWatchActionsEC2Access = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchActionsEC2Access") + ManagedPolicyCloudWatchAgentAdminPolicy = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchAgentAdminPolicy") + ManagedPolicyCloudWatchAgentServerPolicy = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy") + ManagedPolicyCloudWatchApplicationInsightsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchApplicationInsightsFullAccess") + ManagedPolicyCloudWatchApplicationInsightsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchApplicationInsightsReadOnlyAccess") + ManagedPolicyCloudWatchAutomaticDashboardsAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchAutomaticDashboardsAccess") + ManagedPolicyCloudWatchCrossAccountSharingConfiguration = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchCrossAccountSharingConfiguration") + ManagedPolicyCloudWatchEventsBuiltInTargetExecutionAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/CloudWatchEventsBuiltInTargetExecutionAccess") + ManagedPolicyCloudWatchEventsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchEventsFullAccess") + ManagedPolicyCloudWatchEventsInvocationAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/CloudWatchEventsInvocationAccess") + ManagedPolicyCloudWatchEventsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchEventsReadOnlyAccess") + ManagedPolicyCloudWatchEventsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudWatchEventsServiceRolePolicy") + ManagedPolicyCloudWatchFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchFullAccess") + ManagedPolicyCloudWatchInternetMonitorServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudWatchInternetMonitorServiceRolePolicy") + ManagedPolicyCloudWatchLambdaInsightsExecutionRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy") + ManagedPolicyCloudWatchLogsCrossAccountSharingConfiguration = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchLogsCrossAccountSharingConfiguration") + ManagedPolicyCloudWatchLogsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchLogsFullAccess") + ManagedPolicyCloudWatchLogsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchLogsReadOnlyAccess") + ManagedPolicyCloudWatchReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess") + ManagedPolicyCloudWatchSyntheticsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchSyntheticsFullAccess") + ManagedPolicyCloudWatchSyntheticsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/CloudWatchSyntheticsReadOnlyAccess") + ManagedPolicyCloudwatchApplicationInsightsServiceLinkedRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/CloudwatchApplicationInsightsServiceLinkedRolePolicy") + ManagedPolicyComprehendDataAccessRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/service-role/ComprehendDataAccessRolePolicy") + ManagedPolicyComprehendFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ComprehendFullAccess") + ManagedPolicyComprehendMedicalFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ComprehendMedicalFullAccess") + ManagedPolicyComprehendReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/ComprehendReadOnly") + ManagedPolicyComputeOptimizerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ComputeOptimizerReadOnlyAccess") + ManagedPolicyComputeOptimizerServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ComputeOptimizerServiceRolePolicy") + ManagedPolicyConfigConformsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ConfigConformsServiceRolePolicy") + ManagedPolicyDAXServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/DAXServiceRolePolicy") + ManagedPolicyDataScientist = ManagedPolicy("arn:aws:iam::aws:policy/job-function/DataScientist") + ManagedPolicyDatabaseAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/job-function/DatabaseAdministrator") + ManagedPolicyDynamoDBCloudWatchContributorInsightsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/DynamoDBCloudWatchContributorInsightsServiceRolePolicy") + ManagedPolicyDynamoDBKinesisReplicationServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/DynamoDBKinesisReplicationServiceRolePolicy") + ManagedPolicyDynamoDBReplicationServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/DynamoDBReplicationServiceRolePolicy") + ManagedPolicyEC2FastLaunchServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/EC2FastLaunchServiceRolePolicy") + ManagedPolicyEC2FleetTimeShiftableServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/EC2FleetTimeShiftableServiceRolePolicy") + ManagedPolicyEC2InstanceConnect = ManagedPolicy("arn:aws:iam::aws:policy/EC2InstanceConnect") + ManagedPolicyEC2InstanceProfileForImageBuilder = ManagedPolicy("arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder") + ManagedPolicyEC2InstanceProfileForImageBuilderECRContainerBuilds = ManagedPolicy("arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilderECRContainerBuilds") + ManagedPolicyECRReplicationServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ECRReplicationServiceRolePolicy") + ManagedPolicyEc2ImageBuilderCrossAccountDistributionAccess = ManagedPolicy("arn:aws:iam::aws:policy/Ec2ImageBuilderCrossAccountDistributionAccess") + ManagedPolicyEc2InstanceConnectEndpoint = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/Ec2InstanceConnectEndpoint") + ManagedPolicyElastiCacheServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ElastiCacheServiceRolePolicy") + ManagedPolicyElasticLoadBalancingFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElasticLoadBalancingFullAccess") + ManagedPolicyElasticLoadBalancingReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/ElasticLoadBalancingReadOnly") + ManagedPolicyElementalActivationsDownloadSoftwareAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElementalActivationsDownloadSoftwareAccess") + ManagedPolicyElementalActivationsFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElementalActivationsFullAccess") + ManagedPolicyElementalActivationsGenerateLicenses = ManagedPolicy("arn:aws:iam::aws:policy/ElementalActivationsGenerateLicenses") + ManagedPolicyElementalActivationsReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElementalActivationsReadOnlyAccess") + ManagedPolicyElementalAppliancesSoftwareFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElementalAppliancesSoftwareFullAccess") + ManagedPolicyElementalAppliancesSoftwareReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElementalAppliancesSoftwareReadOnlyAccess") + ManagedPolicyElementalSupportCenterFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ElementalSupportCenterFullAccess") + ManagedPolicyFMSServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/FMSServiceRolePolicy") + ManagedPolicyFSxDeleteServiceLinkedRoleAccess = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/FSxDeleteServiceLinkedRoleAccess") + ManagedPolicyFusionDevInternalServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/FusionDevInternalServiceRolePolicy") + ManagedPolicyGameLiftGameServerGroupPolicy = ManagedPolicy("arn:aws:iam::aws:policy/GameLiftGameServerGroupPolicy") + ManagedPolicyGlobalAcceleratorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/GlobalAcceleratorFullAccess") + ManagedPolicyGlobalAcceleratorReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/GlobalAcceleratorReadOnlyAccess") + ManagedPolicyGreengrassOTAUpdateArtifactAccess = ManagedPolicy("arn:aws:iam::aws:policy/service-role/GreengrassOTAUpdateArtifactAccess") + ManagedPolicyGroundTruthSyntheticConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/GroundTruthSyntheticConsoleFullAccess") + ManagedPolicyGroundTruthSyntheticConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/GroundTruthSyntheticConsoleReadOnlyAccess") + ManagedPolicy_Health_OrganizationsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/Health_OrganizationsServiceRolePolicy") + ManagedPolicyIAMAccessAdvisorReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/IAMAccessAdvisorReadOnly") + ManagedPolicyIAMAccessAnalyzerFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/IAMAccessAnalyzerFullAccess") + ManagedPolicyIAMAccessAnalyzerReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess") + ManagedPolicyIAMFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/IAMFullAccess") + ManagedPolicyIAMReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/IAMReadOnlyAccess") + ManagedPolicyIAMSelfManageServiceSpecificCredentials = ManagedPolicy("arn:aws:iam::aws:policy/IAMSelfManageServiceSpecificCredentials") + ManagedPolicyIAMUserChangePassword = ManagedPolicy("arn:aws:iam::aws:policy/IAMUserChangePassword") + ManagedPolicyIAMUserSSHKeys = ManagedPolicy("arn:aws:iam::aws:policy/IAMUserSSHKeys") + ManagedPolicyIVSRecordToS3 = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/IVSRecordToS3") + ManagedPolicyKafkaConnectServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/KafkaConnectServiceRolePolicy") + ManagedPolicyKafkaServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/KafkaServiceRolePolicy") + ManagedPolicyLakeFormationDataAccessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/LakeFormationDataAccessServiceRolePolicy") + ManagedPolicyLexBotPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/LexBotPolicy") + ManagedPolicyLexChannelPolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/LexChannelPolicy") + ManagedPolicyLightsailExportAccess = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/LightsailExportAccess") + ManagedPolicyMediaPackageServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/MediaPackageServiceRolePolicy") + ManagedPolicyMemoryDBServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/MemoryDBServiceRolePolicy") + ManagedPolicyMigrationHubDMSAccessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/MigrationHubDMSAccessServiceRolePolicy") + ManagedPolicyMigrationHubSMSAccessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/MigrationHubSMSAccessServiceRolePolicy") + ManagedPolicyMigrationHubServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/MigrationHubServiceRolePolicy") + ManagedPolicyMonitronServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/MonitronServiceRolePolicy") + ManagedPolicyNeptuneConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/NeptuneConsoleFullAccess") + ManagedPolicyNeptuneFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/NeptuneFullAccess") + ManagedPolicyNeptuneReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/NeptuneReadOnlyAccess") + ManagedPolicyNetworkAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/job-function/NetworkAdministrator") + ManagedPolicyOAMFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/OAMFullAccess") + ManagedPolicyOAMReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/OAMReadOnlyAccess") + ManagedPolicyPowerUserAccess = ManagedPolicy("arn:aws:iam::aws:policy/PowerUserAccess") + ManagedPolicyQuickSightAccessForS3StorageManagementAnalyticsReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/service-role/QuickSightAccessForS3StorageManagementAnalyticsReadOnly") + ManagedPolicyRDSCloudHsmAuthorizationRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/RDSCloudHsmAuthorizationRole") + ManagedPolicyROSAManageSubscription = ManagedPolicy("arn:aws:iam::aws:policy/ROSAManageSubscription") + ManagedPolicyReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ReadOnlyAccess") + ManagedPolicyResourceGroupsServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ResourceGroupsServiceRolePolicy") + ManagedPolicyResourceGroupsandTagEditorFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ResourceGroupsandTagEditorFullAccess") + ManagedPolicyResourceGroupsandTagEditorReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ResourceGroupsandTagEditorReadOnlyAccess") + ManagedPolicyRoute53RecoveryReadinessServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/Route53RecoveryReadinessServiceRolePolicy") + ManagedPolicyRoute53ResolverServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/Route53ResolverServiceRolePolicy") + ManagedPolicyS3StorageLensServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/S3StorageLensServiceRolePolicy") + ManagedPolicySecretsManagerReadWrite = ManagedPolicy("arn:aws:iam::aws:policy/SecretsManagerReadWrite") + ManagedPolicySecurityAudit = ManagedPolicy("arn:aws:iam::aws:policy/SecurityAudit") + ManagedPolicySecurityLakeServiceLinkedRole = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/SecurityLakeServiceLinkedRole") + ManagedPolicyServerMigrationConnector = ManagedPolicy("arn:aws:iam::aws:policy/ServerMigrationConnector") + // Deprecated: This policy is deprecated and will be removed in a future release. Use AWSServerMigration_ServiceRole instead. + ManagedPolicyServerMigrationServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/ServerMigrationServiceRole") + // Deprecated: This policy is deprecated and will be removed in a future release. Use AWSServiceCatalogAdminFullAccess instead. + ManagedPolicyServiceCatalogAdminFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServiceCatalogAdminFullAccess") + // Deprecated: This policy is deprecated and will be removed in a future release. Use AWSServiceCatalogAdminReadOnlyAccess instead. + ManagedPolicyServiceCatalogAdminReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServiceCatalogAdminReadOnlyAccess") + // Deprecated: This policy is deprecated and will be removed in a future release. Use AWSServiceCatalogEndUserReadOnlyAccess instead. + ManagedPolicyServiceCatalogEndUserAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServiceCatalogEndUserAccess") + // Deprecated: This policy is deprecated and will be removed in a future release. Use AWSServiceCatalogEndUserFullAccess instead. + ManagedPolicyServiceCatalogEndUserFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServiceCatalogEndUserFullAccess") + ManagedPolicyServerMigrationServiceConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServerMigrationServiceConsoleFullAccess") + ManagedPolicyServerMigrationServiceLaunchRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/ServerMigrationServiceLaunchRole") + ManagedPolicyServerMigrationServiceRoleForInstanceValidation = ManagedPolicy("arn:aws:iam::aws:policy/service-role/ServerMigrationServiceRoleForInstanceValidation") + ManagedPolicy_AWSServerMigration_ServiceRole = ManagedPolicy("arn:aws:iam::aws:policy/service-role/ServerMigration_ServiceRole") + ManagedPolicyServiceQuotasFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServiceQuotasFullAccess") + ManagedPolicyServiceQuotasReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/ServiceQuotasReadOnlyAccess") + ManagedPolicyServiceQuotasServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/ServiceQuotasServiceRolePolicy") + ManagedPolicySimpleWorkflowFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/SimpleWorkflowFullAccess") + ManagedPolicySupportUser = ManagedPolicy("arn:aws:iam::aws:policy/job-function/SupportUser") + ManagedPolicySystemAdministrator = ManagedPolicy("arn:aws:iam::aws:policy/job-function/SystemAdministrator") + ManagedPolicyTranslateFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/TranslateFullAccess") + ManagedPolicyTranslateReadOnly = ManagedPolicy("arn:aws:iam::aws:policy/TranslateReadOnly") + ManagedPolicyVMImportExportRoleForAWSConnector = ManagedPolicy("arn:aws:iam::aws:policy/service-role/VMImportExportRoleForAWSConnector") + ManagedPolicyViewOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/job-function/ViewOnlyAccess") + ManagedPolicyWAFLoggingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/WAFLoggingServiceRolePolicy") + ManagedPolicyWAFRegionalLoggingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/WAFRegionalLoggingServiceRolePolicy") + ManagedPolicyWAFV2LoggingServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/WAFV2LoggingServiceRolePolicy") + ManagedPolicyWellArchitectedConsoleFullAccess = ManagedPolicy("arn:aws:iam::aws:policy/WellArchitectedConsoleFullAccess") + ManagedPolicyWellArchitectedConsoleReadOnlyAccess = ManagedPolicy("arn:aws:iam::aws:policy/WellArchitectedConsoleReadOnlyAccess") + ManagedPolicyWorkLinkServiceRolePolicy = ManagedPolicy("arn:aws:iam::aws:policy/WorkLinkServiceRolePolicy") +) + +func (ManagedPolicy) ElementType() reflect.Type { + return reflect.TypeOf((*ManagedPolicy)(nil)).Elem() +} + +func (e ManagedPolicy) ToManagedPolicyOutput() ManagedPolicyOutput { + return pulumi.ToOutput(e).(ManagedPolicyOutput) +} + +func (e ManagedPolicy) ToManagedPolicyOutputWithContext(ctx context.Context) ManagedPolicyOutput { + return pulumi.ToOutputWithContext(ctx, e).(ManagedPolicyOutput) +} + +func (e ManagedPolicy) ToManagedPolicyPtrOutput() ManagedPolicyPtrOutput { + return e.ToManagedPolicyPtrOutputWithContext(context.Background()) +} + +func (e ManagedPolicy) ToManagedPolicyPtrOutputWithContext(ctx context.Context) ManagedPolicyPtrOutput { + return ManagedPolicy(e).ToManagedPolicyOutputWithContext(ctx).ToManagedPolicyPtrOutputWithContext(ctx) +} + +func (e ManagedPolicy) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ManagedPolicy) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e ManagedPolicy) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e ManagedPolicy) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type ManagedPolicyOutput struct{ *pulumi.OutputState } + +func (ManagedPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ManagedPolicy)(nil)).Elem() +} + +func (o ManagedPolicyOutput) ToManagedPolicyOutput() ManagedPolicyOutput { + return o +} + +func (o ManagedPolicyOutput) ToManagedPolicyOutputWithContext(ctx context.Context) ManagedPolicyOutput { + return o +} + +func (o ManagedPolicyOutput) ToManagedPolicyPtrOutput() ManagedPolicyPtrOutput { + return o.ToManagedPolicyPtrOutputWithContext(context.Background()) +} + +func (o ManagedPolicyOutput) ToManagedPolicyPtrOutputWithContext(ctx context.Context) ManagedPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ManagedPolicy) *ManagedPolicy { + return &v + }).(ManagedPolicyPtrOutput) +} + +func (o ManagedPolicyOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o ManagedPolicyOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ManagedPolicy) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o ManagedPolicyOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ManagedPolicyOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e ManagedPolicy) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type ManagedPolicyPtrOutput struct{ *pulumi.OutputState } + +func (ManagedPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ManagedPolicy)(nil)).Elem() +} + +func (o ManagedPolicyPtrOutput) ToManagedPolicyPtrOutput() ManagedPolicyPtrOutput { + return o +} + +func (o ManagedPolicyPtrOutput) ToManagedPolicyPtrOutputWithContext(ctx context.Context) ManagedPolicyPtrOutput { + return o +} + +func (o ManagedPolicyPtrOutput) Elem() ManagedPolicyOutput { + return o.ApplyT(func(v *ManagedPolicy) ManagedPolicy { + if v != nil { + return *v + } + var ret ManagedPolicy + return ret + }).(ManagedPolicyOutput) +} + +func (o ManagedPolicyPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o ManagedPolicyPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *ManagedPolicy) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// ManagedPolicyInput is an input type that accepts ManagedPolicyArgs and ManagedPolicyOutput values. +// You can construct a concrete instance of `ManagedPolicyInput` via: +// +// ManagedPolicyArgs{...} +type ManagedPolicyInput interface { + pulumi.Input + + ToManagedPolicyOutput() ManagedPolicyOutput + ToManagedPolicyOutputWithContext(context.Context) ManagedPolicyOutput +} + +var managedPolicyPtrType = reflect.TypeOf((**ManagedPolicy)(nil)).Elem() + +type ManagedPolicyPtrInput interface { + pulumi.Input + + ToManagedPolicyPtrOutput() ManagedPolicyPtrOutput + ToManagedPolicyPtrOutputWithContext(context.Context) ManagedPolicyPtrOutput +} + +type managedPolicyPtr string + +func ManagedPolicyPtr(v string) ManagedPolicyPtrInput { + return (*managedPolicyPtr)(&v) +} + +func (*managedPolicyPtr) ElementType() reflect.Type { + return managedPolicyPtrType +} + +func (in *managedPolicyPtr) ToManagedPolicyPtrOutput() ManagedPolicyPtrOutput { + return pulumi.ToOutput(in).(ManagedPolicyPtrOutput) +} + +func (in *managedPolicyPtr) ToManagedPolicyPtrOutputWithContext(ctx context.Context) ManagedPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(ManagedPolicyPtrOutput) +} + +func (in *managedPolicyPtr) ToOutput(ctx context.Context) pulumix.Output[*ManagedPolicy] { + return pulumix.Output[*ManagedPolicy]{ + OutputState: in.ToManagedPolicyPtrOutputWithContext(ctx).OutputState, + } +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ManagedPolicyInput)(nil)).Elem(), ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/APIGatewayServiceRolePolicy")) + pulumi.RegisterInputType(reflect.TypeOf((*ManagedPolicyPtrInput)(nil)).Elem(), ManagedPolicy("arn:aws:iam::aws:policy/aws-service-role/APIGatewayServiceRolePolicy")) + pulumi.RegisterOutputType(ManagedPolicyOutput{}) + pulumi.RegisterOutputType(ManagedPolicyPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiTypes.go new file mode 100644 index 000000000..08120d4fe --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/pulumiTypes.go @@ -0,0 +1,1388 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type RoleInlinePolicy struct { + // Name of the role policy. + Name *string `pulumi:"name"` + // Policy document as a JSON formatted string. + Policy *string `pulumi:"policy"` +} + +// RoleInlinePolicyInput is an input type that accepts RoleInlinePolicyArgs and RoleInlinePolicyOutput values. +// You can construct a concrete instance of `RoleInlinePolicyInput` via: +// +// RoleInlinePolicyArgs{...} +type RoleInlinePolicyInput interface { + pulumi.Input + + ToRoleInlinePolicyOutput() RoleInlinePolicyOutput + ToRoleInlinePolicyOutputWithContext(context.Context) RoleInlinePolicyOutput +} + +type RoleInlinePolicyArgs struct { + // Name of the role policy. + Name pulumi.StringPtrInput `pulumi:"name"` + // Policy document as a JSON formatted string. + Policy pulumi.StringPtrInput `pulumi:"policy"` +} + +func (RoleInlinePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoleInlinePolicy)(nil)).Elem() +} + +func (i RoleInlinePolicyArgs) ToRoleInlinePolicyOutput() RoleInlinePolicyOutput { + return i.ToRoleInlinePolicyOutputWithContext(context.Background()) +} + +func (i RoleInlinePolicyArgs) ToRoleInlinePolicyOutputWithContext(ctx context.Context) RoleInlinePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleInlinePolicyOutput) +} + +// RoleInlinePolicyArrayInput is an input type that accepts RoleInlinePolicyArray and RoleInlinePolicyArrayOutput values. +// You can construct a concrete instance of `RoleInlinePolicyArrayInput` via: +// +// RoleInlinePolicyArray{ RoleInlinePolicyArgs{...} } +type RoleInlinePolicyArrayInput interface { + pulumi.Input + + ToRoleInlinePolicyArrayOutput() RoleInlinePolicyArrayOutput + ToRoleInlinePolicyArrayOutputWithContext(context.Context) RoleInlinePolicyArrayOutput +} + +type RoleInlinePolicyArray []RoleInlinePolicyInput + +func (RoleInlinePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoleInlinePolicy)(nil)).Elem() +} + +func (i RoleInlinePolicyArray) ToRoleInlinePolicyArrayOutput() RoleInlinePolicyArrayOutput { + return i.ToRoleInlinePolicyArrayOutputWithContext(context.Background()) +} + +func (i RoleInlinePolicyArray) ToRoleInlinePolicyArrayOutputWithContext(ctx context.Context) RoleInlinePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleInlinePolicyArrayOutput) +} + +type RoleInlinePolicyOutput struct{ *pulumi.OutputState } + +func (RoleInlinePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoleInlinePolicy)(nil)).Elem() +} + +func (o RoleInlinePolicyOutput) ToRoleInlinePolicyOutput() RoleInlinePolicyOutput { + return o +} + +func (o RoleInlinePolicyOutput) ToRoleInlinePolicyOutputWithContext(ctx context.Context) RoleInlinePolicyOutput { + return o +} + +// Name of the role policy. +func (o RoleInlinePolicyOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleInlinePolicy) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Policy document as a JSON formatted string. +func (o RoleInlinePolicyOutput) Policy() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleInlinePolicy) *string { return v.Policy }).(pulumi.StringPtrOutput) +} + +type RoleInlinePolicyArrayOutput struct{ *pulumi.OutputState } + +func (RoleInlinePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RoleInlinePolicy)(nil)).Elem() +} + +func (o RoleInlinePolicyArrayOutput) ToRoleInlinePolicyArrayOutput() RoleInlinePolicyArrayOutput { + return o +} + +func (o RoleInlinePolicyArrayOutput) ToRoleInlinePolicyArrayOutputWithContext(ctx context.Context) RoleInlinePolicyArrayOutput { + return o +} + +func (o RoleInlinePolicyArrayOutput) Index(i pulumi.IntInput) RoleInlinePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RoleInlinePolicy { + return vs[0].([]RoleInlinePolicy)[vs[1].(int)] + }).(RoleInlinePolicyOutput) +} + +type GetAccessKeysAccessKey struct { + // Access key ID. + AccessKeyId string `pulumi:"accessKeyId"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. + CreateDate string `pulumi:"createDate"` + // Access key status. Possible values are `Active` and `Inactive`. + Status string `pulumi:"status"` +} + +// GetAccessKeysAccessKeyInput is an input type that accepts GetAccessKeysAccessKeyArgs and GetAccessKeysAccessKeyOutput values. +// You can construct a concrete instance of `GetAccessKeysAccessKeyInput` via: +// +// GetAccessKeysAccessKeyArgs{...} +type GetAccessKeysAccessKeyInput interface { + pulumi.Input + + ToGetAccessKeysAccessKeyOutput() GetAccessKeysAccessKeyOutput + ToGetAccessKeysAccessKeyOutputWithContext(context.Context) GetAccessKeysAccessKeyOutput +} + +type GetAccessKeysAccessKeyArgs struct { + // Access key ID. + AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. + CreateDate pulumi.StringInput `pulumi:"createDate"` + // Access key status. Possible values are `Active` and `Inactive`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (GetAccessKeysAccessKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetAccessKeysAccessKey)(nil)).Elem() +} + +func (i GetAccessKeysAccessKeyArgs) ToGetAccessKeysAccessKeyOutput() GetAccessKeysAccessKeyOutput { + return i.ToGetAccessKeysAccessKeyOutputWithContext(context.Background()) +} + +func (i GetAccessKeysAccessKeyArgs) ToGetAccessKeysAccessKeyOutputWithContext(ctx context.Context) GetAccessKeysAccessKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetAccessKeysAccessKeyOutput) +} + +// GetAccessKeysAccessKeyArrayInput is an input type that accepts GetAccessKeysAccessKeyArray and GetAccessKeysAccessKeyArrayOutput values. +// You can construct a concrete instance of `GetAccessKeysAccessKeyArrayInput` via: +// +// GetAccessKeysAccessKeyArray{ GetAccessKeysAccessKeyArgs{...} } +type GetAccessKeysAccessKeyArrayInput interface { + pulumi.Input + + ToGetAccessKeysAccessKeyArrayOutput() GetAccessKeysAccessKeyArrayOutput + ToGetAccessKeysAccessKeyArrayOutputWithContext(context.Context) GetAccessKeysAccessKeyArrayOutput +} + +type GetAccessKeysAccessKeyArray []GetAccessKeysAccessKeyInput + +func (GetAccessKeysAccessKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetAccessKeysAccessKey)(nil)).Elem() +} + +func (i GetAccessKeysAccessKeyArray) ToGetAccessKeysAccessKeyArrayOutput() GetAccessKeysAccessKeyArrayOutput { + return i.ToGetAccessKeysAccessKeyArrayOutputWithContext(context.Background()) +} + +func (i GetAccessKeysAccessKeyArray) ToGetAccessKeysAccessKeyArrayOutputWithContext(ctx context.Context) GetAccessKeysAccessKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetAccessKeysAccessKeyArrayOutput) +} + +type GetAccessKeysAccessKeyOutput struct{ *pulumi.OutputState } + +func (GetAccessKeysAccessKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetAccessKeysAccessKey)(nil)).Elem() +} + +func (o GetAccessKeysAccessKeyOutput) ToGetAccessKeysAccessKeyOutput() GetAccessKeysAccessKeyOutput { + return o +} + +func (o GetAccessKeysAccessKeyOutput) ToGetAccessKeysAccessKeyOutputWithContext(ctx context.Context) GetAccessKeysAccessKeyOutput { + return o +} + +// Access key ID. +func (o GetAccessKeysAccessKeyOutput) AccessKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetAccessKeysAccessKey) string { return v.AccessKeyId }).(pulumi.StringOutput) +} + +// Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) that the access key was created. +func (o GetAccessKeysAccessKeyOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v GetAccessKeysAccessKey) string { return v.CreateDate }).(pulumi.StringOutput) +} + +// Access key status. Possible values are `Active` and `Inactive`. +func (o GetAccessKeysAccessKeyOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v GetAccessKeysAccessKey) string { return v.Status }).(pulumi.StringOutput) +} + +type GetAccessKeysAccessKeyArrayOutput struct{ *pulumi.OutputState } + +func (GetAccessKeysAccessKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetAccessKeysAccessKey)(nil)).Elem() +} + +func (o GetAccessKeysAccessKeyArrayOutput) ToGetAccessKeysAccessKeyArrayOutput() GetAccessKeysAccessKeyArrayOutput { + return o +} + +func (o GetAccessKeysAccessKeyArrayOutput) ToGetAccessKeysAccessKeyArrayOutputWithContext(ctx context.Context) GetAccessKeysAccessKeyArrayOutput { + return o +} + +func (o GetAccessKeysAccessKeyArrayOutput) Index(i pulumi.IntInput) GetAccessKeysAccessKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetAccessKeysAccessKey { + return vs[0].([]GetAccessKeysAccessKey)[vs[1].(int)] + }).(GetAccessKeysAccessKeyOutput) +} + +type GetGroupUser struct { + // User ARN. + Arn string `pulumi:"arn"` + // Path to the IAM user. + Path string `pulumi:"path"` + // Stable and unique string identifying the IAM user. + UserId string `pulumi:"userId"` + // Name of the IAM user. + UserName string `pulumi:"userName"` +} + +// GetGroupUserInput is an input type that accepts GetGroupUserArgs and GetGroupUserOutput values. +// You can construct a concrete instance of `GetGroupUserInput` via: +// +// GetGroupUserArgs{...} +type GetGroupUserInput interface { + pulumi.Input + + ToGetGroupUserOutput() GetGroupUserOutput + ToGetGroupUserOutputWithContext(context.Context) GetGroupUserOutput +} + +type GetGroupUserArgs struct { + // User ARN. + Arn pulumi.StringInput `pulumi:"arn"` + // Path to the IAM user. + Path pulumi.StringInput `pulumi:"path"` + // Stable and unique string identifying the IAM user. + UserId pulumi.StringInput `pulumi:"userId"` + // Name of the IAM user. + UserName pulumi.StringInput `pulumi:"userName"` +} + +func (GetGroupUserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetGroupUser)(nil)).Elem() +} + +func (i GetGroupUserArgs) ToGetGroupUserOutput() GetGroupUserOutput { + return i.ToGetGroupUserOutputWithContext(context.Background()) +} + +func (i GetGroupUserArgs) ToGetGroupUserOutputWithContext(ctx context.Context) GetGroupUserOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetGroupUserOutput) +} + +// GetGroupUserArrayInput is an input type that accepts GetGroupUserArray and GetGroupUserArrayOutput values. +// You can construct a concrete instance of `GetGroupUserArrayInput` via: +// +// GetGroupUserArray{ GetGroupUserArgs{...} } +type GetGroupUserArrayInput interface { + pulumi.Input + + ToGetGroupUserArrayOutput() GetGroupUserArrayOutput + ToGetGroupUserArrayOutputWithContext(context.Context) GetGroupUserArrayOutput +} + +type GetGroupUserArray []GetGroupUserInput + +func (GetGroupUserArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetGroupUser)(nil)).Elem() +} + +func (i GetGroupUserArray) ToGetGroupUserArrayOutput() GetGroupUserArrayOutput { + return i.ToGetGroupUserArrayOutputWithContext(context.Background()) +} + +func (i GetGroupUserArray) ToGetGroupUserArrayOutputWithContext(ctx context.Context) GetGroupUserArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetGroupUserArrayOutput) +} + +type GetGroupUserOutput struct{ *pulumi.OutputState } + +func (GetGroupUserOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetGroupUser)(nil)).Elem() +} + +func (o GetGroupUserOutput) ToGetGroupUserOutput() GetGroupUserOutput { + return o +} + +func (o GetGroupUserOutput) ToGetGroupUserOutputWithContext(ctx context.Context) GetGroupUserOutput { + return o +} + +// User ARN. +func (o GetGroupUserOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupUser) string { return v.Arn }).(pulumi.StringOutput) +} + +// Path to the IAM user. +func (o GetGroupUserOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupUser) string { return v.Path }).(pulumi.StringOutput) +} + +// Stable and unique string identifying the IAM user. +func (o GetGroupUserOutput) UserId() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupUser) string { return v.UserId }).(pulumi.StringOutput) +} + +// Name of the IAM user. +func (o GetGroupUserOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupUser) string { return v.UserName }).(pulumi.StringOutput) +} + +type GetGroupUserArrayOutput struct{ *pulumi.OutputState } + +func (GetGroupUserArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetGroupUser)(nil)).Elem() +} + +func (o GetGroupUserArrayOutput) ToGetGroupUserArrayOutput() GetGroupUserArrayOutput { + return o +} + +func (o GetGroupUserArrayOutput) ToGetGroupUserArrayOutputWithContext(ctx context.Context) GetGroupUserArrayOutput { + return o +} + +func (o GetGroupUserArrayOutput) Index(i pulumi.IntInput) GetGroupUserOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetGroupUser { + return vs[0].([]GetGroupUser)[vs[1].(int)] + }).(GetGroupUserOutput) +} + +type GetPolicyDocumentStatement struct { + // List of actions that this statement either allows or denies. For example, `["ec2:RunInstances", "s3:*"]`. + Actions []string `pulumi:"actions"` + // Configuration block for a condition. Detailed below. + Conditions []GetPolicyDocumentStatementCondition `pulumi:"conditions"` + // Whether this statement allows or denies the given actions. Valid values are `Allow` and `Deny`. Defaults to `Allow`. + Effect *string `pulumi:"effect"` + // List of actions that this statement does *not* apply to. Use to apply a policy statement to all actions *except* those listed. + NotActions []string `pulumi:"notActions"` + // Like `principals` except these are principals that the statement does *not* apply to. + NotPrincipals []GetPolicyDocumentStatementNotPrincipal `pulumi:"notPrincipals"` + // List of resource ARNs that this statement does *not* apply to. Use to apply a policy statement to all resources *except* those listed. Conflicts with `resources`. + NotResources []string `pulumi:"notResources"` + // Configuration block for principals. Detailed below. + Principals []GetPolicyDocumentStatementPrincipal `pulumi:"principals"` + // List of resource ARNs that this statement applies to. This is required by AWS if used for an IAM policy. Conflicts with `notResources`. + Resources []string `pulumi:"resources"` + // Sid (statement ID) is an identifier for a policy statement. + Sid *string `pulumi:"sid"` +} + +// GetPolicyDocumentStatementInput is an input type that accepts GetPolicyDocumentStatementArgs and GetPolicyDocumentStatementOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementInput` via: +// +// GetPolicyDocumentStatementArgs{...} +type GetPolicyDocumentStatementInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementOutput() GetPolicyDocumentStatementOutput + ToGetPolicyDocumentStatementOutputWithContext(context.Context) GetPolicyDocumentStatementOutput +} + +type GetPolicyDocumentStatementArgs struct { + // List of actions that this statement either allows or denies. For example, `["ec2:RunInstances", "s3:*"]`. + Actions pulumi.StringArrayInput `pulumi:"actions"` + // Configuration block for a condition. Detailed below. + Conditions GetPolicyDocumentStatementConditionArrayInput `pulumi:"conditions"` + // Whether this statement allows or denies the given actions. Valid values are `Allow` and `Deny`. Defaults to `Allow`. + Effect pulumi.StringPtrInput `pulumi:"effect"` + // List of actions that this statement does *not* apply to. Use to apply a policy statement to all actions *except* those listed. + NotActions pulumi.StringArrayInput `pulumi:"notActions"` + // Like `principals` except these are principals that the statement does *not* apply to. + NotPrincipals GetPolicyDocumentStatementNotPrincipalArrayInput `pulumi:"notPrincipals"` + // List of resource ARNs that this statement does *not* apply to. Use to apply a policy statement to all resources *except* those listed. Conflicts with `resources`. + NotResources pulumi.StringArrayInput `pulumi:"notResources"` + // Configuration block for principals. Detailed below. + Principals GetPolicyDocumentStatementPrincipalArrayInput `pulumi:"principals"` + // List of resource ARNs that this statement applies to. This is required by AWS if used for an IAM policy. Conflicts with `notResources`. + Resources pulumi.StringArrayInput `pulumi:"resources"` + // Sid (statement ID) is an identifier for a policy statement. + Sid pulumi.StringPtrInput `pulumi:"sid"` +} + +func (GetPolicyDocumentStatementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatement)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementArgs) ToGetPolicyDocumentStatementOutput() GetPolicyDocumentStatementOutput { + return i.ToGetPolicyDocumentStatementOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementArgs) ToGetPolicyDocumentStatementOutputWithContext(ctx context.Context) GetPolicyDocumentStatementOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementOutput) +} + +// GetPolicyDocumentStatementArrayInput is an input type that accepts GetPolicyDocumentStatementArray and GetPolicyDocumentStatementArrayOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementArrayInput` via: +// +// GetPolicyDocumentStatementArray{ GetPolicyDocumentStatementArgs{...} } +type GetPolicyDocumentStatementArrayInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementArrayOutput() GetPolicyDocumentStatementArrayOutput + ToGetPolicyDocumentStatementArrayOutputWithContext(context.Context) GetPolicyDocumentStatementArrayOutput +} + +type GetPolicyDocumentStatementArray []GetPolicyDocumentStatementInput + +func (GetPolicyDocumentStatementArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatement)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementArray) ToGetPolicyDocumentStatementArrayOutput() GetPolicyDocumentStatementArrayOutput { + return i.ToGetPolicyDocumentStatementArrayOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementArray) ToGetPolicyDocumentStatementArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementArrayOutput) +} + +type GetPolicyDocumentStatementOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatement)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementOutput) ToGetPolicyDocumentStatementOutput() GetPolicyDocumentStatementOutput { + return o +} + +func (o GetPolicyDocumentStatementOutput) ToGetPolicyDocumentStatementOutputWithContext(ctx context.Context) GetPolicyDocumentStatementOutput { + return o +} + +// List of actions that this statement either allows or denies. For example, `["ec2:RunInstances", "s3:*"]`. +func (o GetPolicyDocumentStatementOutput) Actions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []string { return v.Actions }).(pulumi.StringArrayOutput) +} + +// Configuration block for a condition. Detailed below. +func (o GetPolicyDocumentStatementOutput) Conditions() GetPolicyDocumentStatementConditionArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []GetPolicyDocumentStatementCondition { return v.Conditions }).(GetPolicyDocumentStatementConditionArrayOutput) +} + +// Whether this statement allows or denies the given actions. Valid values are `Allow` and `Deny`. Defaults to `Allow`. +func (o GetPolicyDocumentStatementOutput) Effect() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) *string { return v.Effect }).(pulumi.StringPtrOutput) +} + +// List of actions that this statement does *not* apply to. Use to apply a policy statement to all actions *except* those listed. +func (o GetPolicyDocumentStatementOutput) NotActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []string { return v.NotActions }).(pulumi.StringArrayOutput) +} + +// Like `principals` except these are principals that the statement does *not* apply to. +func (o GetPolicyDocumentStatementOutput) NotPrincipals() GetPolicyDocumentStatementNotPrincipalArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []GetPolicyDocumentStatementNotPrincipal { return v.NotPrincipals }).(GetPolicyDocumentStatementNotPrincipalArrayOutput) +} + +// List of resource ARNs that this statement does *not* apply to. Use to apply a policy statement to all resources *except* those listed. Conflicts with `resources`. +func (o GetPolicyDocumentStatementOutput) NotResources() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []string { return v.NotResources }).(pulumi.StringArrayOutput) +} + +// Configuration block for principals. Detailed below. +func (o GetPolicyDocumentStatementOutput) Principals() GetPolicyDocumentStatementPrincipalArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []GetPolicyDocumentStatementPrincipal { return v.Principals }).(GetPolicyDocumentStatementPrincipalArrayOutput) +} + +// List of resource ARNs that this statement applies to. This is required by AWS if used for an IAM policy. Conflicts with `notResources`. +func (o GetPolicyDocumentStatementOutput) Resources() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) []string { return v.Resources }).(pulumi.StringArrayOutput) +} + +// Sid (statement ID) is an identifier for a policy statement. +func (o GetPolicyDocumentStatementOutput) Sid() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetPolicyDocumentStatement) *string { return v.Sid }).(pulumi.StringPtrOutput) +} + +type GetPolicyDocumentStatementArrayOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatement)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementArrayOutput) ToGetPolicyDocumentStatementArrayOutput() GetPolicyDocumentStatementArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementArrayOutput) ToGetPolicyDocumentStatementArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementArrayOutput) Index(i pulumi.IntInput) GetPolicyDocumentStatementOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPolicyDocumentStatement { + return vs[0].([]GetPolicyDocumentStatement)[vs[1].(int)] + }).(GetPolicyDocumentStatementOutput) +} + +type GetPolicyDocumentStatementCondition struct { + // Name of the [IAM condition operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) to evaluate. + Test string `pulumi:"test"` + // Values to evaluate the condition against. If multiple values are provided, the condition matches if at least one of them applies. That is, AWS evaluates multiple values as though using an "OR" boolean operation. + Values []string `pulumi:"values"` + // Name of a [Context Variable](http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) to apply the condition to. Context variables may either be standard AWS variables starting with `aws:` or service-specific variables prefixed with the service name. + Variable string `pulumi:"variable"` +} + +// GetPolicyDocumentStatementConditionInput is an input type that accepts GetPolicyDocumentStatementConditionArgs and GetPolicyDocumentStatementConditionOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementConditionInput` via: +// +// GetPolicyDocumentStatementConditionArgs{...} +type GetPolicyDocumentStatementConditionInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementConditionOutput() GetPolicyDocumentStatementConditionOutput + ToGetPolicyDocumentStatementConditionOutputWithContext(context.Context) GetPolicyDocumentStatementConditionOutput +} + +type GetPolicyDocumentStatementConditionArgs struct { + // Name of the [IAM condition operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) to evaluate. + Test pulumi.StringInput `pulumi:"test"` + // Values to evaluate the condition against. If multiple values are provided, the condition matches if at least one of them applies. That is, AWS evaluates multiple values as though using an "OR" boolean operation. + Values pulumi.StringArrayInput `pulumi:"values"` + // Name of a [Context Variable](http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) to apply the condition to. Context variables may either be standard AWS variables starting with `aws:` or service-specific variables prefixed with the service name. + Variable pulumi.StringInput `pulumi:"variable"` +} + +func (GetPolicyDocumentStatementConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatementCondition)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementConditionArgs) ToGetPolicyDocumentStatementConditionOutput() GetPolicyDocumentStatementConditionOutput { + return i.ToGetPolicyDocumentStatementConditionOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementConditionArgs) ToGetPolicyDocumentStatementConditionOutputWithContext(ctx context.Context) GetPolicyDocumentStatementConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementConditionOutput) +} + +// GetPolicyDocumentStatementConditionArrayInput is an input type that accepts GetPolicyDocumentStatementConditionArray and GetPolicyDocumentStatementConditionArrayOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementConditionArrayInput` via: +// +// GetPolicyDocumentStatementConditionArray{ GetPolicyDocumentStatementConditionArgs{...} } +type GetPolicyDocumentStatementConditionArrayInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementConditionArrayOutput() GetPolicyDocumentStatementConditionArrayOutput + ToGetPolicyDocumentStatementConditionArrayOutputWithContext(context.Context) GetPolicyDocumentStatementConditionArrayOutput +} + +type GetPolicyDocumentStatementConditionArray []GetPolicyDocumentStatementConditionInput + +func (GetPolicyDocumentStatementConditionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatementCondition)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementConditionArray) ToGetPolicyDocumentStatementConditionArrayOutput() GetPolicyDocumentStatementConditionArrayOutput { + return i.ToGetPolicyDocumentStatementConditionArrayOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementConditionArray) ToGetPolicyDocumentStatementConditionArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementConditionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementConditionArrayOutput) +} + +type GetPolicyDocumentStatementConditionOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatementCondition)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementConditionOutput) ToGetPolicyDocumentStatementConditionOutput() GetPolicyDocumentStatementConditionOutput { + return o +} + +func (o GetPolicyDocumentStatementConditionOutput) ToGetPolicyDocumentStatementConditionOutputWithContext(ctx context.Context) GetPolicyDocumentStatementConditionOutput { + return o +} + +// Name of the [IAM condition operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) to evaluate. +func (o GetPolicyDocumentStatementConditionOutput) Test() pulumi.StringOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementCondition) string { return v.Test }).(pulumi.StringOutput) +} + +// Values to evaluate the condition against. If multiple values are provided, the condition matches if at least one of them applies. That is, AWS evaluates multiple values as though using an "OR" boolean operation. +func (o GetPolicyDocumentStatementConditionOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementCondition) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +// Name of a [Context Variable](http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) to apply the condition to. Context variables may either be standard AWS variables starting with `aws:` or service-specific variables prefixed with the service name. +func (o GetPolicyDocumentStatementConditionOutput) Variable() pulumi.StringOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementCondition) string { return v.Variable }).(pulumi.StringOutput) +} + +type GetPolicyDocumentStatementConditionArrayOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementConditionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatementCondition)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementConditionArrayOutput) ToGetPolicyDocumentStatementConditionArrayOutput() GetPolicyDocumentStatementConditionArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementConditionArrayOutput) ToGetPolicyDocumentStatementConditionArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementConditionArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementConditionArrayOutput) Index(i pulumi.IntInput) GetPolicyDocumentStatementConditionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPolicyDocumentStatementCondition { + return vs[0].([]GetPolicyDocumentStatementCondition)[vs[1].(int)] + }).(GetPolicyDocumentStatementConditionOutput) +} + +type GetPolicyDocumentStatementNotPrincipal struct { + // List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. + Identifiers []string `pulumi:"identifiers"` + // Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. + Type string `pulumi:"type"` +} + +// GetPolicyDocumentStatementNotPrincipalInput is an input type that accepts GetPolicyDocumentStatementNotPrincipalArgs and GetPolicyDocumentStatementNotPrincipalOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementNotPrincipalInput` via: +// +// GetPolicyDocumentStatementNotPrincipalArgs{...} +type GetPolicyDocumentStatementNotPrincipalInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementNotPrincipalOutput() GetPolicyDocumentStatementNotPrincipalOutput + ToGetPolicyDocumentStatementNotPrincipalOutputWithContext(context.Context) GetPolicyDocumentStatementNotPrincipalOutput +} + +type GetPolicyDocumentStatementNotPrincipalArgs struct { + // List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. + Identifiers pulumi.StringArrayInput `pulumi:"identifiers"` + // Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetPolicyDocumentStatementNotPrincipalArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatementNotPrincipal)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementNotPrincipalArgs) ToGetPolicyDocumentStatementNotPrincipalOutput() GetPolicyDocumentStatementNotPrincipalOutput { + return i.ToGetPolicyDocumentStatementNotPrincipalOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementNotPrincipalArgs) ToGetPolicyDocumentStatementNotPrincipalOutputWithContext(ctx context.Context) GetPolicyDocumentStatementNotPrincipalOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementNotPrincipalOutput) +} + +// GetPolicyDocumentStatementNotPrincipalArrayInput is an input type that accepts GetPolicyDocumentStatementNotPrincipalArray and GetPolicyDocumentStatementNotPrincipalArrayOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementNotPrincipalArrayInput` via: +// +// GetPolicyDocumentStatementNotPrincipalArray{ GetPolicyDocumentStatementNotPrincipalArgs{...} } +type GetPolicyDocumentStatementNotPrincipalArrayInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementNotPrincipalArrayOutput() GetPolicyDocumentStatementNotPrincipalArrayOutput + ToGetPolicyDocumentStatementNotPrincipalArrayOutputWithContext(context.Context) GetPolicyDocumentStatementNotPrincipalArrayOutput +} + +type GetPolicyDocumentStatementNotPrincipalArray []GetPolicyDocumentStatementNotPrincipalInput + +func (GetPolicyDocumentStatementNotPrincipalArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatementNotPrincipal)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementNotPrincipalArray) ToGetPolicyDocumentStatementNotPrincipalArrayOutput() GetPolicyDocumentStatementNotPrincipalArrayOutput { + return i.ToGetPolicyDocumentStatementNotPrincipalArrayOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementNotPrincipalArray) ToGetPolicyDocumentStatementNotPrincipalArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementNotPrincipalArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementNotPrincipalArrayOutput) +} + +type GetPolicyDocumentStatementNotPrincipalOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementNotPrincipalOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatementNotPrincipal)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementNotPrincipalOutput) ToGetPolicyDocumentStatementNotPrincipalOutput() GetPolicyDocumentStatementNotPrincipalOutput { + return o +} + +func (o GetPolicyDocumentStatementNotPrincipalOutput) ToGetPolicyDocumentStatementNotPrincipalOutputWithContext(ctx context.Context) GetPolicyDocumentStatementNotPrincipalOutput { + return o +} + +// List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. +func (o GetPolicyDocumentStatementNotPrincipalOutput) Identifiers() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementNotPrincipal) []string { return v.Identifiers }).(pulumi.StringArrayOutput) +} + +// Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. +func (o GetPolicyDocumentStatementNotPrincipalOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementNotPrincipal) string { return v.Type }).(pulumi.StringOutput) +} + +type GetPolicyDocumentStatementNotPrincipalArrayOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementNotPrincipalArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatementNotPrincipal)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementNotPrincipalArrayOutput) ToGetPolicyDocumentStatementNotPrincipalArrayOutput() GetPolicyDocumentStatementNotPrincipalArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementNotPrincipalArrayOutput) ToGetPolicyDocumentStatementNotPrincipalArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementNotPrincipalArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementNotPrincipalArrayOutput) Index(i pulumi.IntInput) GetPolicyDocumentStatementNotPrincipalOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPolicyDocumentStatementNotPrincipal { + return vs[0].([]GetPolicyDocumentStatementNotPrincipal)[vs[1].(int)] + }).(GetPolicyDocumentStatementNotPrincipalOutput) +} + +type GetPolicyDocumentStatementPrincipal struct { + // List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. + Identifiers []string `pulumi:"identifiers"` + // Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. + Type string `pulumi:"type"` +} + +// GetPolicyDocumentStatementPrincipalInput is an input type that accepts GetPolicyDocumentStatementPrincipalArgs and GetPolicyDocumentStatementPrincipalOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementPrincipalInput` via: +// +// GetPolicyDocumentStatementPrincipalArgs{...} +type GetPolicyDocumentStatementPrincipalInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementPrincipalOutput() GetPolicyDocumentStatementPrincipalOutput + ToGetPolicyDocumentStatementPrincipalOutputWithContext(context.Context) GetPolicyDocumentStatementPrincipalOutput +} + +type GetPolicyDocumentStatementPrincipalArgs struct { + // List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. + Identifiers pulumi.StringArrayInput `pulumi:"identifiers"` + // Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (GetPolicyDocumentStatementPrincipalArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatementPrincipal)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementPrincipalArgs) ToGetPolicyDocumentStatementPrincipalOutput() GetPolicyDocumentStatementPrincipalOutput { + return i.ToGetPolicyDocumentStatementPrincipalOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementPrincipalArgs) ToGetPolicyDocumentStatementPrincipalOutputWithContext(ctx context.Context) GetPolicyDocumentStatementPrincipalOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementPrincipalOutput) +} + +// GetPolicyDocumentStatementPrincipalArrayInput is an input type that accepts GetPolicyDocumentStatementPrincipalArray and GetPolicyDocumentStatementPrincipalArrayOutput values. +// You can construct a concrete instance of `GetPolicyDocumentStatementPrincipalArrayInput` via: +// +// GetPolicyDocumentStatementPrincipalArray{ GetPolicyDocumentStatementPrincipalArgs{...} } +type GetPolicyDocumentStatementPrincipalArrayInput interface { + pulumi.Input + + ToGetPolicyDocumentStatementPrincipalArrayOutput() GetPolicyDocumentStatementPrincipalArrayOutput + ToGetPolicyDocumentStatementPrincipalArrayOutputWithContext(context.Context) GetPolicyDocumentStatementPrincipalArrayOutput +} + +type GetPolicyDocumentStatementPrincipalArray []GetPolicyDocumentStatementPrincipalInput + +func (GetPolicyDocumentStatementPrincipalArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatementPrincipal)(nil)).Elem() +} + +func (i GetPolicyDocumentStatementPrincipalArray) ToGetPolicyDocumentStatementPrincipalArrayOutput() GetPolicyDocumentStatementPrincipalArrayOutput { + return i.ToGetPolicyDocumentStatementPrincipalArrayOutputWithContext(context.Background()) +} + +func (i GetPolicyDocumentStatementPrincipalArray) ToGetPolicyDocumentStatementPrincipalArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementPrincipalArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPolicyDocumentStatementPrincipalArrayOutput) +} + +type GetPolicyDocumentStatementPrincipalOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementPrincipalOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPolicyDocumentStatementPrincipal)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementPrincipalOutput) ToGetPolicyDocumentStatementPrincipalOutput() GetPolicyDocumentStatementPrincipalOutput { + return o +} + +func (o GetPolicyDocumentStatementPrincipalOutput) ToGetPolicyDocumentStatementPrincipalOutputWithContext(ctx context.Context) GetPolicyDocumentStatementPrincipalOutput { + return o +} + +// List of identifiers for principals. When `type` is `AWS`, these are IAM principal ARNs, e.g., `arn:aws:iam::12345678901:role/yak-role`. When `type` is `Service`, these are AWS Service roles, e.g., `lambda.amazonaws.com`. When `type` is `Federated`, these are web identity users or SAML provider ARNs, e.g., `accounts.google.com` or `arn:aws:iam::12345678901:saml-provider/yak-saml-provider`. When `type` is `CanonicalUser`, these are [canonical user IDs](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId), e.g., `79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be`. +func (o GetPolicyDocumentStatementPrincipalOutput) Identifiers() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementPrincipal) []string { return v.Identifiers }).(pulumi.StringArrayOutput) +} + +// Type of principal. Valid values include `AWS`, `Service`, `Federated`, `CanonicalUser` and `*`. +func (o GetPolicyDocumentStatementPrincipalOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetPolicyDocumentStatementPrincipal) string { return v.Type }).(pulumi.StringOutput) +} + +type GetPolicyDocumentStatementPrincipalArrayOutput struct{ *pulumi.OutputState } + +func (GetPolicyDocumentStatementPrincipalArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPolicyDocumentStatementPrincipal)(nil)).Elem() +} + +func (o GetPolicyDocumentStatementPrincipalArrayOutput) ToGetPolicyDocumentStatementPrincipalArrayOutput() GetPolicyDocumentStatementPrincipalArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementPrincipalArrayOutput) ToGetPolicyDocumentStatementPrincipalArrayOutputWithContext(ctx context.Context) GetPolicyDocumentStatementPrincipalArrayOutput { + return o +} + +func (o GetPolicyDocumentStatementPrincipalArrayOutput) Index(i pulumi.IntInput) GetPolicyDocumentStatementPrincipalOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPolicyDocumentStatementPrincipal { + return vs[0].([]GetPolicyDocumentStatementPrincipal)[vs[1].(int)] + }).(GetPolicyDocumentStatementPrincipalOutput) +} + +type GetPrincipalPolicySimulationContext struct { + // The context _condition key_ to set. + // + // If you have policies containing `Condition` elements or using dynamic interpolations then you will need to provide suitable values for each condition key your policies use. See [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) to find the various condition keys that are normally provided for real requests to each action of each AWS service. + Key string `pulumi:"key"` + // An IAM value type that determines how the policy simulator will interpret the strings given in `values`. + // + // For more information, see the `ContextKeyType` field of [`iam.ContextEntry`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ContextEntry.html) in the underlying API. + Type string `pulumi:"type"` + // A set of one or more values for this context entry. + Values []string `pulumi:"values"` +} + +// GetPrincipalPolicySimulationContextInput is an input type that accepts GetPrincipalPolicySimulationContextArgs and GetPrincipalPolicySimulationContextOutput values. +// You can construct a concrete instance of `GetPrincipalPolicySimulationContextInput` via: +// +// GetPrincipalPolicySimulationContextArgs{...} +type GetPrincipalPolicySimulationContextInput interface { + pulumi.Input + + ToGetPrincipalPolicySimulationContextOutput() GetPrincipalPolicySimulationContextOutput + ToGetPrincipalPolicySimulationContextOutputWithContext(context.Context) GetPrincipalPolicySimulationContextOutput +} + +type GetPrincipalPolicySimulationContextArgs struct { + // The context _condition key_ to set. + // + // If you have policies containing `Condition` elements or using dynamic interpolations then you will need to provide suitable values for each condition key your policies use. See [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) to find the various condition keys that are normally provided for real requests to each action of each AWS service. + Key pulumi.StringInput `pulumi:"key"` + // An IAM value type that determines how the policy simulator will interpret the strings given in `values`. + // + // For more information, see the `ContextKeyType` field of [`iam.ContextEntry`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ContextEntry.html) in the underlying API. + Type pulumi.StringInput `pulumi:"type"` + // A set of one or more values for this context entry. + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (GetPrincipalPolicySimulationContextArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPrincipalPolicySimulationContext)(nil)).Elem() +} + +func (i GetPrincipalPolicySimulationContextArgs) ToGetPrincipalPolicySimulationContextOutput() GetPrincipalPolicySimulationContextOutput { + return i.ToGetPrincipalPolicySimulationContextOutputWithContext(context.Background()) +} + +func (i GetPrincipalPolicySimulationContextArgs) ToGetPrincipalPolicySimulationContextOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationContextOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPrincipalPolicySimulationContextOutput) +} + +// GetPrincipalPolicySimulationContextArrayInput is an input type that accepts GetPrincipalPolicySimulationContextArray and GetPrincipalPolicySimulationContextArrayOutput values. +// You can construct a concrete instance of `GetPrincipalPolicySimulationContextArrayInput` via: +// +// GetPrincipalPolicySimulationContextArray{ GetPrincipalPolicySimulationContextArgs{...} } +type GetPrincipalPolicySimulationContextArrayInput interface { + pulumi.Input + + ToGetPrincipalPolicySimulationContextArrayOutput() GetPrincipalPolicySimulationContextArrayOutput + ToGetPrincipalPolicySimulationContextArrayOutputWithContext(context.Context) GetPrincipalPolicySimulationContextArrayOutput +} + +type GetPrincipalPolicySimulationContextArray []GetPrincipalPolicySimulationContextInput + +func (GetPrincipalPolicySimulationContextArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPrincipalPolicySimulationContext)(nil)).Elem() +} + +func (i GetPrincipalPolicySimulationContextArray) ToGetPrincipalPolicySimulationContextArrayOutput() GetPrincipalPolicySimulationContextArrayOutput { + return i.ToGetPrincipalPolicySimulationContextArrayOutputWithContext(context.Background()) +} + +func (i GetPrincipalPolicySimulationContextArray) ToGetPrincipalPolicySimulationContextArrayOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationContextArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPrincipalPolicySimulationContextArrayOutput) +} + +type GetPrincipalPolicySimulationContextOutput struct{ *pulumi.OutputState } + +func (GetPrincipalPolicySimulationContextOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPrincipalPolicySimulationContext)(nil)).Elem() +} + +func (o GetPrincipalPolicySimulationContextOutput) ToGetPrincipalPolicySimulationContextOutput() GetPrincipalPolicySimulationContextOutput { + return o +} + +func (o GetPrincipalPolicySimulationContextOutput) ToGetPrincipalPolicySimulationContextOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationContextOutput { + return o +} + +// The context _condition key_ to set. +// +// If you have policies containing `Condition` elements or using dynamic interpolations then you will need to provide suitable values for each condition key your policies use. See [Actions, resources, and condition keys for AWS services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) to find the various condition keys that are normally provided for real requests to each action of each AWS service. +func (o GetPrincipalPolicySimulationContextOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationContext) string { return v.Key }).(pulumi.StringOutput) +} + +// An IAM value type that determines how the policy simulator will interpret the strings given in `values`. +// +// For more information, see the `ContextKeyType` field of [`iam.ContextEntry`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ContextEntry.html) in the underlying API. +func (o GetPrincipalPolicySimulationContextOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationContext) string { return v.Type }).(pulumi.StringOutput) +} + +// A set of one or more values for this context entry. +func (o GetPrincipalPolicySimulationContextOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationContext) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type GetPrincipalPolicySimulationContextArrayOutput struct{ *pulumi.OutputState } + +func (GetPrincipalPolicySimulationContextArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPrincipalPolicySimulationContext)(nil)).Elem() +} + +func (o GetPrincipalPolicySimulationContextArrayOutput) ToGetPrincipalPolicySimulationContextArrayOutput() GetPrincipalPolicySimulationContextArrayOutput { + return o +} + +func (o GetPrincipalPolicySimulationContextArrayOutput) ToGetPrincipalPolicySimulationContextArrayOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationContextArrayOutput { + return o +} + +func (o GetPrincipalPolicySimulationContextArrayOutput) Index(i pulumi.IntInput) GetPrincipalPolicySimulationContextOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPrincipalPolicySimulationContext { + return vs[0].([]GetPrincipalPolicySimulationContext)[vs[1].(int)] + }).(GetPrincipalPolicySimulationContextOutput) +} + +type GetPrincipalPolicySimulationResult struct { + // The name of the single IAM action used for this particular request. + ActionName string `pulumi:"actionName"` + // `true` if `decision` is "allowed", and `false` otherwise. + Allowed bool `pulumi:"allowed"` + // The raw decision determined from all of the policies in scope; either "allowed", "explicitDeny", or "implicitDeny". + Decision string `pulumi:"decision"` + // A map of arbitrary metadata entries returned by the policy simulator for this request. + DecisionDetails map[string]string `pulumi:"decisionDetails"` + // A nested set of objects describing which policies contained statements that were relevant to this simulation request. Each object has attributes `sourcePolicyId` and `sourcePolicyType` to identify one of the policies. + MatchedStatements []GetPrincipalPolicySimulationResultMatchedStatement `pulumi:"matchedStatements"` + // A set of context keys (or condition keys) that were needed by some of the policies contributing to this result but not specified using a `context` block in the configuration. Missing or incorrect context keys will typically cause a simulated request to be disallowed. + MissingContextKeys []string `pulumi:"missingContextKeys"` + // ARN of the resource that was used for this particular request. When you specify multiple actions and multiple resource ARNs, that causes a separate policy request for each combination of unique action and resource. + ResourceArn string `pulumi:"resourceArn"` +} + +// GetPrincipalPolicySimulationResultInput is an input type that accepts GetPrincipalPolicySimulationResultArgs and GetPrincipalPolicySimulationResultOutput values. +// You can construct a concrete instance of `GetPrincipalPolicySimulationResultInput` via: +// +// GetPrincipalPolicySimulationResultArgs{...} +type GetPrincipalPolicySimulationResultInput interface { + pulumi.Input + + ToGetPrincipalPolicySimulationResultOutput() GetPrincipalPolicySimulationResultOutput + ToGetPrincipalPolicySimulationResultOutputWithContext(context.Context) GetPrincipalPolicySimulationResultOutput +} + +type GetPrincipalPolicySimulationResultArgs struct { + // The name of the single IAM action used for this particular request. + ActionName pulumi.StringInput `pulumi:"actionName"` + // `true` if `decision` is "allowed", and `false` otherwise. + Allowed pulumi.BoolInput `pulumi:"allowed"` + // The raw decision determined from all of the policies in scope; either "allowed", "explicitDeny", or "implicitDeny". + Decision pulumi.StringInput `pulumi:"decision"` + // A map of arbitrary metadata entries returned by the policy simulator for this request. + DecisionDetails pulumi.StringMapInput `pulumi:"decisionDetails"` + // A nested set of objects describing which policies contained statements that were relevant to this simulation request. Each object has attributes `sourcePolicyId` and `sourcePolicyType` to identify one of the policies. + MatchedStatements GetPrincipalPolicySimulationResultMatchedStatementArrayInput `pulumi:"matchedStatements"` + // A set of context keys (or condition keys) that were needed by some of the policies contributing to this result but not specified using a `context` block in the configuration. Missing or incorrect context keys will typically cause a simulated request to be disallowed. + MissingContextKeys pulumi.StringArrayInput `pulumi:"missingContextKeys"` + // ARN of the resource that was used for this particular request. When you specify multiple actions and multiple resource ARNs, that causes a separate policy request for each combination of unique action and resource. + ResourceArn pulumi.StringInput `pulumi:"resourceArn"` +} + +func (GetPrincipalPolicySimulationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPrincipalPolicySimulationResult)(nil)).Elem() +} + +func (i GetPrincipalPolicySimulationResultArgs) ToGetPrincipalPolicySimulationResultOutput() GetPrincipalPolicySimulationResultOutput { + return i.ToGetPrincipalPolicySimulationResultOutputWithContext(context.Background()) +} + +func (i GetPrincipalPolicySimulationResultArgs) ToGetPrincipalPolicySimulationResultOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPrincipalPolicySimulationResultOutput) +} + +// GetPrincipalPolicySimulationResultArrayInput is an input type that accepts GetPrincipalPolicySimulationResultArray and GetPrincipalPolicySimulationResultArrayOutput values. +// You can construct a concrete instance of `GetPrincipalPolicySimulationResultArrayInput` via: +// +// GetPrincipalPolicySimulationResultArray{ GetPrincipalPolicySimulationResultArgs{...} } +type GetPrincipalPolicySimulationResultArrayInput interface { + pulumi.Input + + ToGetPrincipalPolicySimulationResultArrayOutput() GetPrincipalPolicySimulationResultArrayOutput + ToGetPrincipalPolicySimulationResultArrayOutputWithContext(context.Context) GetPrincipalPolicySimulationResultArrayOutput +} + +type GetPrincipalPolicySimulationResultArray []GetPrincipalPolicySimulationResultInput + +func (GetPrincipalPolicySimulationResultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPrincipalPolicySimulationResult)(nil)).Elem() +} + +func (i GetPrincipalPolicySimulationResultArray) ToGetPrincipalPolicySimulationResultArrayOutput() GetPrincipalPolicySimulationResultArrayOutput { + return i.ToGetPrincipalPolicySimulationResultArrayOutputWithContext(context.Background()) +} + +func (i GetPrincipalPolicySimulationResultArray) ToGetPrincipalPolicySimulationResultArrayOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPrincipalPolicySimulationResultArrayOutput) +} + +type GetPrincipalPolicySimulationResultOutput struct{ *pulumi.OutputState } + +func (GetPrincipalPolicySimulationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPrincipalPolicySimulationResult)(nil)).Elem() +} + +func (o GetPrincipalPolicySimulationResultOutput) ToGetPrincipalPolicySimulationResultOutput() GetPrincipalPolicySimulationResultOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultOutput) ToGetPrincipalPolicySimulationResultOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultOutput { + return o +} + +// The name of the single IAM action used for this particular request. +func (o GetPrincipalPolicySimulationResultOutput) ActionName() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) string { return v.ActionName }).(pulumi.StringOutput) +} + +// `true` if `decision` is "allowed", and `false` otherwise. +func (o GetPrincipalPolicySimulationResultOutput) Allowed() pulumi.BoolOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) bool { return v.Allowed }).(pulumi.BoolOutput) +} + +// The raw decision determined from all of the policies in scope; either "allowed", "explicitDeny", or "implicitDeny". +func (o GetPrincipalPolicySimulationResultOutput) Decision() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) string { return v.Decision }).(pulumi.StringOutput) +} + +// A map of arbitrary metadata entries returned by the policy simulator for this request. +func (o GetPrincipalPolicySimulationResultOutput) DecisionDetails() pulumi.StringMapOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) map[string]string { return v.DecisionDetails }).(pulumi.StringMapOutput) +} + +// A nested set of objects describing which policies contained statements that were relevant to this simulation request. Each object has attributes `sourcePolicyId` and `sourcePolicyType` to identify one of the policies. +func (o GetPrincipalPolicySimulationResultOutput) MatchedStatements() GetPrincipalPolicySimulationResultMatchedStatementArrayOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) []GetPrincipalPolicySimulationResultMatchedStatement { + return v.MatchedStatements + }).(GetPrincipalPolicySimulationResultMatchedStatementArrayOutput) +} + +// A set of context keys (or condition keys) that were needed by some of the policies contributing to this result but not specified using a `context` block in the configuration. Missing or incorrect context keys will typically cause a simulated request to be disallowed. +func (o GetPrincipalPolicySimulationResultOutput) MissingContextKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) []string { return v.MissingContextKeys }).(pulumi.StringArrayOutput) +} + +// ARN of the resource that was used for this particular request. When you specify multiple actions and multiple resource ARNs, that causes a separate policy request for each combination of unique action and resource. +func (o GetPrincipalPolicySimulationResultOutput) ResourceArn() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResult) string { return v.ResourceArn }).(pulumi.StringOutput) +} + +type GetPrincipalPolicySimulationResultArrayOutput struct{ *pulumi.OutputState } + +func (GetPrincipalPolicySimulationResultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPrincipalPolicySimulationResult)(nil)).Elem() +} + +func (o GetPrincipalPolicySimulationResultArrayOutput) ToGetPrincipalPolicySimulationResultArrayOutput() GetPrincipalPolicySimulationResultArrayOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultArrayOutput) ToGetPrincipalPolicySimulationResultArrayOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultArrayOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultArrayOutput) Index(i pulumi.IntInput) GetPrincipalPolicySimulationResultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPrincipalPolicySimulationResult { + return vs[0].([]GetPrincipalPolicySimulationResult)[vs[1].(int)] + }).(GetPrincipalPolicySimulationResultOutput) +} + +type GetPrincipalPolicySimulationResultMatchedStatement struct { + SourcePolicyId string `pulumi:"sourcePolicyId"` + SourcePolicyType string `pulumi:"sourcePolicyType"` +} + +// GetPrincipalPolicySimulationResultMatchedStatementInput is an input type that accepts GetPrincipalPolicySimulationResultMatchedStatementArgs and GetPrincipalPolicySimulationResultMatchedStatementOutput values. +// You can construct a concrete instance of `GetPrincipalPolicySimulationResultMatchedStatementInput` via: +// +// GetPrincipalPolicySimulationResultMatchedStatementArgs{...} +type GetPrincipalPolicySimulationResultMatchedStatementInput interface { + pulumi.Input + + ToGetPrincipalPolicySimulationResultMatchedStatementOutput() GetPrincipalPolicySimulationResultMatchedStatementOutput + ToGetPrincipalPolicySimulationResultMatchedStatementOutputWithContext(context.Context) GetPrincipalPolicySimulationResultMatchedStatementOutput +} + +type GetPrincipalPolicySimulationResultMatchedStatementArgs struct { + SourcePolicyId pulumi.StringInput `pulumi:"sourcePolicyId"` + SourcePolicyType pulumi.StringInput `pulumi:"sourcePolicyType"` +} + +func (GetPrincipalPolicySimulationResultMatchedStatementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetPrincipalPolicySimulationResultMatchedStatement)(nil)).Elem() +} + +func (i GetPrincipalPolicySimulationResultMatchedStatementArgs) ToGetPrincipalPolicySimulationResultMatchedStatementOutput() GetPrincipalPolicySimulationResultMatchedStatementOutput { + return i.ToGetPrincipalPolicySimulationResultMatchedStatementOutputWithContext(context.Background()) +} + +func (i GetPrincipalPolicySimulationResultMatchedStatementArgs) ToGetPrincipalPolicySimulationResultMatchedStatementOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultMatchedStatementOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPrincipalPolicySimulationResultMatchedStatementOutput) +} + +// GetPrincipalPolicySimulationResultMatchedStatementArrayInput is an input type that accepts GetPrincipalPolicySimulationResultMatchedStatementArray and GetPrincipalPolicySimulationResultMatchedStatementArrayOutput values. +// You can construct a concrete instance of `GetPrincipalPolicySimulationResultMatchedStatementArrayInput` via: +// +// GetPrincipalPolicySimulationResultMatchedStatementArray{ GetPrincipalPolicySimulationResultMatchedStatementArgs{...} } +type GetPrincipalPolicySimulationResultMatchedStatementArrayInput interface { + pulumi.Input + + ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutput() GetPrincipalPolicySimulationResultMatchedStatementArrayOutput + ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutputWithContext(context.Context) GetPrincipalPolicySimulationResultMatchedStatementArrayOutput +} + +type GetPrincipalPolicySimulationResultMatchedStatementArray []GetPrincipalPolicySimulationResultMatchedStatementInput + +func (GetPrincipalPolicySimulationResultMatchedStatementArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPrincipalPolicySimulationResultMatchedStatement)(nil)).Elem() +} + +func (i GetPrincipalPolicySimulationResultMatchedStatementArray) ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutput() GetPrincipalPolicySimulationResultMatchedStatementArrayOutput { + return i.ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutputWithContext(context.Background()) +} + +func (i GetPrincipalPolicySimulationResultMatchedStatementArray) ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultMatchedStatementArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetPrincipalPolicySimulationResultMatchedStatementArrayOutput) +} + +type GetPrincipalPolicySimulationResultMatchedStatementOutput struct{ *pulumi.OutputState } + +func (GetPrincipalPolicySimulationResultMatchedStatementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetPrincipalPolicySimulationResultMatchedStatement)(nil)).Elem() +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementOutput) ToGetPrincipalPolicySimulationResultMatchedStatementOutput() GetPrincipalPolicySimulationResultMatchedStatementOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementOutput) ToGetPrincipalPolicySimulationResultMatchedStatementOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultMatchedStatementOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementOutput) SourcePolicyId() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResultMatchedStatement) string { return v.SourcePolicyId }).(pulumi.StringOutput) +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementOutput) SourcePolicyType() pulumi.StringOutput { + return o.ApplyT(func(v GetPrincipalPolicySimulationResultMatchedStatement) string { return v.SourcePolicyType }).(pulumi.StringOutput) +} + +type GetPrincipalPolicySimulationResultMatchedStatementArrayOutput struct{ *pulumi.OutputState } + +func (GetPrincipalPolicySimulationResultMatchedStatementArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetPrincipalPolicySimulationResultMatchedStatement)(nil)).Elem() +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementArrayOutput) ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutput() GetPrincipalPolicySimulationResultMatchedStatementArrayOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementArrayOutput) ToGetPrincipalPolicySimulationResultMatchedStatementArrayOutputWithContext(ctx context.Context) GetPrincipalPolicySimulationResultMatchedStatementArrayOutput { + return o +} + +func (o GetPrincipalPolicySimulationResultMatchedStatementArrayOutput) Index(i pulumi.IntInput) GetPrincipalPolicySimulationResultMatchedStatementOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetPrincipalPolicySimulationResultMatchedStatement { + return vs[0].([]GetPrincipalPolicySimulationResultMatchedStatement)[vs[1].(int)] + }).(GetPrincipalPolicySimulationResultMatchedStatementOutput) +} + +type GetRoleRoleLastUsed struct { + // The date and time, in RFC 3339 format, that the role was last used. + LastUsedDate string `pulumi:"lastUsedDate"` + // The name of the AWS Region in which the role was last used. + Region string `pulumi:"region"` +} + +// GetRoleRoleLastUsedInput is an input type that accepts GetRoleRoleLastUsedArgs and GetRoleRoleLastUsedOutput values. +// You can construct a concrete instance of `GetRoleRoleLastUsedInput` via: +// +// GetRoleRoleLastUsedArgs{...} +type GetRoleRoleLastUsedInput interface { + pulumi.Input + + ToGetRoleRoleLastUsedOutput() GetRoleRoleLastUsedOutput + ToGetRoleRoleLastUsedOutputWithContext(context.Context) GetRoleRoleLastUsedOutput +} + +type GetRoleRoleLastUsedArgs struct { + // The date and time, in RFC 3339 format, that the role was last used. + LastUsedDate pulumi.StringInput `pulumi:"lastUsedDate"` + // The name of the AWS Region in which the role was last used. + Region pulumi.StringInput `pulumi:"region"` +} + +func (GetRoleRoleLastUsedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetRoleRoleLastUsed)(nil)).Elem() +} + +func (i GetRoleRoleLastUsedArgs) ToGetRoleRoleLastUsedOutput() GetRoleRoleLastUsedOutput { + return i.ToGetRoleRoleLastUsedOutputWithContext(context.Background()) +} + +func (i GetRoleRoleLastUsedArgs) ToGetRoleRoleLastUsedOutputWithContext(ctx context.Context) GetRoleRoleLastUsedOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRoleRoleLastUsedOutput) +} + +// GetRoleRoleLastUsedArrayInput is an input type that accepts GetRoleRoleLastUsedArray and GetRoleRoleLastUsedArrayOutput values. +// You can construct a concrete instance of `GetRoleRoleLastUsedArrayInput` via: +// +// GetRoleRoleLastUsedArray{ GetRoleRoleLastUsedArgs{...} } +type GetRoleRoleLastUsedArrayInput interface { + pulumi.Input + + ToGetRoleRoleLastUsedArrayOutput() GetRoleRoleLastUsedArrayOutput + ToGetRoleRoleLastUsedArrayOutputWithContext(context.Context) GetRoleRoleLastUsedArrayOutput +} + +type GetRoleRoleLastUsedArray []GetRoleRoleLastUsedInput + +func (GetRoleRoleLastUsedArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRoleRoleLastUsed)(nil)).Elem() +} + +func (i GetRoleRoleLastUsedArray) ToGetRoleRoleLastUsedArrayOutput() GetRoleRoleLastUsedArrayOutput { + return i.ToGetRoleRoleLastUsedArrayOutputWithContext(context.Background()) +} + +func (i GetRoleRoleLastUsedArray) ToGetRoleRoleLastUsedArrayOutputWithContext(ctx context.Context) GetRoleRoleLastUsedArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetRoleRoleLastUsedArrayOutput) +} + +type GetRoleRoleLastUsedOutput struct{ *pulumi.OutputState } + +func (GetRoleRoleLastUsedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetRoleRoleLastUsed)(nil)).Elem() +} + +func (o GetRoleRoleLastUsedOutput) ToGetRoleRoleLastUsedOutput() GetRoleRoleLastUsedOutput { + return o +} + +func (o GetRoleRoleLastUsedOutput) ToGetRoleRoleLastUsedOutputWithContext(ctx context.Context) GetRoleRoleLastUsedOutput { + return o +} + +// The date and time, in RFC 3339 format, that the role was last used. +func (o GetRoleRoleLastUsedOutput) LastUsedDate() pulumi.StringOutput { + return o.ApplyT(func(v GetRoleRoleLastUsed) string { return v.LastUsedDate }).(pulumi.StringOutput) +} + +// The name of the AWS Region in which the role was last used. +func (o GetRoleRoleLastUsedOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetRoleRoleLastUsed) string { return v.Region }).(pulumi.StringOutput) +} + +type GetRoleRoleLastUsedArrayOutput struct{ *pulumi.OutputState } + +func (GetRoleRoleLastUsedArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetRoleRoleLastUsed)(nil)).Elem() +} + +func (o GetRoleRoleLastUsedArrayOutput) ToGetRoleRoleLastUsedArrayOutput() GetRoleRoleLastUsedArrayOutput { + return o +} + +func (o GetRoleRoleLastUsedArrayOutput) ToGetRoleRoleLastUsedArrayOutputWithContext(ctx context.Context) GetRoleRoleLastUsedArrayOutput { + return o +} + +func (o GetRoleRoleLastUsedArrayOutput) Index(i pulumi.IntInput) GetRoleRoleLastUsedOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetRoleRoleLastUsed { + return vs[0].([]GetRoleRoleLastUsed)[vs[1].(int)] + }).(GetRoleRoleLastUsedOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RoleInlinePolicyInput)(nil)).Elem(), RoleInlinePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleInlinePolicyArrayInput)(nil)).Elem(), RoleInlinePolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetAccessKeysAccessKeyInput)(nil)).Elem(), GetAccessKeysAccessKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetAccessKeysAccessKeyArrayInput)(nil)).Elem(), GetAccessKeysAccessKeyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetGroupUserInput)(nil)).Elem(), GetGroupUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetGroupUserArrayInput)(nil)).Elem(), GetGroupUserArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementInput)(nil)).Elem(), GetPolicyDocumentStatementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementArrayInput)(nil)).Elem(), GetPolicyDocumentStatementArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementConditionInput)(nil)).Elem(), GetPolicyDocumentStatementConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementConditionArrayInput)(nil)).Elem(), GetPolicyDocumentStatementConditionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementNotPrincipalInput)(nil)).Elem(), GetPolicyDocumentStatementNotPrincipalArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementNotPrincipalArrayInput)(nil)).Elem(), GetPolicyDocumentStatementNotPrincipalArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementPrincipalInput)(nil)).Elem(), GetPolicyDocumentStatementPrincipalArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPolicyDocumentStatementPrincipalArrayInput)(nil)).Elem(), GetPolicyDocumentStatementPrincipalArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPrincipalPolicySimulationContextInput)(nil)).Elem(), GetPrincipalPolicySimulationContextArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPrincipalPolicySimulationContextArrayInput)(nil)).Elem(), GetPrincipalPolicySimulationContextArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPrincipalPolicySimulationResultInput)(nil)).Elem(), GetPrincipalPolicySimulationResultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPrincipalPolicySimulationResultArrayInput)(nil)).Elem(), GetPrincipalPolicySimulationResultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPrincipalPolicySimulationResultMatchedStatementInput)(nil)).Elem(), GetPrincipalPolicySimulationResultMatchedStatementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetPrincipalPolicySimulationResultMatchedStatementArrayInput)(nil)).Elem(), GetPrincipalPolicySimulationResultMatchedStatementArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRoleRoleLastUsedInput)(nil)).Elem(), GetRoleRoleLastUsedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetRoleRoleLastUsedArrayInput)(nil)).Elem(), GetRoleRoleLastUsedArray{}) + pulumi.RegisterOutputType(RoleInlinePolicyOutput{}) + pulumi.RegisterOutputType(RoleInlinePolicyArrayOutput{}) + pulumi.RegisterOutputType(GetAccessKeysAccessKeyOutput{}) + pulumi.RegisterOutputType(GetAccessKeysAccessKeyArrayOutput{}) + pulumi.RegisterOutputType(GetGroupUserOutput{}) + pulumi.RegisterOutputType(GetGroupUserArrayOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementArrayOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementConditionOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementConditionArrayOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementNotPrincipalOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementNotPrincipalArrayOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementPrincipalOutput{}) + pulumi.RegisterOutputType(GetPolicyDocumentStatementPrincipalArrayOutput{}) + pulumi.RegisterOutputType(GetPrincipalPolicySimulationContextOutput{}) + pulumi.RegisterOutputType(GetPrincipalPolicySimulationContextArrayOutput{}) + pulumi.RegisterOutputType(GetPrincipalPolicySimulationResultOutput{}) + pulumi.RegisterOutputType(GetPrincipalPolicySimulationResultArrayOutput{}) + pulumi.RegisterOutputType(GetPrincipalPolicySimulationResultMatchedStatementOutput{}) + pulumi.RegisterOutputType(GetPrincipalPolicySimulationResultMatchedStatementArrayOutput{}) + pulumi.RegisterOutputType(GetRoleRoleLastUsedOutput{}) + pulumi.RegisterOutputType(GetRoleRoleLastUsedArrayOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/role.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/role.go new file mode 100644 index 000000000..8f980b86f --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/role.go @@ -0,0 +1,759 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM role. +// +// > **NOTE:** If policies are attached to the role via the `iam.PolicyAttachment` resource and you are modifying the role `name` or `path`, the `forceDetachPolicies` argument must be set to `true` and applied before attempting the operation otherwise you will encounter a `DeleteConflict` error. The `iam.RolePolicyAttachment` resource (recommended) does not have this requirement. +// +// > **NOTE:** If you use this resource's `managedPolicyArns` argument or `inlinePolicy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `iam.PolicyAttachment`, `iam.RolePolicyAttachment`, and `iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors. +// +// ## Example Usage +// ### Basic Example +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": "sts:AssumeRole", +// "Effect": "Allow", +// "Sid": "", +// "Principal": map[string]interface{}{ +// "Service": "ec2.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = iam.NewRole(ctx, "testRole", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.String(json0), +// Tags: pulumi.StringMap{ +// "tag-key": pulumi.String("tag-value"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example of Using Data Source for Assume Role Policy +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// instanceAssumeRolePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "sts:AssumeRole", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "ec2.amazonaws.com", +// }, +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = iam.NewRole(ctx, "instance", &iam.RoleArgs{ +// Path: pulumi.String("/system/"), +// AssumeRolePolicy: *pulumi.String(instanceAssumeRolePolicy.Json), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example of Exclusive Inline Policies +// +// This example creates an IAM role with two inline IAM policies. If someone adds another inline policy out-of-band, on the next apply, this provider will remove that policy. If someone deletes these policies out-of-band, this provider will recreate them. +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// inlinePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Actions: []string{ +// "ec2:DescribeAccountAttributes", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "ec2:Describe*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = iam.NewRole(ctx, "example", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("my_inline_policy"), +// Policy: pulumi.String(json0), +// }, +// &iam.RoleInlinePolicyArgs{ +// Name: pulumi.String("policy-8675309"), +// Policy: *pulumi.String(inlinePolicy.Json), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example of Removing Inline Policies +// +// This example creates an IAM role with what appears to be empty IAM `inlinePolicy` argument instead of using `inlinePolicy` as a configuration block. The result is that if someone were to add an inline policy out-of-band, on the next apply, this provider will remove that policy. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json), +// InlinePolicies: iam.RoleInlinePolicyArray{ +// nil, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example of Exclusive Managed Policies +// +// This example creates an IAM role and attaches two managed IAM policies. If someone attaches another managed policy out-of-band, on the next apply, this provider will detach that policy. If someone detaches these policies out-of-band, this provider will attach them again. +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "ec2:Describe*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// policyOne, err := iam.NewPolicy(ctx, "policyOne", &iam.PolicyArgs{ +// Policy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "s3:ListAllMyBuckets", +// "s3:ListBucket", +// "s3:HeadBucket", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json1 := string(tmpJSON1) +// policyTwo, err := iam.NewPolicy(ctx, "policyTwo", &iam.PolicyArgs{ +// Policy: pulumi.String(json1), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRole(ctx, "example", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json), +// ManagedPolicyArns: pulumi.StringArray{ +// policyOne.Arn, +// policyTwo.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Example of Removing Managed Policies +// +// This example creates an IAM role with an empty `managedPolicyArns` argument. If someone attaches a policy out-of-band, on the next apply, this provider will detach that policy. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json), +// ManagedPolicyArns: pulumi.StringArray{}, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Roles using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/role:Role developer developer_name +// +// ``` +type Role struct { + pulumi.CustomResourceState + + // Amazon Resource Name (ARN) specifying the role. + Arn pulumi.StringOutput `pulumi:"arn"` + // Policy that grants an entity permission to assume the role. + // + // > **NOTE:** The `assumeRolePolicy` is very similar to but slightly different than a standard IAM policy and cannot use an `iam.Policy` resource. However, it _can_ use an `iam.getPolicyDocument` data source. See the example above of how this works. + // + // The following arguments are optional: + AssumeRolePolicy pulumi.StringOutput `pulumi:"assumeRolePolicy"` + // Creation date of the IAM role. + CreateDate pulumi.StringOutput `pulumi:"createDate"` + // Description of the role. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies pulumi.BoolPtrOutput `pulumi:"forceDetachPolicies"` + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inlinePolicy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies RoleInlinePolicyArrayOutput `pulumi:"inlinePolicies"` + ManagedPolicyArns pulumi.StringArrayOutput `pulumi:"managedPolicyArns"` + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration pulumi.IntPtrOutput `pulumi:"maxSessionDuration"` + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrOutput `pulumi:"path"` + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary pulumi.StringPtrOutput `pulumi:"permissionsBoundary"` + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Stable and unique string identifying the role. + UniqueId pulumi.StringOutput `pulumi:"uniqueId"` +} + +// NewRole registers a new resource with the given unique name, arguments, and options. +func NewRole(ctx *pulumi.Context, + name string, args *RoleArgs, opts ...pulumi.ResourceOption) (*Role, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AssumeRolePolicy == nil { + return nil, errors.New("invalid value for required argument 'AssumeRolePolicy'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Role + err := ctx.RegisterResource("aws:iam/role:Role", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRole gets an existing Role resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRole(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RoleState, opts ...pulumi.ResourceOption) (*Role, error) { + var resource Role + err := ctx.ReadResource("aws:iam/role:Role", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Role resources. +type roleState struct { + // Amazon Resource Name (ARN) specifying the role. + Arn *string `pulumi:"arn"` + // Policy that grants an entity permission to assume the role. + // + // > **NOTE:** The `assumeRolePolicy` is very similar to but slightly different than a standard IAM policy and cannot use an `iam.Policy` resource. However, it _can_ use an `iam.getPolicyDocument` data source. See the example above of how this works. + // + // The following arguments are optional: + AssumeRolePolicy interface{} `pulumi:"assumeRolePolicy"` + // Creation date of the IAM role. + CreateDate *string `pulumi:"createDate"` + // Description of the role. + Description *string `pulumi:"description"` + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies *bool `pulumi:"forceDetachPolicies"` + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inlinePolicy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies []RoleInlinePolicy `pulumi:"inlinePolicies"` + ManagedPolicyArns []string `pulumi:"managedPolicyArns"` + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration *int `pulumi:"maxSessionDuration"` + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name *string `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path *string `pulumi:"path"` + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary *string `pulumi:"permissionsBoundary"` + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Stable and unique string identifying the role. + UniqueId *string `pulumi:"uniqueId"` +} + +type RoleState struct { + // Amazon Resource Name (ARN) specifying the role. + Arn pulumi.StringPtrInput + // Policy that grants an entity permission to assume the role. + // + // > **NOTE:** The `assumeRolePolicy` is very similar to but slightly different than a standard IAM policy and cannot use an `iam.Policy` resource. However, it _can_ use an `iam.getPolicyDocument` data source. See the example above of how this works. + // + // The following arguments are optional: + AssumeRolePolicy pulumi.Input + // Creation date of the IAM role. + CreateDate pulumi.StringPtrInput + // Description of the role. + Description pulumi.StringPtrInput + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies pulumi.BoolPtrInput + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inlinePolicy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies RoleInlinePolicyArrayInput + ManagedPolicyArns pulumi.StringArrayInput + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration pulumi.IntPtrInput + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name pulumi.StringPtrInput + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrInput + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary pulumi.StringPtrInput + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Stable and unique string identifying the role. + UniqueId pulumi.StringPtrInput +} + +func (RoleState) ElementType() reflect.Type { + return reflect.TypeOf((*roleState)(nil)).Elem() +} + +type roleArgs struct { + // Policy that grants an entity permission to assume the role. + // + // > **NOTE:** The `assumeRolePolicy` is very similar to but slightly different than a standard IAM policy and cannot use an `iam.Policy` resource. However, it _can_ use an `iam.getPolicyDocument` data source. See the example above of how this works. + // + // The following arguments are optional: + AssumeRolePolicy interface{} `pulumi:"assumeRolePolicy"` + // Description of the role. + Description *string `pulumi:"description"` + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies *bool `pulumi:"forceDetachPolicies"` + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inlinePolicy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies []RoleInlinePolicy `pulumi:"inlinePolicies"` + ManagedPolicyArns []string `pulumi:"managedPolicyArns"` + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration *int `pulumi:"maxSessionDuration"` + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name *string `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path *string `pulumi:"path"` + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary *string `pulumi:"permissionsBoundary"` + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a Role resource. +type RoleArgs struct { + // Policy that grants an entity permission to assume the role. + // + // > **NOTE:** The `assumeRolePolicy` is very similar to but slightly different than a standard IAM policy and cannot use an `iam.Policy` resource. However, it _can_ use an `iam.getPolicyDocument` data source. See the example above of how this works. + // + // The following arguments are optional: + AssumeRolePolicy pulumi.Input + // Description of the role. + Description pulumi.StringPtrInput + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies pulumi.BoolPtrInput + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inlinePolicy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies RoleInlinePolicyArrayInput + ManagedPolicyArns pulumi.StringArrayInput + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration pulumi.IntPtrInput + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name pulumi.StringPtrInput + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrInput + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary pulumi.StringPtrInput + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (RoleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*roleArgs)(nil)).Elem() +} + +type RoleInput interface { + pulumi.Input + + ToRoleOutput() RoleOutput + ToRoleOutputWithContext(ctx context.Context) RoleOutput +} + +func (*Role) ElementType() reflect.Type { + return reflect.TypeOf((**Role)(nil)).Elem() +} + +func (i *Role) ToRoleOutput() RoleOutput { + return i.ToRoleOutputWithContext(context.Background()) +} + +func (i *Role) ToRoleOutputWithContext(ctx context.Context) RoleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleOutput) +} + +// RoleArrayInput is an input type that accepts RoleArray and RoleArrayOutput values. +// You can construct a concrete instance of `RoleArrayInput` via: +// +// RoleArray{ RoleArgs{...} } +type RoleArrayInput interface { + pulumi.Input + + ToRoleArrayOutput() RoleArrayOutput + ToRoleArrayOutputWithContext(context.Context) RoleArrayOutput +} + +type RoleArray []RoleInput + +func (RoleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Role)(nil)).Elem() +} + +func (i RoleArray) ToRoleArrayOutput() RoleArrayOutput { + return i.ToRoleArrayOutputWithContext(context.Background()) +} + +func (i RoleArray) ToRoleArrayOutputWithContext(ctx context.Context) RoleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleArrayOutput) +} + +// RoleMapInput is an input type that accepts RoleMap and RoleMapOutput values. +// You can construct a concrete instance of `RoleMapInput` via: +// +// RoleMap{ "key": RoleArgs{...} } +type RoleMapInput interface { + pulumi.Input + + ToRoleMapOutput() RoleMapOutput + ToRoleMapOutputWithContext(context.Context) RoleMapOutput +} + +type RoleMap map[string]RoleInput + +func (RoleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Role)(nil)).Elem() +} + +func (i RoleMap) ToRoleMapOutput() RoleMapOutput { + return i.ToRoleMapOutputWithContext(context.Background()) +} + +func (i RoleMap) ToRoleMapOutputWithContext(ctx context.Context) RoleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleMapOutput) +} + +type RoleOutput struct{ *pulumi.OutputState } + +func (RoleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Role)(nil)).Elem() +} + +func (o RoleOutput) ToRoleOutput() RoleOutput { + return o +} + +func (o RoleOutput) ToRoleOutputWithContext(ctx context.Context) RoleOutput { + return o +} + +// Amazon Resource Name (ARN) specifying the role. +func (o RoleOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Role) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Policy that grants an entity permission to assume the role. +// +// > **NOTE:** The `assumeRolePolicy` is very similar to but slightly different than a standard IAM policy and cannot use an `iam.Policy` resource. However, it _can_ use an `iam.getPolicyDocument` data source. See the example above of how this works. +// +// The following arguments are optional: +func (o RoleOutput) AssumeRolePolicy() pulumi.StringOutput { + return o.ApplyT(func(v *Role) pulumi.StringOutput { return v.AssumeRolePolicy }).(pulumi.StringOutput) +} + +// Creation date of the IAM role. +func (o RoleOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v *Role) pulumi.StringOutput { return v.CreateDate }).(pulumi.StringOutput) +} + +// Description of the role. +func (o RoleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Role) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Whether to force detaching any policies the role has before destroying it. Defaults to `false`. +func (o RoleOutput) ForceDetachPolicies() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Role) pulumi.BoolPtrOutput { return v.ForceDetachPolicies }).(pulumi.BoolPtrOutput) +} + +// Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inlinePolicy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. +func (o RoleOutput) InlinePolicies() RoleInlinePolicyArrayOutput { + return o.ApplyT(func(v *Role) RoleInlinePolicyArrayOutput { return v.InlinePolicies }).(RoleInlinePolicyArrayOutput) +} + +func (o RoleOutput) ManagedPolicyArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Role) pulumi.StringArrayOutput { return v.ManagedPolicyArns }).(pulumi.StringArrayOutput) +} + +// Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. +func (o RoleOutput) MaxSessionDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Role) pulumi.IntPtrOutput { return v.MaxSessionDuration }).(pulumi.IntPtrOutput) +} + +// Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o RoleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Role) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. +func (o RoleOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *Role) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o RoleOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Role) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// ARN of the policy that is used to set the permissions boundary for the role. +func (o RoleOutput) PermissionsBoundary() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Role) pulumi.StringPtrOutput { return v.PermissionsBoundary }).(pulumi.StringPtrOutput) +} + +// Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o RoleOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Role) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o RoleOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Role) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Stable and unique string identifying the role. +func (o RoleOutput) UniqueId() pulumi.StringOutput { + return o.ApplyT(func(v *Role) pulumi.StringOutput { return v.UniqueId }).(pulumi.StringOutput) +} + +type RoleArrayOutput struct{ *pulumi.OutputState } + +func (RoleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Role)(nil)).Elem() +} + +func (o RoleArrayOutput) ToRoleArrayOutput() RoleArrayOutput { + return o +} + +func (o RoleArrayOutput) ToRoleArrayOutputWithContext(ctx context.Context) RoleArrayOutput { + return o +} + +func (o RoleArrayOutput) Index(i pulumi.IntInput) RoleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Role { + return vs[0].([]*Role)[vs[1].(int)] + }).(RoleOutput) +} + +type RoleMapOutput struct{ *pulumi.OutputState } + +func (RoleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Role)(nil)).Elem() +} + +func (o RoleMapOutput) ToRoleMapOutput() RoleMapOutput { + return o +} + +func (o RoleMapOutput) ToRoleMapOutputWithContext(ctx context.Context) RoleMapOutput { + return o +} + +func (o RoleMapOutput) MapIndex(k pulumi.StringInput) RoleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Role { + return vs[0].(map[string]*Role)[vs[1].(string)] + }).(RoleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RoleInput)(nil)).Elem(), &Role{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleArrayInput)(nil)).Elem(), RoleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleMapInput)(nil)).Elem(), RoleMap{}) + pulumi.RegisterOutputType(RoleOutput{}) + pulumi.RegisterOutputType(RoleArrayOutput{}) + pulumi.RegisterOutputType(RoleMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicy.go new file mode 100644 index 000000000..8d69a0a5d --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicy.go @@ -0,0 +1,359 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM role inline policy. +// +// > **NOTE:** For a given role, this resource is incompatible with using the `iam.Role` resource `inlinePolicy` argument. When using that argument and this resource, both will attempt to manage the role's inline policies and the provider will show a permanent difference. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": "sts:AssumeRole", +// "Effect": "Allow", +// "Sid": "", +// "Principal": map[string]interface{}{ +// "Service": "ec2.amazonaws.com", +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// testRole, err := iam.NewRole(ctx, "testRole", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// tmpJSON1, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "ec2:Describe*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json1 := string(tmpJSON1) +// _, err = iam.NewRolePolicy(ctx, "testPolicy", &iam.RolePolicyArgs{ +// Role: testRole.ID(), +// Policy: pulumi.String(json1), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Role Policies using the `role_name:role_policy_name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/rolePolicy:RolePolicy mypolicy role_of_mypolicy_name:mypolicy_name +// +// ``` +type RolePolicy struct { + pulumi.CustomResourceState + + // The name of the role policy. If omitted, this provider will + // assign a random, unique name. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide + Policy pulumi.StringOutput `pulumi:"policy"` + // The name of the IAM role to attach to the policy. + Role pulumi.StringOutput `pulumi:"role"` +} + +// NewRolePolicy registers a new resource with the given unique name, arguments, and options. +func NewRolePolicy(ctx *pulumi.Context, + name string, args *RolePolicyArgs, opts ...pulumi.ResourceOption) (*RolePolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource RolePolicy + err := ctx.RegisterResource("aws:iam/rolePolicy:RolePolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRolePolicy gets an existing RolePolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRolePolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RolePolicyState, opts ...pulumi.ResourceOption) (*RolePolicy, error) { + var resource RolePolicy + err := ctx.ReadResource("aws:iam/rolePolicy:RolePolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RolePolicy resources. +type rolePolicyState struct { + // The name of the role policy. If omitted, this provider will + // assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide + Policy interface{} `pulumi:"policy"` + // The name of the IAM role to attach to the policy. + Role interface{} `pulumi:"role"` +} + +type RolePolicyState struct { + // The name of the role policy. If omitted, this provider will + // assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide + Policy pulumi.Input + // The name of the IAM role to attach to the policy. + Role pulumi.Input +} + +func (RolePolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*rolePolicyState)(nil)).Elem() +} + +type rolePolicyArgs struct { + // The name of the role policy. If omitted, this provider will + // assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide + Policy interface{} `pulumi:"policy"` + // The name of the IAM role to attach to the policy. + Role interface{} `pulumi:"role"` +} + +// The set of arguments for constructing a RolePolicy resource. +type RolePolicyArgs struct { + // The name of the role policy. If omitted, this provider will + // assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide + Policy pulumi.Input + // The name of the IAM role to attach to the policy. + Role pulumi.Input +} + +func (RolePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*rolePolicyArgs)(nil)).Elem() +} + +type RolePolicyInput interface { + pulumi.Input + + ToRolePolicyOutput() RolePolicyOutput + ToRolePolicyOutputWithContext(ctx context.Context) RolePolicyOutput +} + +func (*RolePolicy) ElementType() reflect.Type { + return reflect.TypeOf((**RolePolicy)(nil)).Elem() +} + +func (i *RolePolicy) ToRolePolicyOutput() RolePolicyOutput { + return i.ToRolePolicyOutputWithContext(context.Background()) +} + +func (i *RolePolicy) ToRolePolicyOutputWithContext(ctx context.Context) RolePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RolePolicyOutput) +} + +// RolePolicyArrayInput is an input type that accepts RolePolicyArray and RolePolicyArrayOutput values. +// You can construct a concrete instance of `RolePolicyArrayInput` via: +// +// RolePolicyArray{ RolePolicyArgs{...} } +type RolePolicyArrayInput interface { + pulumi.Input + + ToRolePolicyArrayOutput() RolePolicyArrayOutput + ToRolePolicyArrayOutputWithContext(context.Context) RolePolicyArrayOutput +} + +type RolePolicyArray []RolePolicyInput + +func (RolePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RolePolicy)(nil)).Elem() +} + +func (i RolePolicyArray) ToRolePolicyArrayOutput() RolePolicyArrayOutput { + return i.ToRolePolicyArrayOutputWithContext(context.Background()) +} + +func (i RolePolicyArray) ToRolePolicyArrayOutputWithContext(ctx context.Context) RolePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RolePolicyArrayOutput) +} + +// RolePolicyMapInput is an input type that accepts RolePolicyMap and RolePolicyMapOutput values. +// You can construct a concrete instance of `RolePolicyMapInput` via: +// +// RolePolicyMap{ "key": RolePolicyArgs{...} } +type RolePolicyMapInput interface { + pulumi.Input + + ToRolePolicyMapOutput() RolePolicyMapOutput + ToRolePolicyMapOutputWithContext(context.Context) RolePolicyMapOutput +} + +type RolePolicyMap map[string]RolePolicyInput + +func (RolePolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RolePolicy)(nil)).Elem() +} + +func (i RolePolicyMap) ToRolePolicyMapOutput() RolePolicyMapOutput { + return i.ToRolePolicyMapOutputWithContext(context.Background()) +} + +func (i RolePolicyMap) ToRolePolicyMapOutputWithContext(ctx context.Context) RolePolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RolePolicyMapOutput) +} + +type RolePolicyOutput struct{ *pulumi.OutputState } + +func (RolePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RolePolicy)(nil)).Elem() +} + +func (o RolePolicyOutput) ToRolePolicyOutput() RolePolicyOutput { + return o +} + +func (o RolePolicyOutput) ToRolePolicyOutputWithContext(ctx context.Context) RolePolicyOutput { + return o +} + +// The name of the role policy. If omitted, this provider will +// assign a random, unique name. +func (o RolePolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *RolePolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified +// prefix. Conflicts with `name`. +func (o RolePolicyOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *RolePolicy) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// The inline policy document. This is a JSON formatted string. For more information about building IAM policy documents with the provider, see the AWS IAM Policy Document Guide +func (o RolePolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *RolePolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +// The name of the IAM role to attach to the policy. +func (o RolePolicyOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v *RolePolicy) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +type RolePolicyArrayOutput struct{ *pulumi.OutputState } + +func (RolePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RolePolicy)(nil)).Elem() +} + +func (o RolePolicyArrayOutput) ToRolePolicyArrayOutput() RolePolicyArrayOutput { + return o +} + +func (o RolePolicyArrayOutput) ToRolePolicyArrayOutputWithContext(ctx context.Context) RolePolicyArrayOutput { + return o +} + +func (o RolePolicyArrayOutput) Index(i pulumi.IntInput) RolePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RolePolicy { + return vs[0].([]*RolePolicy)[vs[1].(int)] + }).(RolePolicyOutput) +} + +type RolePolicyMapOutput struct{ *pulumi.OutputState } + +func (RolePolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RolePolicy)(nil)).Elem() +} + +func (o RolePolicyMapOutput) ToRolePolicyMapOutput() RolePolicyMapOutput { + return o +} + +func (o RolePolicyMapOutput) ToRolePolicyMapOutputWithContext(ctx context.Context) RolePolicyMapOutput { + return o +} + +func (o RolePolicyMapOutput) MapIndex(k pulumi.StringInput) RolePolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RolePolicy { + return vs[0].(map[string]*RolePolicy)[vs[1].(string)] + }).(RolePolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RolePolicyInput)(nil)).Elem(), &RolePolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*RolePolicyArrayInput)(nil)).Elem(), RolePolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RolePolicyMapInput)(nil)).Elem(), RolePolicyMap{}) + pulumi.RegisterOutputType(RolePolicyOutput{}) + pulumi.RegisterOutputType(RolePolicyArrayOutput{}) + pulumi.RegisterOutputType(RolePolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicyAttachment.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicyAttachment.go new file mode 100644 index 000000000..d1b29b6cf --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/rolePolicyAttachment.go @@ -0,0 +1,328 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Attaches a Managed IAM Policy to an IAM role +// +// > **NOTE:** The usage of this resource conflicts with the `iam.PolicyAttachment` resource and will permanently show a difference if both are defined. +// +// > **NOTE:** For a given role, this resource is incompatible with using the `iam.Role` resource `managedPolicyArns` argument. When using that argument and this resource, both will attempt to manage the role's managed policy attachments and Pulumi will show a permanent difference. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "ec2.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// role, err := iam.NewRole(ctx, "role", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// policyPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "ec2:Describe*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// policyPolicy, err := iam.NewPolicy(ctx, "policyPolicy", &iam.PolicyArgs{ +// Description: pulumi.String("A test policy"), +// Policy: *pulumi.String(policyPolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "test-attach", &iam.RolePolicyAttachmentArgs{ +// Role: role.Name, +// PolicyArn: policyPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM role policy attachments using the role name and policy arn separated by `/`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/rolePolicyAttachment:RolePolicyAttachment test-attach test-role/arn:aws:iam::xxxxxxxxxxxx:policy/test-policy +// +// ``` +type RolePolicyAttachment struct { + pulumi.CustomResourceState + + // The ARN of the policy you want to apply + PolicyArn pulumi.StringOutput `pulumi:"policyArn"` + // The name of the IAM role to which the policy should be applied + Role pulumi.StringOutput `pulumi:"role"` +} + +// NewRolePolicyAttachment registers a new resource with the given unique name, arguments, and options. +func NewRolePolicyAttachment(ctx *pulumi.Context, + name string, args *RolePolicyAttachmentArgs, opts ...pulumi.ResourceOption) (*RolePolicyAttachment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PolicyArn == nil { + return nil, errors.New("invalid value for required argument 'PolicyArn'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource RolePolicyAttachment + err := ctx.RegisterResource("aws:iam/rolePolicyAttachment:RolePolicyAttachment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRolePolicyAttachment gets an existing RolePolicyAttachment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRolePolicyAttachment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RolePolicyAttachmentState, opts ...pulumi.ResourceOption) (*RolePolicyAttachment, error) { + var resource RolePolicyAttachment + err := ctx.ReadResource("aws:iam/rolePolicyAttachment:RolePolicyAttachment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RolePolicyAttachment resources. +type rolePolicyAttachmentState struct { + // The ARN of the policy you want to apply + PolicyArn *string `pulumi:"policyArn"` + // The name of the IAM role to which the policy should be applied + Role interface{} `pulumi:"role"` +} + +type RolePolicyAttachmentState struct { + // The ARN of the policy you want to apply + PolicyArn pulumi.StringPtrInput + // The name of the IAM role to which the policy should be applied + Role pulumi.Input +} + +func (RolePolicyAttachmentState) ElementType() reflect.Type { + return reflect.TypeOf((*rolePolicyAttachmentState)(nil)).Elem() +} + +type rolePolicyAttachmentArgs struct { + // The ARN of the policy you want to apply + PolicyArn string `pulumi:"policyArn"` + // The name of the IAM role to which the policy should be applied + Role interface{} `pulumi:"role"` +} + +// The set of arguments for constructing a RolePolicyAttachment resource. +type RolePolicyAttachmentArgs struct { + // The ARN of the policy you want to apply + PolicyArn pulumi.StringInput + // The name of the IAM role to which the policy should be applied + Role pulumi.Input +} + +func (RolePolicyAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*rolePolicyAttachmentArgs)(nil)).Elem() +} + +type RolePolicyAttachmentInput interface { + pulumi.Input + + ToRolePolicyAttachmentOutput() RolePolicyAttachmentOutput + ToRolePolicyAttachmentOutputWithContext(ctx context.Context) RolePolicyAttachmentOutput +} + +func (*RolePolicyAttachment) ElementType() reflect.Type { + return reflect.TypeOf((**RolePolicyAttachment)(nil)).Elem() +} + +func (i *RolePolicyAttachment) ToRolePolicyAttachmentOutput() RolePolicyAttachmentOutput { + return i.ToRolePolicyAttachmentOutputWithContext(context.Background()) +} + +func (i *RolePolicyAttachment) ToRolePolicyAttachmentOutputWithContext(ctx context.Context) RolePolicyAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(RolePolicyAttachmentOutput) +} + +// RolePolicyAttachmentArrayInput is an input type that accepts RolePolicyAttachmentArray and RolePolicyAttachmentArrayOutput values. +// You can construct a concrete instance of `RolePolicyAttachmentArrayInput` via: +// +// RolePolicyAttachmentArray{ RolePolicyAttachmentArgs{...} } +type RolePolicyAttachmentArrayInput interface { + pulumi.Input + + ToRolePolicyAttachmentArrayOutput() RolePolicyAttachmentArrayOutput + ToRolePolicyAttachmentArrayOutputWithContext(context.Context) RolePolicyAttachmentArrayOutput +} + +type RolePolicyAttachmentArray []RolePolicyAttachmentInput + +func (RolePolicyAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RolePolicyAttachment)(nil)).Elem() +} + +func (i RolePolicyAttachmentArray) ToRolePolicyAttachmentArrayOutput() RolePolicyAttachmentArrayOutput { + return i.ToRolePolicyAttachmentArrayOutputWithContext(context.Background()) +} + +func (i RolePolicyAttachmentArray) ToRolePolicyAttachmentArrayOutputWithContext(ctx context.Context) RolePolicyAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RolePolicyAttachmentArrayOutput) +} + +// RolePolicyAttachmentMapInput is an input type that accepts RolePolicyAttachmentMap and RolePolicyAttachmentMapOutput values. +// You can construct a concrete instance of `RolePolicyAttachmentMapInput` via: +// +// RolePolicyAttachmentMap{ "key": RolePolicyAttachmentArgs{...} } +type RolePolicyAttachmentMapInput interface { + pulumi.Input + + ToRolePolicyAttachmentMapOutput() RolePolicyAttachmentMapOutput + ToRolePolicyAttachmentMapOutputWithContext(context.Context) RolePolicyAttachmentMapOutput +} + +type RolePolicyAttachmentMap map[string]RolePolicyAttachmentInput + +func (RolePolicyAttachmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RolePolicyAttachment)(nil)).Elem() +} + +func (i RolePolicyAttachmentMap) ToRolePolicyAttachmentMapOutput() RolePolicyAttachmentMapOutput { + return i.ToRolePolicyAttachmentMapOutputWithContext(context.Background()) +} + +func (i RolePolicyAttachmentMap) ToRolePolicyAttachmentMapOutputWithContext(ctx context.Context) RolePolicyAttachmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RolePolicyAttachmentMapOutput) +} + +type RolePolicyAttachmentOutput struct{ *pulumi.OutputState } + +func (RolePolicyAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RolePolicyAttachment)(nil)).Elem() +} + +func (o RolePolicyAttachmentOutput) ToRolePolicyAttachmentOutput() RolePolicyAttachmentOutput { + return o +} + +func (o RolePolicyAttachmentOutput) ToRolePolicyAttachmentOutputWithContext(ctx context.Context) RolePolicyAttachmentOutput { + return o +} + +// The ARN of the policy you want to apply +func (o RolePolicyAttachmentOutput) PolicyArn() pulumi.StringOutput { + return o.ApplyT(func(v *RolePolicyAttachment) pulumi.StringOutput { return v.PolicyArn }).(pulumi.StringOutput) +} + +// The name of the IAM role to which the policy should be applied +func (o RolePolicyAttachmentOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v *RolePolicyAttachment) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +type RolePolicyAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (RolePolicyAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RolePolicyAttachment)(nil)).Elem() +} + +func (o RolePolicyAttachmentArrayOutput) ToRolePolicyAttachmentArrayOutput() RolePolicyAttachmentArrayOutput { + return o +} + +func (o RolePolicyAttachmentArrayOutput) ToRolePolicyAttachmentArrayOutputWithContext(ctx context.Context) RolePolicyAttachmentArrayOutput { + return o +} + +func (o RolePolicyAttachmentArrayOutput) Index(i pulumi.IntInput) RolePolicyAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RolePolicyAttachment { + return vs[0].([]*RolePolicyAttachment)[vs[1].(int)] + }).(RolePolicyAttachmentOutput) +} + +type RolePolicyAttachmentMapOutput struct{ *pulumi.OutputState } + +func (RolePolicyAttachmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RolePolicyAttachment)(nil)).Elem() +} + +func (o RolePolicyAttachmentMapOutput) ToRolePolicyAttachmentMapOutput() RolePolicyAttachmentMapOutput { + return o +} + +func (o RolePolicyAttachmentMapOutput) ToRolePolicyAttachmentMapOutputWithContext(ctx context.Context) RolePolicyAttachmentMapOutput { + return o +} + +func (o RolePolicyAttachmentMapOutput) MapIndex(k pulumi.StringInput) RolePolicyAttachmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RolePolicyAttachment { + return vs[0].(map[string]*RolePolicyAttachment)[vs[1].(string)] + }).(RolePolicyAttachmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RolePolicyAttachmentInput)(nil)).Elem(), &RolePolicyAttachment{}) + pulumi.RegisterInputType(reflect.TypeOf((*RolePolicyAttachmentArrayInput)(nil)).Elem(), RolePolicyAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RolePolicyAttachmentMapInput)(nil)).Elem(), RolePolicyAttachmentMap{}) + pulumi.RegisterOutputType(RolePolicyAttachmentOutput{}) + pulumi.RegisterOutputType(RolePolicyAttachmentArrayOutput{}) + pulumi.RegisterOutputType(RolePolicyAttachmentMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/samlProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/samlProvider.go new file mode 100644 index 000000000..30f4a05d1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/samlProvider.go @@ -0,0 +1,340 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM SAML provider. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewSamlProvider(ctx, "default", &iam.SamlProviderArgs{ +// SamlMetadataDocument: readFileOrPanic("saml-metadata.xml"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM SAML Providers using the `arn`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/samlProvider:SamlProvider default arn:aws:iam::123456789012:saml-provider/SAMLADFS +// +// ``` +type SamlProvider struct { + pulumi.CustomResourceState + + // The ARN assigned by AWS for this provider. + Arn pulumi.StringOutput `pulumi:"arn"` + // The name of the provider to create. + Name pulumi.StringOutput `pulumi:"name"` + // An XML document generated by an identity provider that supports SAML 2.0. + SamlMetadataDocument pulumi.StringOutput `pulumi:"samlMetadataDocument"` + // Map of resource tags for the IAM SAML provider. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The expiration date and time for the SAML provider in RFC1123 format, e.g., `Mon, 02 Jan 2006 15:04:05 MST`. + ValidUntil pulumi.StringOutput `pulumi:"validUntil"` +} + +// NewSamlProvider registers a new resource with the given unique name, arguments, and options. +func NewSamlProvider(ctx *pulumi.Context, + name string, args *SamlProviderArgs, opts ...pulumi.ResourceOption) (*SamlProvider, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.SamlMetadataDocument == nil { + return nil, errors.New("invalid value for required argument 'SamlMetadataDocument'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource SamlProvider + err := ctx.RegisterResource("aws:iam/samlProvider:SamlProvider", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSamlProvider gets an existing SamlProvider resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSamlProvider(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SamlProviderState, opts ...pulumi.ResourceOption) (*SamlProvider, error) { + var resource SamlProvider + err := ctx.ReadResource("aws:iam/samlProvider:SamlProvider", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SamlProvider resources. +type samlProviderState struct { + // The ARN assigned by AWS for this provider. + Arn *string `pulumi:"arn"` + // The name of the provider to create. + Name *string `pulumi:"name"` + // An XML document generated by an identity provider that supports SAML 2.0. + SamlMetadataDocument *string `pulumi:"samlMetadataDocument"` + // Map of resource tags for the IAM SAML provider. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The expiration date and time for the SAML provider in RFC1123 format, e.g., `Mon, 02 Jan 2006 15:04:05 MST`. + ValidUntil *string `pulumi:"validUntil"` +} + +type SamlProviderState struct { + // The ARN assigned by AWS for this provider. + Arn pulumi.StringPtrInput + // The name of the provider to create. + Name pulumi.StringPtrInput + // An XML document generated by an identity provider that supports SAML 2.0. + SamlMetadataDocument pulumi.StringPtrInput + // Map of resource tags for the IAM SAML provider. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The expiration date and time for the SAML provider in RFC1123 format, e.g., `Mon, 02 Jan 2006 15:04:05 MST`. + ValidUntil pulumi.StringPtrInput +} + +func (SamlProviderState) ElementType() reflect.Type { + return reflect.TypeOf((*samlProviderState)(nil)).Elem() +} + +type samlProviderArgs struct { + // The name of the provider to create. + Name *string `pulumi:"name"` + // An XML document generated by an identity provider that supports SAML 2.0. + SamlMetadataDocument string `pulumi:"samlMetadataDocument"` + // Map of resource tags for the IAM SAML provider. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a SamlProvider resource. +type SamlProviderArgs struct { + // The name of the provider to create. + Name pulumi.StringPtrInput + // An XML document generated by an identity provider that supports SAML 2.0. + SamlMetadataDocument pulumi.StringInput + // Map of resource tags for the IAM SAML provider. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (SamlProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*samlProviderArgs)(nil)).Elem() +} + +type SamlProviderInput interface { + pulumi.Input + + ToSamlProviderOutput() SamlProviderOutput + ToSamlProviderOutputWithContext(ctx context.Context) SamlProviderOutput +} + +func (*SamlProvider) ElementType() reflect.Type { + return reflect.TypeOf((**SamlProvider)(nil)).Elem() +} + +func (i *SamlProvider) ToSamlProviderOutput() SamlProviderOutput { + return i.ToSamlProviderOutputWithContext(context.Background()) +} + +func (i *SamlProvider) ToSamlProviderOutputWithContext(ctx context.Context) SamlProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(SamlProviderOutput) +} + +// SamlProviderArrayInput is an input type that accepts SamlProviderArray and SamlProviderArrayOutput values. +// You can construct a concrete instance of `SamlProviderArrayInput` via: +// +// SamlProviderArray{ SamlProviderArgs{...} } +type SamlProviderArrayInput interface { + pulumi.Input + + ToSamlProviderArrayOutput() SamlProviderArrayOutput + ToSamlProviderArrayOutputWithContext(context.Context) SamlProviderArrayOutput +} + +type SamlProviderArray []SamlProviderInput + +func (SamlProviderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SamlProvider)(nil)).Elem() +} + +func (i SamlProviderArray) ToSamlProviderArrayOutput() SamlProviderArrayOutput { + return i.ToSamlProviderArrayOutputWithContext(context.Background()) +} + +func (i SamlProviderArray) ToSamlProviderArrayOutputWithContext(ctx context.Context) SamlProviderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SamlProviderArrayOutput) +} + +// SamlProviderMapInput is an input type that accepts SamlProviderMap and SamlProviderMapOutput values. +// You can construct a concrete instance of `SamlProviderMapInput` via: +// +// SamlProviderMap{ "key": SamlProviderArgs{...} } +type SamlProviderMapInput interface { + pulumi.Input + + ToSamlProviderMapOutput() SamlProviderMapOutput + ToSamlProviderMapOutputWithContext(context.Context) SamlProviderMapOutput +} + +type SamlProviderMap map[string]SamlProviderInput + +func (SamlProviderMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SamlProvider)(nil)).Elem() +} + +func (i SamlProviderMap) ToSamlProviderMapOutput() SamlProviderMapOutput { + return i.ToSamlProviderMapOutputWithContext(context.Background()) +} + +func (i SamlProviderMap) ToSamlProviderMapOutputWithContext(ctx context.Context) SamlProviderMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SamlProviderMapOutput) +} + +type SamlProviderOutput struct{ *pulumi.OutputState } + +func (SamlProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SamlProvider)(nil)).Elem() +} + +func (o SamlProviderOutput) ToSamlProviderOutput() SamlProviderOutput { + return o +} + +func (o SamlProviderOutput) ToSamlProviderOutputWithContext(ctx context.Context) SamlProviderOutput { + return o +} + +// The ARN assigned by AWS for this provider. +func (o SamlProviderOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *SamlProvider) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The name of the provider to create. +func (o SamlProviderOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *SamlProvider) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// An XML document generated by an identity provider that supports SAML 2.0. +func (o SamlProviderOutput) SamlMetadataDocument() pulumi.StringOutput { + return o.ApplyT(func(v *SamlProvider) pulumi.StringOutput { return v.SamlMetadataDocument }).(pulumi.StringOutput) +} + +// Map of resource tags for the IAM SAML provider. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o SamlProviderOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *SamlProvider) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o SamlProviderOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *SamlProvider) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The expiration date and time for the SAML provider in RFC1123 format, e.g., `Mon, 02 Jan 2006 15:04:05 MST`. +func (o SamlProviderOutput) ValidUntil() pulumi.StringOutput { + return o.ApplyT(func(v *SamlProvider) pulumi.StringOutput { return v.ValidUntil }).(pulumi.StringOutput) +} + +type SamlProviderArrayOutput struct{ *pulumi.OutputState } + +func (SamlProviderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SamlProvider)(nil)).Elem() +} + +func (o SamlProviderArrayOutput) ToSamlProviderArrayOutput() SamlProviderArrayOutput { + return o +} + +func (o SamlProviderArrayOutput) ToSamlProviderArrayOutputWithContext(ctx context.Context) SamlProviderArrayOutput { + return o +} + +func (o SamlProviderArrayOutput) Index(i pulumi.IntInput) SamlProviderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SamlProvider { + return vs[0].([]*SamlProvider)[vs[1].(int)] + }).(SamlProviderOutput) +} + +type SamlProviderMapOutput struct{ *pulumi.OutputState } + +func (SamlProviderMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SamlProvider)(nil)).Elem() +} + +func (o SamlProviderMapOutput) ToSamlProviderMapOutput() SamlProviderMapOutput { + return o +} + +func (o SamlProviderMapOutput) ToSamlProviderMapOutputWithContext(ctx context.Context) SamlProviderMapOutput { + return o +} + +func (o SamlProviderMapOutput) MapIndex(k pulumi.StringInput) SamlProviderOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SamlProvider { + return vs[0].(map[string]*SamlProvider)[vs[1].(string)] + }).(SamlProviderOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SamlProviderInput)(nil)).Elem(), &SamlProvider{}) + pulumi.RegisterInputType(reflect.TypeOf((*SamlProviderArrayInput)(nil)).Elem(), SamlProviderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SamlProviderMapInput)(nil)).Elem(), SamlProviderMap{}) + pulumi.RegisterOutputType(SamlProviderOutput{}) + pulumi.RegisterOutputType(SamlProviderArrayOutput{}) + pulumi.RegisterOutputType(SamlProviderMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/securityTokenServicePreferences.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/securityTokenServicePreferences.go new file mode 100644 index 000000000..8217e4e8e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/securityTokenServicePreferences.go @@ -0,0 +1,245 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM Security Token Service Preferences resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewSecurityTokenServicePreferences(ctx, "example", &iam.SecurityTokenServicePreferencesArgs{ +// GlobalEndpointTokenVersion: pulumi.String("v2Token"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type SecurityTokenServicePreferences struct { + pulumi.CustomResourceState + + // The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. + GlobalEndpointTokenVersion pulumi.StringOutput `pulumi:"globalEndpointTokenVersion"` +} + +// NewSecurityTokenServicePreferences registers a new resource with the given unique name, arguments, and options. +func NewSecurityTokenServicePreferences(ctx *pulumi.Context, + name string, args *SecurityTokenServicePreferencesArgs, opts ...pulumi.ResourceOption) (*SecurityTokenServicePreferences, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.GlobalEndpointTokenVersion == nil { + return nil, errors.New("invalid value for required argument 'GlobalEndpointTokenVersion'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SecurityTokenServicePreferences + err := ctx.RegisterResource("aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSecurityTokenServicePreferences gets an existing SecurityTokenServicePreferences resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSecurityTokenServicePreferences(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SecurityTokenServicePreferencesState, opts ...pulumi.ResourceOption) (*SecurityTokenServicePreferences, error) { + var resource SecurityTokenServicePreferences + err := ctx.ReadResource("aws:iam/securityTokenServicePreferences:SecurityTokenServicePreferences", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SecurityTokenServicePreferences resources. +type securityTokenServicePreferencesState struct { + // The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. + GlobalEndpointTokenVersion *string `pulumi:"globalEndpointTokenVersion"` +} + +type SecurityTokenServicePreferencesState struct { + // The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. + GlobalEndpointTokenVersion pulumi.StringPtrInput +} + +func (SecurityTokenServicePreferencesState) ElementType() reflect.Type { + return reflect.TypeOf((*securityTokenServicePreferencesState)(nil)).Elem() +} + +type securityTokenServicePreferencesArgs struct { + // The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. + GlobalEndpointTokenVersion string `pulumi:"globalEndpointTokenVersion"` +} + +// The set of arguments for constructing a SecurityTokenServicePreferences resource. +type SecurityTokenServicePreferencesArgs struct { + // The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. + GlobalEndpointTokenVersion pulumi.StringInput +} + +func (SecurityTokenServicePreferencesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*securityTokenServicePreferencesArgs)(nil)).Elem() +} + +type SecurityTokenServicePreferencesInput interface { + pulumi.Input + + ToSecurityTokenServicePreferencesOutput() SecurityTokenServicePreferencesOutput + ToSecurityTokenServicePreferencesOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesOutput +} + +func (*SecurityTokenServicePreferences) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityTokenServicePreferences)(nil)).Elem() +} + +func (i *SecurityTokenServicePreferences) ToSecurityTokenServicePreferencesOutput() SecurityTokenServicePreferencesOutput { + return i.ToSecurityTokenServicePreferencesOutputWithContext(context.Background()) +} + +func (i *SecurityTokenServicePreferences) ToSecurityTokenServicePreferencesOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityTokenServicePreferencesOutput) +} + +// SecurityTokenServicePreferencesArrayInput is an input type that accepts SecurityTokenServicePreferencesArray and SecurityTokenServicePreferencesArrayOutput values. +// You can construct a concrete instance of `SecurityTokenServicePreferencesArrayInput` via: +// +// SecurityTokenServicePreferencesArray{ SecurityTokenServicePreferencesArgs{...} } +type SecurityTokenServicePreferencesArrayInput interface { + pulumi.Input + + ToSecurityTokenServicePreferencesArrayOutput() SecurityTokenServicePreferencesArrayOutput + ToSecurityTokenServicePreferencesArrayOutputWithContext(context.Context) SecurityTokenServicePreferencesArrayOutput +} + +type SecurityTokenServicePreferencesArray []SecurityTokenServicePreferencesInput + +func (SecurityTokenServicePreferencesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecurityTokenServicePreferences)(nil)).Elem() +} + +func (i SecurityTokenServicePreferencesArray) ToSecurityTokenServicePreferencesArrayOutput() SecurityTokenServicePreferencesArrayOutput { + return i.ToSecurityTokenServicePreferencesArrayOutputWithContext(context.Background()) +} + +func (i SecurityTokenServicePreferencesArray) ToSecurityTokenServicePreferencesArrayOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityTokenServicePreferencesArrayOutput) +} + +// SecurityTokenServicePreferencesMapInput is an input type that accepts SecurityTokenServicePreferencesMap and SecurityTokenServicePreferencesMapOutput values. +// You can construct a concrete instance of `SecurityTokenServicePreferencesMapInput` via: +// +// SecurityTokenServicePreferencesMap{ "key": SecurityTokenServicePreferencesArgs{...} } +type SecurityTokenServicePreferencesMapInput interface { + pulumi.Input + + ToSecurityTokenServicePreferencesMapOutput() SecurityTokenServicePreferencesMapOutput + ToSecurityTokenServicePreferencesMapOutputWithContext(context.Context) SecurityTokenServicePreferencesMapOutput +} + +type SecurityTokenServicePreferencesMap map[string]SecurityTokenServicePreferencesInput + +func (SecurityTokenServicePreferencesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecurityTokenServicePreferences)(nil)).Elem() +} + +func (i SecurityTokenServicePreferencesMap) ToSecurityTokenServicePreferencesMapOutput() SecurityTokenServicePreferencesMapOutput { + return i.ToSecurityTokenServicePreferencesMapOutputWithContext(context.Background()) +} + +func (i SecurityTokenServicePreferencesMap) ToSecurityTokenServicePreferencesMapOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityTokenServicePreferencesMapOutput) +} + +type SecurityTokenServicePreferencesOutput struct{ *pulumi.OutputState } + +func (SecurityTokenServicePreferencesOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityTokenServicePreferences)(nil)).Elem() +} + +func (o SecurityTokenServicePreferencesOutput) ToSecurityTokenServicePreferencesOutput() SecurityTokenServicePreferencesOutput { + return o +} + +func (o SecurityTokenServicePreferencesOutput) ToSecurityTokenServicePreferencesOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesOutput { + return o +} + +// The version of the STS global endpoint token. Valid values: `v1Token`, `v2Token`. +func (o SecurityTokenServicePreferencesOutput) GlobalEndpointTokenVersion() pulumi.StringOutput { + return o.ApplyT(func(v *SecurityTokenServicePreferences) pulumi.StringOutput { return v.GlobalEndpointTokenVersion }).(pulumi.StringOutput) +} + +type SecurityTokenServicePreferencesArrayOutput struct{ *pulumi.OutputState } + +func (SecurityTokenServicePreferencesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecurityTokenServicePreferences)(nil)).Elem() +} + +func (o SecurityTokenServicePreferencesArrayOutput) ToSecurityTokenServicePreferencesArrayOutput() SecurityTokenServicePreferencesArrayOutput { + return o +} + +func (o SecurityTokenServicePreferencesArrayOutput) ToSecurityTokenServicePreferencesArrayOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesArrayOutput { + return o +} + +func (o SecurityTokenServicePreferencesArrayOutput) Index(i pulumi.IntInput) SecurityTokenServicePreferencesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SecurityTokenServicePreferences { + return vs[0].([]*SecurityTokenServicePreferences)[vs[1].(int)] + }).(SecurityTokenServicePreferencesOutput) +} + +type SecurityTokenServicePreferencesMapOutput struct{ *pulumi.OutputState } + +func (SecurityTokenServicePreferencesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecurityTokenServicePreferences)(nil)).Elem() +} + +func (o SecurityTokenServicePreferencesMapOutput) ToSecurityTokenServicePreferencesMapOutput() SecurityTokenServicePreferencesMapOutput { + return o +} + +func (o SecurityTokenServicePreferencesMapOutput) ToSecurityTokenServicePreferencesMapOutputWithContext(ctx context.Context) SecurityTokenServicePreferencesMapOutput { + return o +} + +func (o SecurityTokenServicePreferencesMapOutput) MapIndex(k pulumi.StringInput) SecurityTokenServicePreferencesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SecurityTokenServicePreferences { + return vs[0].(map[string]*SecurityTokenServicePreferences)[vs[1].(string)] + }).(SecurityTokenServicePreferencesOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecurityTokenServicePreferencesInput)(nil)).Elem(), &SecurityTokenServicePreferences{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityTokenServicePreferencesArrayInput)(nil)).Elem(), SecurityTokenServicePreferencesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityTokenServicePreferencesMapInput)(nil)).Elem(), SecurityTokenServicePreferencesMap{}) + pulumi.RegisterOutputType(SecurityTokenServicePreferencesOutput{}) + pulumi.RegisterOutputType(SecurityTokenServicePreferencesArrayOutput{}) + pulumi.RegisterOutputType(SecurityTokenServicePreferencesMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serverCertificate.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serverCertificate.go new file mode 100644 index 000000000..2c30fe1a5 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serverCertificate.go @@ -0,0 +1,581 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM Server Certificate resource to upload Server Certificates. +// Certs uploaded to IAM can easily work with other AWS services such as: +// +// - AWS Elastic Beanstalk +// - Elastic Load Balancing +// - CloudFront +// - AWS OpsWorks +// +// For information about server certificates in IAM, see [Managing Server +// Certificates][2] in AWS Documentation. +// +// ## Example Usage +// +// **Using certs on file:** +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewServerCertificate(ctx, "testCert", &iam.ServerCertificateArgs{ +// CertificateBody: readFileOrPanic("self-ca-cert.pem"), +// PrivateKey: readFileOrPanic("test-key.pem"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// **Example with cert in-line:** +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewServerCertificate(ctx, "testCertAlt", &iam.ServerCertificateArgs{ +// CertificateBody: pulumi.String("-----BEGIN CERTIFICATE-----\n[......] # cert contents\n-----END CERTIFICATE-----\n\n"), +// PrivateKey: pulumi.String("-----BEGIN RSA PRIVATE KEY-----\n[......] # cert contents\n-----END RSA PRIVATE KEY-----\n\n"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// **Use in combination with an AWS ELB resource:** +// +// Some properties of an IAM Server Certificates cannot be updated while they are +// in use. In order for the provider to effectively manage a Certificate in this situation, it is +// recommended you utilize the `namePrefix` attribute and enable the +// `createBeforeDestroy`. This will allow this provider +// to create a new, updated `iam.ServerCertificate` resource and replace it in +// dependant resources before attempting to destroy the old version. +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elb" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testCert, err := iam.NewServerCertificate(ctx, "testCert", &iam.ServerCertificateArgs{ +// NamePrefix: pulumi.String("example-cert"), +// CertificateBody: readFileOrPanic("self-ca-cert.pem"), +// PrivateKey: readFileOrPanic("test-key.pem"), +// }) +// if err != nil { +// return err +// } +// _, err = elb.NewLoadBalancer(ctx, "ourapp", &elb.LoadBalancerArgs{ +// AvailabilityZones: pulumi.StringArray{ +// pulumi.String("us-west-2a"), +// }, +// CrossZoneLoadBalancing: pulumi.Bool(true), +// Listeners: elb.LoadBalancerListenerArray{ +// &elb.LoadBalancerListenerArgs{ +// InstancePort: pulumi.Int(8000), +// InstanceProtocol: pulumi.String("http"), +// LbPort: pulumi.Int(443), +// LbProtocol: pulumi.String("https"), +// SslCertificateId: testCert.Arn, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Server Certificates using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/serverCertificate:ServerCertificate certificate example.com-certificate-until-2018 +// +// ``` +type ServerCertificate struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) specifying the server certificate. + Arn pulumi.StringOutput `pulumi:"arn"` + // The contents of the public key certificate in + // PEM-encoded format. + CertificateBody pulumi.StringOutput `pulumi:"certificateBody"` + // The contents of the certificate chain. + // This is typically a concatenation of the PEM-encoded public key certificates + // of the chain. + CertificateChain pulumi.StringPtrOutput `pulumi:"certificateChain"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) on which the certificate is set to expire. + Expiration pulumi.StringOutput `pulumi:"expiration"` + // The name of the Server Certificate. Do not include the + // path in this value. If omitted, the provider will assign a random, unique name. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // The IAM path for the server certificate. If it is not + // included, it defaults to a slash (/). If this certificate is for use with + // AWS CloudFront, the path must be in format `/cloudfront/your_path_here`. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more details on IAM Paths. + Path pulumi.StringPtrOutput `pulumi:"path"` + // The contents of the private key in PEM-encoded format. + PrivateKey pulumi.StringOutput `pulumi:"privateKey"` + // Map of resource tags for the server certificate. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificateBody` contains only one certificate. All other certificates should go in `certificateChain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) when the server certificate was uploaded. + UploadDate pulumi.StringOutput `pulumi:"uploadDate"` +} + +// NewServerCertificate registers a new resource with the given unique name, arguments, and options. +func NewServerCertificate(ctx *pulumi.Context, + name string, args *ServerCertificateArgs, opts ...pulumi.ResourceOption) (*ServerCertificate, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CertificateBody == nil { + return nil, errors.New("invalid value for required argument 'CertificateBody'") + } + if args.PrivateKey == nil { + return nil, errors.New("invalid value for required argument 'PrivateKey'") + } + if args.PrivateKey != nil { + args.PrivateKey = pulumi.ToSecret(args.PrivateKey).(pulumi.StringInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "privateKey", + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource ServerCertificate + err := ctx.RegisterResource("aws:iam/serverCertificate:ServerCertificate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetServerCertificate gets an existing ServerCertificate resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetServerCertificate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServerCertificateState, opts ...pulumi.ResourceOption) (*ServerCertificate, error) { + var resource ServerCertificate + err := ctx.ReadResource("aws:iam/serverCertificate:ServerCertificate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ServerCertificate resources. +type serverCertificateState struct { + // The Amazon Resource Name (ARN) specifying the server certificate. + Arn *string `pulumi:"arn"` + // The contents of the public key certificate in + // PEM-encoded format. + CertificateBody *string `pulumi:"certificateBody"` + // The contents of the certificate chain. + // This is typically a concatenation of the PEM-encoded public key certificates + // of the chain. + CertificateChain *string `pulumi:"certificateChain"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) on which the certificate is set to expire. + Expiration *string `pulumi:"expiration"` + // The name of the Server Certificate. Do not include the + // path in this value. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The IAM path for the server certificate. If it is not + // included, it defaults to a slash (/). If this certificate is for use with + // AWS CloudFront, the path must be in format `/cloudfront/your_path_here`. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more details on IAM Paths. + Path *string `pulumi:"path"` + // The contents of the private key in PEM-encoded format. + PrivateKey *string `pulumi:"privateKey"` + // Map of resource tags for the server certificate. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificateBody` contains only one certificate. All other certificates should go in `certificateChain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) when the server certificate was uploaded. + UploadDate *string `pulumi:"uploadDate"` +} + +type ServerCertificateState struct { + // The Amazon Resource Name (ARN) specifying the server certificate. + Arn pulumi.StringPtrInput + // The contents of the public key certificate in + // PEM-encoded format. + CertificateBody pulumi.StringPtrInput + // The contents of the certificate chain. + // This is typically a concatenation of the PEM-encoded public key certificates + // of the chain. + CertificateChain pulumi.StringPtrInput + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) on which the certificate is set to expire. + Expiration pulumi.StringPtrInput + // The name of the Server Certificate. Do not include the + // path in this value. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The IAM path for the server certificate. If it is not + // included, it defaults to a slash (/). If this certificate is for use with + // AWS CloudFront, the path must be in format `/cloudfront/your_path_here`. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more details on IAM Paths. + Path pulumi.StringPtrInput + // The contents of the private key in PEM-encoded format. + PrivateKey pulumi.StringPtrInput + // Map of resource tags for the server certificate. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificateBody` contains only one certificate. All other certificates should go in `certificateChain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) when the server certificate was uploaded. + UploadDate pulumi.StringPtrInput +} + +func (ServerCertificateState) ElementType() reflect.Type { + return reflect.TypeOf((*serverCertificateState)(nil)).Elem() +} + +type serverCertificateArgs struct { + // The contents of the public key certificate in + // PEM-encoded format. + CertificateBody string `pulumi:"certificateBody"` + // The contents of the certificate chain. + // This is typically a concatenation of the PEM-encoded public key certificates + // of the chain. + CertificateChain *string `pulumi:"certificateChain"` + // The name of the Server Certificate. Do not include the + // path in this value. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The IAM path for the server certificate. If it is not + // included, it defaults to a slash (/). If this certificate is for use with + // AWS CloudFront, the path must be in format `/cloudfront/your_path_here`. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more details on IAM Paths. + Path *string `pulumi:"path"` + // The contents of the private key in PEM-encoded format. + PrivateKey string `pulumi:"privateKey"` + // Map of resource tags for the server certificate. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificateBody` contains only one certificate. All other certificates should go in `certificateChain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a ServerCertificate resource. +type ServerCertificateArgs struct { + // The contents of the public key certificate in + // PEM-encoded format. + CertificateBody pulumi.StringInput + // The contents of the certificate chain. + // This is typically a concatenation of the PEM-encoded public key certificates + // of the chain. + CertificateChain pulumi.StringPtrInput + // The name of the Server Certificate. Do not include the + // path in this value. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified + // prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The IAM path for the server certificate. If it is not + // included, it defaults to a slash (/). If this certificate is for use with + // AWS CloudFront, the path must be in format `/cloudfront/your_path_here`. + // See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more details on IAM Paths. + Path pulumi.StringPtrInput + // The contents of the private key in PEM-encoded format. + PrivateKey pulumi.StringInput + // Map of resource tags for the server certificate. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificateBody` contains only one certificate. All other certificates should go in `certificateChain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. + Tags pulumi.StringMapInput +} + +func (ServerCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serverCertificateArgs)(nil)).Elem() +} + +type ServerCertificateInput interface { + pulumi.Input + + ToServerCertificateOutput() ServerCertificateOutput + ToServerCertificateOutputWithContext(ctx context.Context) ServerCertificateOutput +} + +func (*ServerCertificate) ElementType() reflect.Type { + return reflect.TypeOf((**ServerCertificate)(nil)).Elem() +} + +func (i *ServerCertificate) ToServerCertificateOutput() ServerCertificateOutput { + return i.ToServerCertificateOutputWithContext(context.Background()) +} + +func (i *ServerCertificate) ToServerCertificateOutputWithContext(ctx context.Context) ServerCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerCertificateOutput) +} + +// ServerCertificateArrayInput is an input type that accepts ServerCertificateArray and ServerCertificateArrayOutput values. +// You can construct a concrete instance of `ServerCertificateArrayInput` via: +// +// ServerCertificateArray{ ServerCertificateArgs{...} } +type ServerCertificateArrayInput interface { + pulumi.Input + + ToServerCertificateArrayOutput() ServerCertificateArrayOutput + ToServerCertificateArrayOutputWithContext(context.Context) ServerCertificateArrayOutput +} + +type ServerCertificateArray []ServerCertificateInput + +func (ServerCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServerCertificate)(nil)).Elem() +} + +func (i ServerCertificateArray) ToServerCertificateArrayOutput() ServerCertificateArrayOutput { + return i.ToServerCertificateArrayOutputWithContext(context.Background()) +} + +func (i ServerCertificateArray) ToServerCertificateArrayOutputWithContext(ctx context.Context) ServerCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerCertificateArrayOutput) +} + +// ServerCertificateMapInput is an input type that accepts ServerCertificateMap and ServerCertificateMapOutput values. +// You can construct a concrete instance of `ServerCertificateMapInput` via: +// +// ServerCertificateMap{ "key": ServerCertificateArgs{...} } +type ServerCertificateMapInput interface { + pulumi.Input + + ToServerCertificateMapOutput() ServerCertificateMapOutput + ToServerCertificateMapOutputWithContext(context.Context) ServerCertificateMapOutput +} + +type ServerCertificateMap map[string]ServerCertificateInput + +func (ServerCertificateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServerCertificate)(nil)).Elem() +} + +func (i ServerCertificateMap) ToServerCertificateMapOutput() ServerCertificateMapOutput { + return i.ToServerCertificateMapOutputWithContext(context.Background()) +} + +func (i ServerCertificateMap) ToServerCertificateMapOutputWithContext(ctx context.Context) ServerCertificateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerCertificateMapOutput) +} + +type ServerCertificateOutput struct{ *pulumi.OutputState } + +func (ServerCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServerCertificate)(nil)).Elem() +} + +func (o ServerCertificateOutput) ToServerCertificateOutput() ServerCertificateOutput { + return o +} + +func (o ServerCertificateOutput) ToServerCertificateOutputWithContext(ctx context.Context) ServerCertificateOutput { + return o +} + +// The Amazon Resource Name (ARN) specifying the server certificate. +func (o ServerCertificateOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The contents of the public key certificate in +// PEM-encoded format. +func (o ServerCertificateOutput) CertificateBody() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.CertificateBody }).(pulumi.StringOutput) +} + +// The contents of the certificate chain. +// This is typically a concatenation of the PEM-encoded public key certificates +// of the chain. +func (o ServerCertificateOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringPtrOutput { return v.CertificateChain }).(pulumi.StringPtrOutput) +} + +// Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) on which the certificate is set to expire. +func (o ServerCertificateOutput) Expiration() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.Expiration }).(pulumi.StringOutput) +} + +// The name of the Server Certificate. Do not include the +// path in this value. If omitted, the provider will assign a random, unique name. +func (o ServerCertificateOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified +// prefix. Conflicts with `name`. +func (o ServerCertificateOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// The IAM path for the server certificate. If it is not +// included, it defaults to a slash (/). If this certificate is for use with +// AWS CloudFront, the path must be in format `/cloudfront/your_path_here`. +// See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more details on IAM Paths. +func (o ServerCertificateOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// The contents of the private key in PEM-encoded format. +func (o ServerCertificateOutput) PrivateKey() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.PrivateKey }).(pulumi.StringOutput) +} + +// Map of resource tags for the server certificate. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +// > **NOTE:** AWS performs behind-the-scenes modifications to some certificate files if they do not adhere to a specific format. These modifications will result in this provider forever believing that it needs to update the resources since the local and AWS file contents will not match after theses modifications occur. In order to prevent this from happening you must ensure that all your PEM-encoded files use UNIX line-breaks and that `certificateBody` contains only one certificate. All other certificates should go in `certificateChain`. It is common for some Certificate Authorities to issue certificate files that have DOS line-breaks and that are actually multiple certificates concatenated together in order to form a full certificate chain. +func (o ServerCertificateOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ServerCertificateOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Date and time in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8) when the server certificate was uploaded. +func (o ServerCertificateOutput) UploadDate() pulumi.StringOutput { + return o.ApplyT(func(v *ServerCertificate) pulumi.StringOutput { return v.UploadDate }).(pulumi.StringOutput) +} + +type ServerCertificateArrayOutput struct{ *pulumi.OutputState } + +func (ServerCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServerCertificate)(nil)).Elem() +} + +func (o ServerCertificateArrayOutput) ToServerCertificateArrayOutput() ServerCertificateArrayOutput { + return o +} + +func (o ServerCertificateArrayOutput) ToServerCertificateArrayOutputWithContext(ctx context.Context) ServerCertificateArrayOutput { + return o +} + +func (o ServerCertificateArrayOutput) Index(i pulumi.IntInput) ServerCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ServerCertificate { + return vs[0].([]*ServerCertificate)[vs[1].(int)] + }).(ServerCertificateOutput) +} + +type ServerCertificateMapOutput struct{ *pulumi.OutputState } + +func (ServerCertificateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServerCertificate)(nil)).Elem() +} + +func (o ServerCertificateMapOutput) ToServerCertificateMapOutput() ServerCertificateMapOutput { + return o +} + +func (o ServerCertificateMapOutput) ToServerCertificateMapOutputWithContext(ctx context.Context) ServerCertificateMapOutput { + return o +} + +func (o ServerCertificateMapOutput) MapIndex(k pulumi.StringInput) ServerCertificateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ServerCertificate { + return vs[0].(map[string]*ServerCertificate)[vs[1].(string)] + }).(ServerCertificateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServerCertificateInput)(nil)).Elem(), &ServerCertificate{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerCertificateArrayInput)(nil)).Elem(), ServerCertificateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerCertificateMapInput)(nil)).Elem(), ServerCertificateMap{}) + pulumi.RegisterOutputType(ServerCertificateOutput{}) + pulumi.RegisterOutputType(ServerCertificateArrayOutput{}) + pulumi.RegisterOutputType(ServerCertificateMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceLinkedRole.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceLinkedRole.go new file mode 100644 index 000000000..d25cf34f1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceLinkedRole.go @@ -0,0 +1,378 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an [IAM service-linked role](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewServiceLinkedRole(ctx, "elasticbeanstalk", &iam.ServiceLinkedRoleArgs{ +// AwsServiceName: pulumi.String("elasticbeanstalk.amazonaws.com"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM service-linked roles using role ARN. For example: +// +// ```sh +// +// $ pulumi import aws:iam/serviceLinkedRole:ServiceLinkedRole elasticbeanstalk arn:aws:iam::123456789012:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk +// +// ``` +type ServiceLinkedRole struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) specifying the role. + Arn pulumi.StringOutput `pulumi:"arn"` + // The AWS service to which this role is attached. You use a string similar to a URL but without the `http://` in front. For example: `elasticbeanstalk.amazonaws.com`. To find the full list of services that support service-linked roles, check [the docs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). + AwsServiceName pulumi.StringOutput `pulumi:"awsServiceName"` + // The creation date of the IAM role. + CreateDate pulumi.StringOutput `pulumi:"createDate"` + // Additional string appended to the role name. Not all AWS services support custom suffixes. + CustomSuffix pulumi.StringPtrOutput `pulumi:"customSuffix"` + // The description of the role. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the role. + Name pulumi.StringOutput `pulumi:"name"` + // The path of the role. + Path pulumi.StringOutput `pulumi:"path"` + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The stable and unique string identifying the role. + UniqueId pulumi.StringOutput `pulumi:"uniqueId"` +} + +// NewServiceLinkedRole registers a new resource with the given unique name, arguments, and options. +func NewServiceLinkedRole(ctx *pulumi.Context, + name string, args *ServiceLinkedRoleArgs, opts ...pulumi.ResourceOption) (*ServiceLinkedRole, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AwsServiceName == nil { + return nil, errors.New("invalid value for required argument 'AwsServiceName'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource ServiceLinkedRole + err := ctx.RegisterResource("aws:iam/serviceLinkedRole:ServiceLinkedRole", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetServiceLinkedRole gets an existing ServiceLinkedRole resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetServiceLinkedRole(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServiceLinkedRoleState, opts ...pulumi.ResourceOption) (*ServiceLinkedRole, error) { + var resource ServiceLinkedRole + err := ctx.ReadResource("aws:iam/serviceLinkedRole:ServiceLinkedRole", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ServiceLinkedRole resources. +type serviceLinkedRoleState struct { + // The Amazon Resource Name (ARN) specifying the role. + Arn *string `pulumi:"arn"` + // The AWS service to which this role is attached. You use a string similar to a URL but without the `http://` in front. For example: `elasticbeanstalk.amazonaws.com`. To find the full list of services that support service-linked roles, check [the docs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). + AwsServiceName *string `pulumi:"awsServiceName"` + // The creation date of the IAM role. + CreateDate *string `pulumi:"createDate"` + // Additional string appended to the role name. Not all AWS services support custom suffixes. + CustomSuffix *string `pulumi:"customSuffix"` + // The description of the role. + Description *string `pulumi:"description"` + // The name of the role. + Name *string `pulumi:"name"` + // The path of the role. + Path *string `pulumi:"path"` + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The stable and unique string identifying the role. + UniqueId *string `pulumi:"uniqueId"` +} + +type ServiceLinkedRoleState struct { + // The Amazon Resource Name (ARN) specifying the role. + Arn pulumi.StringPtrInput + // The AWS service to which this role is attached. You use a string similar to a URL but without the `http://` in front. For example: `elasticbeanstalk.amazonaws.com`. To find the full list of services that support service-linked roles, check [the docs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). + AwsServiceName pulumi.StringPtrInput + // The creation date of the IAM role. + CreateDate pulumi.StringPtrInput + // Additional string appended to the role name. Not all AWS services support custom suffixes. + CustomSuffix pulumi.StringPtrInput + // The description of the role. + Description pulumi.StringPtrInput + // The name of the role. + Name pulumi.StringPtrInput + // The path of the role. + Path pulumi.StringPtrInput + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The stable and unique string identifying the role. + UniqueId pulumi.StringPtrInput +} + +func (ServiceLinkedRoleState) ElementType() reflect.Type { + return reflect.TypeOf((*serviceLinkedRoleState)(nil)).Elem() +} + +type serviceLinkedRoleArgs struct { + // The AWS service to which this role is attached. You use a string similar to a URL but without the `http://` in front. For example: `elasticbeanstalk.amazonaws.com`. To find the full list of services that support service-linked roles, check [the docs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). + AwsServiceName string `pulumi:"awsServiceName"` + // Additional string appended to the role name. Not all AWS services support custom suffixes. + CustomSuffix *string `pulumi:"customSuffix"` + // The description of the role. + Description *string `pulumi:"description"` + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a ServiceLinkedRole resource. +type ServiceLinkedRoleArgs struct { + // The AWS service to which this role is attached. You use a string similar to a URL but without the `http://` in front. For example: `elasticbeanstalk.amazonaws.com`. To find the full list of services that support service-linked roles, check [the docs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). + AwsServiceName pulumi.StringInput + // Additional string appended to the role name. Not all AWS services support custom suffixes. + CustomSuffix pulumi.StringPtrInput + // The description of the role. + Description pulumi.StringPtrInput + // Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (ServiceLinkedRoleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serviceLinkedRoleArgs)(nil)).Elem() +} + +type ServiceLinkedRoleInput interface { + pulumi.Input + + ToServiceLinkedRoleOutput() ServiceLinkedRoleOutput + ToServiceLinkedRoleOutputWithContext(ctx context.Context) ServiceLinkedRoleOutput +} + +func (*ServiceLinkedRole) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceLinkedRole)(nil)).Elem() +} + +func (i *ServiceLinkedRole) ToServiceLinkedRoleOutput() ServiceLinkedRoleOutput { + return i.ToServiceLinkedRoleOutputWithContext(context.Background()) +} + +func (i *ServiceLinkedRole) ToServiceLinkedRoleOutputWithContext(ctx context.Context) ServiceLinkedRoleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLinkedRoleOutput) +} + +// ServiceLinkedRoleArrayInput is an input type that accepts ServiceLinkedRoleArray and ServiceLinkedRoleArrayOutput values. +// You can construct a concrete instance of `ServiceLinkedRoleArrayInput` via: +// +// ServiceLinkedRoleArray{ ServiceLinkedRoleArgs{...} } +type ServiceLinkedRoleArrayInput interface { + pulumi.Input + + ToServiceLinkedRoleArrayOutput() ServiceLinkedRoleArrayOutput + ToServiceLinkedRoleArrayOutputWithContext(context.Context) ServiceLinkedRoleArrayOutput +} + +type ServiceLinkedRoleArray []ServiceLinkedRoleInput + +func (ServiceLinkedRoleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServiceLinkedRole)(nil)).Elem() +} + +func (i ServiceLinkedRoleArray) ToServiceLinkedRoleArrayOutput() ServiceLinkedRoleArrayOutput { + return i.ToServiceLinkedRoleArrayOutputWithContext(context.Background()) +} + +func (i ServiceLinkedRoleArray) ToServiceLinkedRoleArrayOutputWithContext(ctx context.Context) ServiceLinkedRoleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLinkedRoleArrayOutput) +} + +// ServiceLinkedRoleMapInput is an input type that accepts ServiceLinkedRoleMap and ServiceLinkedRoleMapOutput values. +// You can construct a concrete instance of `ServiceLinkedRoleMapInput` via: +// +// ServiceLinkedRoleMap{ "key": ServiceLinkedRoleArgs{...} } +type ServiceLinkedRoleMapInput interface { + pulumi.Input + + ToServiceLinkedRoleMapOutput() ServiceLinkedRoleMapOutput + ToServiceLinkedRoleMapOutputWithContext(context.Context) ServiceLinkedRoleMapOutput +} + +type ServiceLinkedRoleMap map[string]ServiceLinkedRoleInput + +func (ServiceLinkedRoleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServiceLinkedRole)(nil)).Elem() +} + +func (i ServiceLinkedRoleMap) ToServiceLinkedRoleMapOutput() ServiceLinkedRoleMapOutput { + return i.ToServiceLinkedRoleMapOutputWithContext(context.Background()) +} + +func (i ServiceLinkedRoleMap) ToServiceLinkedRoleMapOutputWithContext(ctx context.Context) ServiceLinkedRoleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLinkedRoleMapOutput) +} + +type ServiceLinkedRoleOutput struct{ *pulumi.OutputState } + +func (ServiceLinkedRoleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceLinkedRole)(nil)).Elem() +} + +func (o ServiceLinkedRoleOutput) ToServiceLinkedRoleOutput() ServiceLinkedRoleOutput { + return o +} + +func (o ServiceLinkedRoleOutput) ToServiceLinkedRoleOutputWithContext(ctx context.Context) ServiceLinkedRoleOutput { + return o +} + +// The Amazon Resource Name (ARN) specifying the role. +func (o ServiceLinkedRoleOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The AWS service to which this role is attached. You use a string similar to a URL but without the `http://` in front. For example: `elasticbeanstalk.amazonaws.com`. To find the full list of services that support service-linked roles, check [the docs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). +func (o ServiceLinkedRoleOutput) AwsServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringOutput { return v.AwsServiceName }).(pulumi.StringOutput) +} + +// The creation date of the IAM role. +func (o ServiceLinkedRoleOutput) CreateDate() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringOutput { return v.CreateDate }).(pulumi.StringOutput) +} + +// Additional string appended to the role name. Not all AWS services support custom suffixes. +func (o ServiceLinkedRoleOutput) CustomSuffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringPtrOutput { return v.CustomSuffix }).(pulumi.StringPtrOutput) +} + +// The description of the role. +func (o ServiceLinkedRoleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the role. +func (o ServiceLinkedRoleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The path of the role. +func (o ServiceLinkedRoleOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringOutput { return v.Path }).(pulumi.StringOutput) +} + +// Key-value mapping of tags for the IAM role. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ServiceLinkedRoleOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ServiceLinkedRoleOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The stable and unique string identifying the role. +func (o ServiceLinkedRoleOutput) UniqueId() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceLinkedRole) pulumi.StringOutput { return v.UniqueId }).(pulumi.StringOutput) +} + +type ServiceLinkedRoleArrayOutput struct{ *pulumi.OutputState } + +func (ServiceLinkedRoleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServiceLinkedRole)(nil)).Elem() +} + +func (o ServiceLinkedRoleArrayOutput) ToServiceLinkedRoleArrayOutput() ServiceLinkedRoleArrayOutput { + return o +} + +func (o ServiceLinkedRoleArrayOutput) ToServiceLinkedRoleArrayOutputWithContext(ctx context.Context) ServiceLinkedRoleArrayOutput { + return o +} + +func (o ServiceLinkedRoleArrayOutput) Index(i pulumi.IntInput) ServiceLinkedRoleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ServiceLinkedRole { + return vs[0].([]*ServiceLinkedRole)[vs[1].(int)] + }).(ServiceLinkedRoleOutput) +} + +type ServiceLinkedRoleMapOutput struct{ *pulumi.OutputState } + +func (ServiceLinkedRoleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServiceLinkedRole)(nil)).Elem() +} + +func (o ServiceLinkedRoleMapOutput) ToServiceLinkedRoleMapOutput() ServiceLinkedRoleMapOutput { + return o +} + +func (o ServiceLinkedRoleMapOutput) ToServiceLinkedRoleMapOutputWithContext(ctx context.Context) ServiceLinkedRoleMapOutput { + return o +} + +func (o ServiceLinkedRoleMapOutput) MapIndex(k pulumi.StringInput) ServiceLinkedRoleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ServiceLinkedRole { + return vs[0].(map[string]*ServiceLinkedRole)[vs[1].(string)] + }).(ServiceLinkedRoleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLinkedRoleInput)(nil)).Elem(), &ServiceLinkedRole{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLinkedRoleArrayInput)(nil)).Elem(), ServiceLinkedRoleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLinkedRoleMapInput)(nil)).Elem(), ServiceLinkedRoleMap{}) + pulumi.RegisterOutputType(ServiceLinkedRoleOutput{}) + pulumi.RegisterOutputType(ServiceLinkedRoleArrayOutput{}) + pulumi.RegisterOutputType(ServiceLinkedRoleMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceSpecificCredential.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceSpecificCredential.go new file mode 100644 index 000000000..ff2fd8ac7 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/serviceSpecificCredential.go @@ -0,0 +1,330 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM Service Specific Credential. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleUser, err := iam.NewUser(ctx, "exampleUser", nil) +// if err != nil { +// return err +// } +// _, err = iam.NewServiceSpecificCredential(ctx, "exampleServiceSpecificCredential", &iam.ServiceSpecificCredentialArgs{ +// ServiceName: pulumi.String("codecommit.amazonaws.com"), +// UserName: exampleUser.Name, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Service Specific Credentials using the `service_name:user_name:service_specific_credential_id`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/serviceSpecificCredential:ServiceSpecificCredential default `codecommit.amazonaws.com:example:some-id` +// +// ``` +type ServiceSpecificCredential struct { + pulumi.CustomResourceState + + // The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. + ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // The generated password for the service-specific credential. + ServicePassword pulumi.StringOutput `pulumi:"servicePassword"` + // The unique identifier for the service-specific credential. + ServiceSpecificCredentialId pulumi.StringOutput `pulumi:"serviceSpecificCredentialId"` + // The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the AWS account, as in `jane-at-123456789012`, for example. + ServiceUserName pulumi.StringOutput `pulumi:"serviceUserName"` + // The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. + Status pulumi.StringPtrOutput `pulumi:"status"` + // The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. + UserName pulumi.StringOutput `pulumi:"userName"` +} + +// NewServiceSpecificCredential registers a new resource with the given unique name, arguments, and options. +func NewServiceSpecificCredential(ctx *pulumi.Context, + name string, args *ServiceSpecificCredentialArgs, opts ...pulumi.ResourceOption) (*ServiceSpecificCredential, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ServiceName == nil { + return nil, errors.New("invalid value for required argument 'ServiceName'") + } + if args.UserName == nil { + return nil, errors.New("invalid value for required argument 'UserName'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "servicePassword", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource ServiceSpecificCredential + err := ctx.RegisterResource("aws:iam/serviceSpecificCredential:ServiceSpecificCredential", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetServiceSpecificCredential gets an existing ServiceSpecificCredential resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetServiceSpecificCredential(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServiceSpecificCredentialState, opts ...pulumi.ResourceOption) (*ServiceSpecificCredential, error) { + var resource ServiceSpecificCredential + err := ctx.ReadResource("aws:iam/serviceSpecificCredential:ServiceSpecificCredential", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ServiceSpecificCredential resources. +type serviceSpecificCredentialState struct { + // The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. + ServiceName *string `pulumi:"serviceName"` + // The generated password for the service-specific credential. + ServicePassword *string `pulumi:"servicePassword"` + // The unique identifier for the service-specific credential. + ServiceSpecificCredentialId *string `pulumi:"serviceSpecificCredentialId"` + // The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the AWS account, as in `jane-at-123456789012`, for example. + ServiceUserName *string `pulumi:"serviceUserName"` + // The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. + Status *string `pulumi:"status"` + // The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. + UserName *string `pulumi:"userName"` +} + +type ServiceSpecificCredentialState struct { + // The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. + ServiceName pulumi.StringPtrInput + // The generated password for the service-specific credential. + ServicePassword pulumi.StringPtrInput + // The unique identifier for the service-specific credential. + ServiceSpecificCredentialId pulumi.StringPtrInput + // The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the AWS account, as in `jane-at-123456789012`, for example. + ServiceUserName pulumi.StringPtrInput + // The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. + Status pulumi.StringPtrInput + // The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. + UserName pulumi.StringPtrInput +} + +func (ServiceSpecificCredentialState) ElementType() reflect.Type { + return reflect.TypeOf((*serviceSpecificCredentialState)(nil)).Elem() +} + +type serviceSpecificCredentialArgs struct { + // The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. + ServiceName string `pulumi:"serviceName"` + // The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. + Status *string `pulumi:"status"` + // The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. + UserName string `pulumi:"userName"` +} + +// The set of arguments for constructing a ServiceSpecificCredential resource. +type ServiceSpecificCredentialArgs struct { + // The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. + ServiceName pulumi.StringInput + // The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. + Status pulumi.StringPtrInput + // The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. + UserName pulumi.StringInput +} + +func (ServiceSpecificCredentialArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serviceSpecificCredentialArgs)(nil)).Elem() +} + +type ServiceSpecificCredentialInput interface { + pulumi.Input + + ToServiceSpecificCredentialOutput() ServiceSpecificCredentialOutput + ToServiceSpecificCredentialOutputWithContext(ctx context.Context) ServiceSpecificCredentialOutput +} + +func (*ServiceSpecificCredential) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceSpecificCredential)(nil)).Elem() +} + +func (i *ServiceSpecificCredential) ToServiceSpecificCredentialOutput() ServiceSpecificCredentialOutput { + return i.ToServiceSpecificCredentialOutputWithContext(context.Background()) +} + +func (i *ServiceSpecificCredential) ToServiceSpecificCredentialOutputWithContext(ctx context.Context) ServiceSpecificCredentialOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceSpecificCredentialOutput) +} + +// ServiceSpecificCredentialArrayInput is an input type that accepts ServiceSpecificCredentialArray and ServiceSpecificCredentialArrayOutput values. +// You can construct a concrete instance of `ServiceSpecificCredentialArrayInput` via: +// +// ServiceSpecificCredentialArray{ ServiceSpecificCredentialArgs{...} } +type ServiceSpecificCredentialArrayInput interface { + pulumi.Input + + ToServiceSpecificCredentialArrayOutput() ServiceSpecificCredentialArrayOutput + ToServiceSpecificCredentialArrayOutputWithContext(context.Context) ServiceSpecificCredentialArrayOutput +} + +type ServiceSpecificCredentialArray []ServiceSpecificCredentialInput + +func (ServiceSpecificCredentialArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServiceSpecificCredential)(nil)).Elem() +} + +func (i ServiceSpecificCredentialArray) ToServiceSpecificCredentialArrayOutput() ServiceSpecificCredentialArrayOutput { + return i.ToServiceSpecificCredentialArrayOutputWithContext(context.Background()) +} + +func (i ServiceSpecificCredentialArray) ToServiceSpecificCredentialArrayOutputWithContext(ctx context.Context) ServiceSpecificCredentialArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceSpecificCredentialArrayOutput) +} + +// ServiceSpecificCredentialMapInput is an input type that accepts ServiceSpecificCredentialMap and ServiceSpecificCredentialMapOutput values. +// You can construct a concrete instance of `ServiceSpecificCredentialMapInput` via: +// +// ServiceSpecificCredentialMap{ "key": ServiceSpecificCredentialArgs{...} } +type ServiceSpecificCredentialMapInput interface { + pulumi.Input + + ToServiceSpecificCredentialMapOutput() ServiceSpecificCredentialMapOutput + ToServiceSpecificCredentialMapOutputWithContext(context.Context) ServiceSpecificCredentialMapOutput +} + +type ServiceSpecificCredentialMap map[string]ServiceSpecificCredentialInput + +func (ServiceSpecificCredentialMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServiceSpecificCredential)(nil)).Elem() +} + +func (i ServiceSpecificCredentialMap) ToServiceSpecificCredentialMapOutput() ServiceSpecificCredentialMapOutput { + return i.ToServiceSpecificCredentialMapOutputWithContext(context.Background()) +} + +func (i ServiceSpecificCredentialMap) ToServiceSpecificCredentialMapOutputWithContext(ctx context.Context) ServiceSpecificCredentialMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceSpecificCredentialMapOutput) +} + +type ServiceSpecificCredentialOutput struct{ *pulumi.OutputState } + +func (ServiceSpecificCredentialOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceSpecificCredential)(nil)).Elem() +} + +func (o ServiceSpecificCredentialOutput) ToServiceSpecificCredentialOutput() ServiceSpecificCredentialOutput { + return o +} + +func (o ServiceSpecificCredentialOutput) ToServiceSpecificCredentialOutputWithContext(ctx context.Context) ServiceSpecificCredentialOutput { + return o +} + +// The name of the AWS service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials. +func (o ServiceSpecificCredentialOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceSpecificCredential) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +// The generated password for the service-specific credential. +func (o ServiceSpecificCredentialOutput) ServicePassword() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceSpecificCredential) pulumi.StringOutput { return v.ServicePassword }).(pulumi.StringOutput) +} + +// The unique identifier for the service-specific credential. +func (o ServiceSpecificCredentialOutput) ServiceSpecificCredentialId() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceSpecificCredential) pulumi.StringOutput { return v.ServiceSpecificCredentialId }).(pulumi.StringOutput) +} + +// The generated user name for the service-specific credential. This value is generated by combining the IAM user's name combined with the ID number of the AWS account, as in `jane-at-123456789012`, for example. +func (o ServiceSpecificCredentialOutput) ServiceUserName() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceSpecificCredential) pulumi.StringOutput { return v.ServiceUserName }).(pulumi.StringOutput) +} + +// The status to be assigned to the service-specific credential. Valid values are `Active` and `Inactive`. Default value is `Active`. +func (o ServiceSpecificCredentialOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceSpecificCredential) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) +} + +// The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. +func (o ServiceSpecificCredentialOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceSpecificCredential) pulumi.StringOutput { return v.UserName }).(pulumi.StringOutput) +} + +type ServiceSpecificCredentialArrayOutput struct{ *pulumi.OutputState } + +func (ServiceSpecificCredentialArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServiceSpecificCredential)(nil)).Elem() +} + +func (o ServiceSpecificCredentialArrayOutput) ToServiceSpecificCredentialArrayOutput() ServiceSpecificCredentialArrayOutput { + return o +} + +func (o ServiceSpecificCredentialArrayOutput) ToServiceSpecificCredentialArrayOutputWithContext(ctx context.Context) ServiceSpecificCredentialArrayOutput { + return o +} + +func (o ServiceSpecificCredentialArrayOutput) Index(i pulumi.IntInput) ServiceSpecificCredentialOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ServiceSpecificCredential { + return vs[0].([]*ServiceSpecificCredential)[vs[1].(int)] + }).(ServiceSpecificCredentialOutput) +} + +type ServiceSpecificCredentialMapOutput struct{ *pulumi.OutputState } + +func (ServiceSpecificCredentialMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServiceSpecificCredential)(nil)).Elem() +} + +func (o ServiceSpecificCredentialMapOutput) ToServiceSpecificCredentialMapOutput() ServiceSpecificCredentialMapOutput { + return o +} + +func (o ServiceSpecificCredentialMapOutput) ToServiceSpecificCredentialMapOutputWithContext(ctx context.Context) ServiceSpecificCredentialMapOutput { + return o +} + +func (o ServiceSpecificCredentialMapOutput) MapIndex(k pulumi.StringInput) ServiceSpecificCredentialOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ServiceSpecificCredential { + return vs[0].(map[string]*ServiceSpecificCredential)[vs[1].(string)] + }).(ServiceSpecificCredentialOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServiceSpecificCredentialInput)(nil)).Elem(), &ServiceSpecificCredential{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceSpecificCredentialArrayInput)(nil)).Elem(), ServiceSpecificCredentialArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceSpecificCredentialMapInput)(nil)).Elem(), ServiceSpecificCredentialMap{}) + pulumi.RegisterOutputType(ServiceSpecificCredentialOutput{}) + pulumi.RegisterOutputType(ServiceSpecificCredentialArrayOutput{}) + pulumi.RegisterOutputType(ServiceSpecificCredentialMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/signingCertificate.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/signingCertificate.go new file mode 100644 index 000000000..70f80a02b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/signingCertificate.go @@ -0,0 +1,340 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM Signing Certificate resource to upload Signing Certificates. +// +// > **Note:** All arguments including the certificate body will be stored in the raw state as plain-text. +// ## Example Usage +// +// **Using certs on file:** +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewSigningCertificate(ctx, "testCert", &iam.SigningCertificateArgs{ +// Username: pulumi.String("some_test_cert"), +// CertificateBody: readFileOrPanic("self-ca-cert.pem"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// **Example with cert in-line:** +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewSigningCertificate(ctx, "testCertAlt", &iam.SigningCertificateArgs{ +// CertificateBody: pulumi.String("-----BEGIN CERTIFICATE-----\n[......] # cert contents\n-----END CERTIFICATE-----\n\n"), +// Username: pulumi.String("some_test_cert"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Signing Certificates using the `id`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/signingCertificate:SigningCertificate certificate IDIDIDIDID:user-name +// +// ``` +type SigningCertificate struct { + pulumi.CustomResourceState + + // The contents of the signing certificate in PEM-encoded format. + CertificateBody pulumi.StringOutput `pulumi:"certificateBody"` + // The ID for the signing certificate. + CertificateId pulumi.StringOutput `pulumi:"certificateId"` + // The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. + Status pulumi.StringPtrOutput `pulumi:"status"` + // The name of the user the signing certificate is for. + UserName pulumi.StringOutput `pulumi:"userName"` +} + +// NewSigningCertificate registers a new resource with the given unique name, arguments, and options. +func NewSigningCertificate(ctx *pulumi.Context, + name string, args *SigningCertificateArgs, opts ...pulumi.ResourceOption) (*SigningCertificate, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CertificateBody == nil { + return nil, errors.New("invalid value for required argument 'CertificateBody'") + } + if args.UserName == nil { + return nil, errors.New("invalid value for required argument 'UserName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SigningCertificate + err := ctx.RegisterResource("aws:iam/signingCertificate:SigningCertificate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSigningCertificate gets an existing SigningCertificate resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSigningCertificate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SigningCertificateState, opts ...pulumi.ResourceOption) (*SigningCertificate, error) { + var resource SigningCertificate + err := ctx.ReadResource("aws:iam/signingCertificate:SigningCertificate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SigningCertificate resources. +type signingCertificateState struct { + // The contents of the signing certificate in PEM-encoded format. + CertificateBody *string `pulumi:"certificateBody"` + // The ID for the signing certificate. + CertificateId *string `pulumi:"certificateId"` + // The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. + Status *string `pulumi:"status"` + // The name of the user the signing certificate is for. + UserName *string `pulumi:"userName"` +} + +type SigningCertificateState struct { + // The contents of the signing certificate in PEM-encoded format. + CertificateBody pulumi.StringPtrInput + // The ID for the signing certificate. + CertificateId pulumi.StringPtrInput + // The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. + Status pulumi.StringPtrInput + // The name of the user the signing certificate is for. + UserName pulumi.StringPtrInput +} + +func (SigningCertificateState) ElementType() reflect.Type { + return reflect.TypeOf((*signingCertificateState)(nil)).Elem() +} + +type signingCertificateArgs struct { + // The contents of the signing certificate in PEM-encoded format. + CertificateBody string `pulumi:"certificateBody"` + // The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. + Status *string `pulumi:"status"` + // The name of the user the signing certificate is for. + UserName string `pulumi:"userName"` +} + +// The set of arguments for constructing a SigningCertificate resource. +type SigningCertificateArgs struct { + // The contents of the signing certificate in PEM-encoded format. + CertificateBody pulumi.StringInput + // The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. + Status pulumi.StringPtrInput + // The name of the user the signing certificate is for. + UserName pulumi.StringInput +} + +func (SigningCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*signingCertificateArgs)(nil)).Elem() +} + +type SigningCertificateInput interface { + pulumi.Input + + ToSigningCertificateOutput() SigningCertificateOutput + ToSigningCertificateOutputWithContext(ctx context.Context) SigningCertificateOutput +} + +func (*SigningCertificate) ElementType() reflect.Type { + return reflect.TypeOf((**SigningCertificate)(nil)).Elem() +} + +func (i *SigningCertificate) ToSigningCertificateOutput() SigningCertificateOutput { + return i.ToSigningCertificateOutputWithContext(context.Background()) +} + +func (i *SigningCertificate) ToSigningCertificateOutputWithContext(ctx context.Context) SigningCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(SigningCertificateOutput) +} + +// SigningCertificateArrayInput is an input type that accepts SigningCertificateArray and SigningCertificateArrayOutput values. +// You can construct a concrete instance of `SigningCertificateArrayInput` via: +// +// SigningCertificateArray{ SigningCertificateArgs{...} } +type SigningCertificateArrayInput interface { + pulumi.Input + + ToSigningCertificateArrayOutput() SigningCertificateArrayOutput + ToSigningCertificateArrayOutputWithContext(context.Context) SigningCertificateArrayOutput +} + +type SigningCertificateArray []SigningCertificateInput + +func (SigningCertificateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SigningCertificate)(nil)).Elem() +} + +func (i SigningCertificateArray) ToSigningCertificateArrayOutput() SigningCertificateArrayOutput { + return i.ToSigningCertificateArrayOutputWithContext(context.Background()) +} + +func (i SigningCertificateArray) ToSigningCertificateArrayOutputWithContext(ctx context.Context) SigningCertificateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SigningCertificateArrayOutput) +} + +// SigningCertificateMapInput is an input type that accepts SigningCertificateMap and SigningCertificateMapOutput values. +// You can construct a concrete instance of `SigningCertificateMapInput` via: +// +// SigningCertificateMap{ "key": SigningCertificateArgs{...} } +type SigningCertificateMapInput interface { + pulumi.Input + + ToSigningCertificateMapOutput() SigningCertificateMapOutput + ToSigningCertificateMapOutputWithContext(context.Context) SigningCertificateMapOutput +} + +type SigningCertificateMap map[string]SigningCertificateInput + +func (SigningCertificateMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SigningCertificate)(nil)).Elem() +} + +func (i SigningCertificateMap) ToSigningCertificateMapOutput() SigningCertificateMapOutput { + return i.ToSigningCertificateMapOutputWithContext(context.Background()) +} + +func (i SigningCertificateMap) ToSigningCertificateMapOutputWithContext(ctx context.Context) SigningCertificateMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SigningCertificateMapOutput) +} + +type SigningCertificateOutput struct{ *pulumi.OutputState } + +func (SigningCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SigningCertificate)(nil)).Elem() +} + +func (o SigningCertificateOutput) ToSigningCertificateOutput() SigningCertificateOutput { + return o +} + +func (o SigningCertificateOutput) ToSigningCertificateOutputWithContext(ctx context.Context) SigningCertificateOutput { + return o +} + +// The contents of the signing certificate in PEM-encoded format. +func (o SigningCertificateOutput) CertificateBody() pulumi.StringOutput { + return o.ApplyT(func(v *SigningCertificate) pulumi.StringOutput { return v.CertificateBody }).(pulumi.StringOutput) +} + +// The ID for the signing certificate. +func (o SigningCertificateOutput) CertificateId() pulumi.StringOutput { + return o.ApplyT(func(v *SigningCertificate) pulumi.StringOutput { return v.CertificateId }).(pulumi.StringOutput) +} + +// The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used. +func (o SigningCertificateOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SigningCertificate) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) +} + +// The name of the user the signing certificate is for. +func (o SigningCertificateOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v *SigningCertificate) pulumi.StringOutput { return v.UserName }).(pulumi.StringOutput) +} + +type SigningCertificateArrayOutput struct{ *pulumi.OutputState } + +func (SigningCertificateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SigningCertificate)(nil)).Elem() +} + +func (o SigningCertificateArrayOutput) ToSigningCertificateArrayOutput() SigningCertificateArrayOutput { + return o +} + +func (o SigningCertificateArrayOutput) ToSigningCertificateArrayOutputWithContext(ctx context.Context) SigningCertificateArrayOutput { + return o +} + +func (o SigningCertificateArrayOutput) Index(i pulumi.IntInput) SigningCertificateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SigningCertificate { + return vs[0].([]*SigningCertificate)[vs[1].(int)] + }).(SigningCertificateOutput) +} + +type SigningCertificateMapOutput struct{ *pulumi.OutputState } + +func (SigningCertificateMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SigningCertificate)(nil)).Elem() +} + +func (o SigningCertificateMapOutput) ToSigningCertificateMapOutput() SigningCertificateMapOutput { + return o +} + +func (o SigningCertificateMapOutput) ToSigningCertificateMapOutputWithContext(ctx context.Context) SigningCertificateMapOutput { + return o +} + +func (o SigningCertificateMapOutput) MapIndex(k pulumi.StringInput) SigningCertificateOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SigningCertificate { + return vs[0].(map[string]*SigningCertificate)[vs[1].(string)] + }).(SigningCertificateOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SigningCertificateInput)(nil)).Elem(), &SigningCertificate{}) + pulumi.RegisterInputType(reflect.TypeOf((*SigningCertificateArrayInput)(nil)).Elem(), SigningCertificateArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SigningCertificateMapInput)(nil)).Elem(), SigningCertificateMap{}) + pulumi.RegisterOutputType(SigningCertificateOutput{}) + pulumi.RegisterOutputType(SigningCertificateArrayOutput{}) + pulumi.RegisterOutputType(SigningCertificateMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/sshKey.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/sshKey.go new file mode 100644 index 000000000..b9c346730 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/sshKey.go @@ -0,0 +1,336 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Uploads an SSH public key and associates it with the specified IAM user. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// userUser, err := iam.NewUser(ctx, "userUser", &iam.UserArgs{ +// Path: pulumi.String("/"), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewSshKey(ctx, "userSshKey", &iam.SshKeyArgs{ +// Username: userUser.Name, +// Encoding: pulumi.String("SSH"), +// PublicKey: pulumi.String("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 mytest@mydomain.com"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import SSH public keys using the `username`, `ssh_public_key_id`, and `encoding`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/sshKey:SshKey user user:APKAJNCNNJICVN7CFKCA:SSH +// +// ``` +type SshKey struct { + pulumi.CustomResourceState + + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding pulumi.StringOutput `pulumi:"encoding"` + // The MD5 message digest of the SSH public key. + Fingerprint pulumi.StringOutput `pulumi:"fingerprint"` + // The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. + PublicKey pulumi.StringOutput `pulumi:"publicKey"` + // The unique identifier for the SSH public key. + SshPublicKeyId pulumi.StringOutput `pulumi:"sshPublicKeyId"` + // The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. + Status pulumi.StringOutput `pulumi:"status"` + // The name of the IAM user to associate the SSH public key with. + Username pulumi.StringOutput `pulumi:"username"` +} + +// NewSshKey registers a new resource with the given unique name, arguments, and options. +func NewSshKey(ctx *pulumi.Context, + name string, args *SshKeyArgs, opts ...pulumi.ResourceOption) (*SshKey, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Encoding == nil { + return nil, errors.New("invalid value for required argument 'Encoding'") + } + if args.PublicKey == nil { + return nil, errors.New("invalid value for required argument 'PublicKey'") + } + if args.Username == nil { + return nil, errors.New("invalid value for required argument 'Username'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SshKey + err := ctx.RegisterResource("aws:iam/sshKey:SshKey", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSshKey gets an existing SshKey resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSshKey(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SshKeyState, opts ...pulumi.ResourceOption) (*SshKey, error) { + var resource SshKey + err := ctx.ReadResource("aws:iam/sshKey:SshKey", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SshKey resources. +type sshKeyState struct { + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding *string `pulumi:"encoding"` + // The MD5 message digest of the SSH public key. + Fingerprint *string `pulumi:"fingerprint"` + // The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. + PublicKey *string `pulumi:"publicKey"` + // The unique identifier for the SSH public key. + SshPublicKeyId *string `pulumi:"sshPublicKeyId"` + // The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. + Status *string `pulumi:"status"` + // The name of the IAM user to associate the SSH public key with. + Username *string `pulumi:"username"` +} + +type SshKeyState struct { + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding pulumi.StringPtrInput + // The MD5 message digest of the SSH public key. + Fingerprint pulumi.StringPtrInput + // The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. + PublicKey pulumi.StringPtrInput + // The unique identifier for the SSH public key. + SshPublicKeyId pulumi.StringPtrInput + // The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. + Status pulumi.StringPtrInput + // The name of the IAM user to associate the SSH public key with. + Username pulumi.StringPtrInput +} + +func (SshKeyState) ElementType() reflect.Type { + return reflect.TypeOf((*sshKeyState)(nil)).Elem() +} + +type sshKeyArgs struct { + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding string `pulumi:"encoding"` + // The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. + PublicKey string `pulumi:"publicKey"` + // The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. + Status *string `pulumi:"status"` + // The name of the IAM user to associate the SSH public key with. + Username string `pulumi:"username"` +} + +// The set of arguments for constructing a SshKey resource. +type SshKeyArgs struct { + // Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. + Encoding pulumi.StringInput + // The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. + PublicKey pulumi.StringInput + // The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. + Status pulumi.StringPtrInput + // The name of the IAM user to associate the SSH public key with. + Username pulumi.StringInput +} + +func (SshKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*sshKeyArgs)(nil)).Elem() +} + +type SshKeyInput interface { + pulumi.Input + + ToSshKeyOutput() SshKeyOutput + ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput +} + +func (*SshKey) ElementType() reflect.Type { + return reflect.TypeOf((**SshKey)(nil)).Elem() +} + +func (i *SshKey) ToSshKeyOutput() SshKeyOutput { + return i.ToSshKeyOutputWithContext(context.Background()) +} + +func (i *SshKey) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SshKeyOutput) +} + +// SshKeyArrayInput is an input type that accepts SshKeyArray and SshKeyArrayOutput values. +// You can construct a concrete instance of `SshKeyArrayInput` via: +// +// SshKeyArray{ SshKeyArgs{...} } +type SshKeyArrayInput interface { + pulumi.Input + + ToSshKeyArrayOutput() SshKeyArrayOutput + ToSshKeyArrayOutputWithContext(context.Context) SshKeyArrayOutput +} + +type SshKeyArray []SshKeyInput + +func (SshKeyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SshKey)(nil)).Elem() +} + +func (i SshKeyArray) ToSshKeyArrayOutput() SshKeyArrayOutput { + return i.ToSshKeyArrayOutputWithContext(context.Background()) +} + +func (i SshKeyArray) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SshKeyArrayOutput) +} + +// SshKeyMapInput is an input type that accepts SshKeyMap and SshKeyMapOutput values. +// You can construct a concrete instance of `SshKeyMapInput` via: +// +// SshKeyMap{ "key": SshKeyArgs{...} } +type SshKeyMapInput interface { + pulumi.Input + + ToSshKeyMapOutput() SshKeyMapOutput + ToSshKeyMapOutputWithContext(context.Context) SshKeyMapOutput +} + +type SshKeyMap map[string]SshKeyInput + +func (SshKeyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SshKey)(nil)).Elem() +} + +func (i SshKeyMap) ToSshKeyMapOutput() SshKeyMapOutput { + return i.ToSshKeyMapOutputWithContext(context.Background()) +} + +func (i SshKeyMap) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SshKeyMapOutput) +} + +type SshKeyOutput struct{ *pulumi.OutputState } + +func (SshKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SshKey)(nil)).Elem() +} + +func (o SshKeyOutput) ToSshKeyOutput() SshKeyOutput { + return o +} + +func (o SshKeyOutput) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput { + return o +} + +// Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`. +func (o SshKeyOutput) Encoding() pulumi.StringOutput { + return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.Encoding }).(pulumi.StringOutput) +} + +// The MD5 message digest of the SSH public key. +func (o SshKeyOutput) Fingerprint() pulumi.StringOutput { + return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.Fingerprint }).(pulumi.StringOutput) +} + +// The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. +func (o SshKeyOutput) PublicKey() pulumi.StringOutput { + return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.PublicKey }).(pulumi.StringOutput) +} + +// The unique identifier for the SSH public key. +func (o SshKeyOutput) SshPublicKeyId() pulumi.StringOutput { + return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.SshPublicKeyId }).(pulumi.StringOutput) +} + +// The status to assign to the SSH public key. Active means the key can be used for authentication with an AWS CodeCommit repository. Inactive means the key cannot be used. Default is `active`. +func (o SshKeyOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// The name of the IAM user to associate the SSH public key with. +func (o SshKeyOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v *SshKey) pulumi.StringOutput { return v.Username }).(pulumi.StringOutput) +} + +type SshKeyArrayOutput struct{ *pulumi.OutputState } + +func (SshKeyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SshKey)(nil)).Elem() +} + +func (o SshKeyArrayOutput) ToSshKeyArrayOutput() SshKeyArrayOutput { + return o +} + +func (o SshKeyArrayOutput) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput { + return o +} + +func (o SshKeyArrayOutput) Index(i pulumi.IntInput) SshKeyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SshKey { + return vs[0].([]*SshKey)[vs[1].(int)] + }).(SshKeyOutput) +} + +type SshKeyMapOutput struct{ *pulumi.OutputState } + +func (SshKeyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SshKey)(nil)).Elem() +} + +func (o SshKeyMapOutput) ToSshKeyMapOutput() SshKeyMapOutput { + return o +} + +func (o SshKeyMapOutput) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput { + return o +} + +func (o SshKeyMapOutput) MapIndex(k pulumi.StringInput) SshKeyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SshKey { + return vs[0].(map[string]*SshKey)[vs[1].(string)] + }).(SshKeyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SshKeyInput)(nil)).Elem(), &SshKey{}) + pulumi.RegisterInputType(reflect.TypeOf((*SshKeyArrayInput)(nil)).Elem(), SshKeyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SshKeyMapInput)(nil)).Elem(), SshKeyMap{}) + pulumi.RegisterOutputType(SshKeyOutput{}) + pulumi.RegisterOutputType(SshKeyArrayOutput{}) + pulumi.RegisterOutputType(SshKeyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/user.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/user.go new file mode 100644 index 000000000..04208d7f6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/user.go @@ -0,0 +1,402 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM user. +// +// > *NOTE:* If policies are attached to the user via the `iam.PolicyAttachment` resource and you are modifying the user `name` or `path`, the `forceDestroy` argument must be set to `true` and applied before attempting the operation otherwise you will encounter a `DeleteConflict` error. The `iam.UserPolicyAttachment` resource (recommended) does not have this requirement. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// lbUser, err := iam.NewUser(ctx, "lbUser", &iam.UserArgs{ +// Path: pulumi.String("/system/"), +// Tags: pulumi.StringMap{ +// "tag-key": pulumi.String("tag-value"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewAccessKey(ctx, "lbAccessKey", &iam.AccessKeyArgs{ +// User: lbUser.Name, +// }) +// if err != nil { +// return err +// } +// lbRoPolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Actions: []string{ +// "ec2:Describe*", +// }, +// Resources: []string{ +// "*", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = iam.NewUserPolicy(ctx, "lbRoUserPolicy", &iam.UserPolicyArgs{ +// User: lbUser.Name, +// Policy: *pulumi.String(lbRoPolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Users using the `name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/user:User lb loadbalancer +// +// ``` +type User struct { + pulumi.CustomResourceState + + // The ARN assigned by AWS for this user. + Arn pulumi.StringOutput `pulumi:"arn"` + // When destroying this user, destroy even if it + // has non-provider-managed IAM access keys, login profile or MFA devices. Without `forceDestroy` + // a user with non-provider-managed access keys and login profile will fail to be destroyed. + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // The user's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". + Name pulumi.StringOutput `pulumi:"name"` + // Path in which to create the user. + Path pulumi.StringPtrOutput `pulumi:"path"` + // The ARN of the policy that is used to set the permissions boundary for the user. + PermissionsBoundary pulumi.StringPtrOutput `pulumi:"permissionsBoundary"` + // Key-value mapping of tags for the IAM user. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The [unique ID][1] assigned by AWS. + UniqueId pulumi.StringOutput `pulumi:"uniqueId"` +} + +// NewUser registers a new resource with the given unique name, arguments, and options. +func NewUser(ctx *pulumi.Context, + name string, args *UserArgs, opts ...pulumi.ResourceOption) (*User, error) { + if args == nil { + args = &UserArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource User + err := ctx.RegisterResource("aws:iam/user:User", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUser gets an existing User resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUser(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserState, opts ...pulumi.ResourceOption) (*User, error) { + var resource User + err := ctx.ReadResource("aws:iam/user:User", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering User resources. +type userState struct { + // The ARN assigned by AWS for this user. + Arn *string `pulumi:"arn"` + // When destroying this user, destroy even if it + // has non-provider-managed IAM access keys, login profile or MFA devices. Without `forceDestroy` + // a user with non-provider-managed access keys and login profile will fail to be destroyed. + ForceDestroy *bool `pulumi:"forceDestroy"` + // The user's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". + Name *string `pulumi:"name"` + // Path in which to create the user. + Path *string `pulumi:"path"` + // The ARN of the policy that is used to set the permissions boundary for the user. + PermissionsBoundary *string `pulumi:"permissionsBoundary"` + // Key-value mapping of tags for the IAM user. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The [unique ID][1] assigned by AWS. + UniqueId *string `pulumi:"uniqueId"` +} + +type UserState struct { + // The ARN assigned by AWS for this user. + Arn pulumi.StringPtrInput + // When destroying this user, destroy even if it + // has non-provider-managed IAM access keys, login profile or MFA devices. Without `forceDestroy` + // a user with non-provider-managed access keys and login profile will fail to be destroyed. + ForceDestroy pulumi.BoolPtrInput + // The user's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". + Name pulumi.StringPtrInput + // Path in which to create the user. + Path pulumi.StringPtrInput + // The ARN of the policy that is used to set the permissions boundary for the user. + PermissionsBoundary pulumi.StringPtrInput + // Key-value mapping of tags for the IAM user. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The [unique ID][1] assigned by AWS. + UniqueId pulumi.StringPtrInput +} + +func (UserState) ElementType() reflect.Type { + return reflect.TypeOf((*userState)(nil)).Elem() +} + +type userArgs struct { + // When destroying this user, destroy even if it + // has non-provider-managed IAM access keys, login profile or MFA devices. Without `forceDestroy` + // a user with non-provider-managed access keys and login profile will fail to be destroyed. + ForceDestroy *bool `pulumi:"forceDestroy"` + // The user's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". + Name *string `pulumi:"name"` + // Path in which to create the user. + Path *string `pulumi:"path"` + // The ARN of the policy that is used to set the permissions boundary for the user. + PermissionsBoundary *string `pulumi:"permissionsBoundary"` + // Key-value mapping of tags for the IAM user. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a User resource. +type UserArgs struct { + // When destroying this user, destroy even if it + // has non-provider-managed IAM access keys, login profile or MFA devices. Without `forceDestroy` + // a user with non-provider-managed access keys and login profile will fail to be destroyed. + ForceDestroy pulumi.BoolPtrInput + // The user's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". + Name pulumi.StringPtrInput + // Path in which to create the user. + Path pulumi.StringPtrInput + // The ARN of the policy that is used to set the permissions boundary for the user. + PermissionsBoundary pulumi.StringPtrInput + // Key-value mapping of tags for the IAM user. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput +} + +func (UserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userArgs)(nil)).Elem() +} + +type UserInput interface { + pulumi.Input + + ToUserOutput() UserOutput + ToUserOutputWithContext(ctx context.Context) UserOutput +} + +func (*User) ElementType() reflect.Type { + return reflect.TypeOf((**User)(nil)).Elem() +} + +func (i *User) ToUserOutput() UserOutput { + return i.ToUserOutputWithContext(context.Background()) +} + +func (i *User) ToUserOutputWithContext(ctx context.Context) UserOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserOutput) +} + +// UserArrayInput is an input type that accepts UserArray and UserArrayOutput values. +// You can construct a concrete instance of `UserArrayInput` via: +// +// UserArray{ UserArgs{...} } +type UserArrayInput interface { + pulumi.Input + + ToUserArrayOutput() UserArrayOutput + ToUserArrayOutputWithContext(context.Context) UserArrayOutput +} + +type UserArray []UserInput + +func (UserArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*User)(nil)).Elem() +} + +func (i UserArray) ToUserArrayOutput() UserArrayOutput { + return i.ToUserArrayOutputWithContext(context.Background()) +} + +func (i UserArray) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserArrayOutput) +} + +// UserMapInput is an input type that accepts UserMap and UserMapOutput values. +// You can construct a concrete instance of `UserMapInput` via: +// +// UserMap{ "key": UserArgs{...} } +type UserMapInput interface { + pulumi.Input + + ToUserMapOutput() UserMapOutput + ToUserMapOutputWithContext(context.Context) UserMapOutput +} + +type UserMap map[string]UserInput + +func (UserMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*User)(nil)).Elem() +} + +func (i UserMap) ToUserMapOutput() UserMapOutput { + return i.ToUserMapOutputWithContext(context.Background()) +} + +func (i UserMap) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserMapOutput) +} + +type UserOutput struct{ *pulumi.OutputState } + +func (UserOutput) ElementType() reflect.Type { + return reflect.TypeOf((**User)(nil)).Elem() +} + +func (o UserOutput) ToUserOutput() UserOutput { + return o +} + +func (o UserOutput) ToUserOutputWithContext(ctx context.Context) UserOutput { + return o +} + +// The ARN assigned by AWS for this user. +func (o UserOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *User) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// When destroying this user, destroy even if it +// has non-provider-managed IAM access keys, login profile or MFA devices. Without `forceDestroy` +// a user with non-provider-managed access keys and login profile will fail to be destroyed. +func (o UserOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *User) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// The user's name. The name must consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: `=,.@-_.`. User names are not distinguished by case. For example, you cannot create users named both "TESTUSER" and "testuser". +func (o UserOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *User) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Path in which to create the user. +func (o UserOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *User) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// The ARN of the policy that is used to set the permissions boundary for the user. +func (o UserOutput) PermissionsBoundary() pulumi.StringPtrOutput { + return o.ApplyT(func(v *User) pulumi.StringPtrOutput { return v.PermissionsBoundary }).(pulumi.StringPtrOutput) +} + +// Key-value mapping of tags for the IAM user. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o UserOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *User) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o UserOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *User) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The [unique ID][1] assigned by AWS. +func (o UserOutput) UniqueId() pulumi.StringOutput { + return o.ApplyT(func(v *User) pulumi.StringOutput { return v.UniqueId }).(pulumi.StringOutput) +} + +type UserArrayOutput struct{ *pulumi.OutputState } + +func (UserArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*User)(nil)).Elem() +} + +func (o UserArrayOutput) ToUserArrayOutput() UserArrayOutput { + return o +} + +func (o UserArrayOutput) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput { + return o +} + +func (o UserArrayOutput) Index(i pulumi.IntInput) UserOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *User { + return vs[0].([]*User)[vs[1].(int)] + }).(UserOutput) +} + +type UserMapOutput struct{ *pulumi.OutputState } + +func (UserMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*User)(nil)).Elem() +} + +func (o UserMapOutput) ToUserMapOutput() UserMapOutput { + return o +} + +func (o UserMapOutput) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput { + return o +} + +func (o UserMapOutput) MapIndex(k pulumi.StringInput) UserOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *User { + return vs[0].(map[string]*User)[vs[1].(string)] + }).(UserOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserInput)(nil)).Elem(), &User{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserArrayInput)(nil)).Elem(), UserArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserMapInput)(nil)).Elem(), UserMap{}) + pulumi.RegisterOutputType(UserOutput{}) + pulumi.RegisterOutputType(UserArrayOutput{}) + pulumi.RegisterOutputType(UserMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userGroupMembership.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userGroupMembership.go new file mode 100644 index 000000000..9420f3d10 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userGroupMembership.go @@ -0,0 +1,307 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource for adding an IAM User to IAM Groups. This +// resource can be used multiple times with the same user for non-overlapping +// groups. +// +// To exclusively manage the users in a group, see the +// `iam.GroupMembership` resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// user1, err := iam.NewUser(ctx, "user1", nil) +// if err != nil { +// return err +// } +// group1, err := iam.NewGroup(ctx, "group1", nil) +// if err != nil { +// return err +// } +// group2, err := iam.NewGroup(ctx, "group2", nil) +// if err != nil { +// return err +// } +// _, err = iam.NewUserGroupMembership(ctx, "example1", &iam.UserGroupMembershipArgs{ +// User: user1.Name, +// Groups: pulumi.StringArray{ +// group1.Name, +// group2.Name, +// }, +// }) +// if err != nil { +// return err +// } +// group3, err := iam.NewGroup(ctx, "group3", nil) +// if err != nil { +// return err +// } +// _, err = iam.NewUserGroupMembership(ctx, "example2", &iam.UserGroupMembershipArgs{ +// User: user1.Name, +// Groups: pulumi.StringArray{ +// group3.Name, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM user group membership using the user name and group names separated by `/`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/userGroupMembership:UserGroupMembership example1 user1/group1/group2 +// +// ``` +type UserGroupMembership struct { + pulumi.CustomResourceState + + // A list of IAM Groups to add the user to + Groups pulumi.StringArrayOutput `pulumi:"groups"` + // The name of the IAM User to add to groups + User pulumi.StringOutput `pulumi:"user"` +} + +// NewUserGroupMembership registers a new resource with the given unique name, arguments, and options. +func NewUserGroupMembership(ctx *pulumi.Context, + name string, args *UserGroupMembershipArgs, opts ...pulumi.ResourceOption) (*UserGroupMembership, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Groups == nil { + return nil, errors.New("invalid value for required argument 'Groups'") + } + if args.User == nil { + return nil, errors.New("invalid value for required argument 'User'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserGroupMembership + err := ctx.RegisterResource("aws:iam/userGroupMembership:UserGroupMembership", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserGroupMembership gets an existing UserGroupMembership resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUserGroupMembership(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserGroupMembershipState, opts ...pulumi.ResourceOption) (*UserGroupMembership, error) { + var resource UserGroupMembership + err := ctx.ReadResource("aws:iam/userGroupMembership:UserGroupMembership", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserGroupMembership resources. +type userGroupMembershipState struct { + // A list of IAM Groups to add the user to + Groups []string `pulumi:"groups"` + // The name of the IAM User to add to groups + User *string `pulumi:"user"` +} + +type UserGroupMembershipState struct { + // A list of IAM Groups to add the user to + Groups pulumi.StringArrayInput + // The name of the IAM User to add to groups + User pulumi.StringPtrInput +} + +func (UserGroupMembershipState) ElementType() reflect.Type { + return reflect.TypeOf((*userGroupMembershipState)(nil)).Elem() +} + +type userGroupMembershipArgs struct { + // A list of IAM Groups to add the user to + Groups []string `pulumi:"groups"` + // The name of the IAM User to add to groups + User string `pulumi:"user"` +} + +// The set of arguments for constructing a UserGroupMembership resource. +type UserGroupMembershipArgs struct { + // A list of IAM Groups to add the user to + Groups pulumi.StringArrayInput + // The name of the IAM User to add to groups + User pulumi.StringInput +} + +func (UserGroupMembershipArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userGroupMembershipArgs)(nil)).Elem() +} + +type UserGroupMembershipInput interface { + pulumi.Input + + ToUserGroupMembershipOutput() UserGroupMembershipOutput + ToUserGroupMembershipOutputWithContext(ctx context.Context) UserGroupMembershipOutput +} + +func (*UserGroupMembership) ElementType() reflect.Type { + return reflect.TypeOf((**UserGroupMembership)(nil)).Elem() +} + +func (i *UserGroupMembership) ToUserGroupMembershipOutput() UserGroupMembershipOutput { + return i.ToUserGroupMembershipOutputWithContext(context.Background()) +} + +func (i *UserGroupMembership) ToUserGroupMembershipOutputWithContext(ctx context.Context) UserGroupMembershipOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserGroupMembershipOutput) +} + +// UserGroupMembershipArrayInput is an input type that accepts UserGroupMembershipArray and UserGroupMembershipArrayOutput values. +// You can construct a concrete instance of `UserGroupMembershipArrayInput` via: +// +// UserGroupMembershipArray{ UserGroupMembershipArgs{...} } +type UserGroupMembershipArrayInput interface { + pulumi.Input + + ToUserGroupMembershipArrayOutput() UserGroupMembershipArrayOutput + ToUserGroupMembershipArrayOutputWithContext(context.Context) UserGroupMembershipArrayOutput +} + +type UserGroupMembershipArray []UserGroupMembershipInput + +func (UserGroupMembershipArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserGroupMembership)(nil)).Elem() +} + +func (i UserGroupMembershipArray) ToUserGroupMembershipArrayOutput() UserGroupMembershipArrayOutput { + return i.ToUserGroupMembershipArrayOutputWithContext(context.Background()) +} + +func (i UserGroupMembershipArray) ToUserGroupMembershipArrayOutputWithContext(ctx context.Context) UserGroupMembershipArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserGroupMembershipArrayOutput) +} + +// UserGroupMembershipMapInput is an input type that accepts UserGroupMembershipMap and UserGroupMembershipMapOutput values. +// You can construct a concrete instance of `UserGroupMembershipMapInput` via: +// +// UserGroupMembershipMap{ "key": UserGroupMembershipArgs{...} } +type UserGroupMembershipMapInput interface { + pulumi.Input + + ToUserGroupMembershipMapOutput() UserGroupMembershipMapOutput + ToUserGroupMembershipMapOutputWithContext(context.Context) UserGroupMembershipMapOutput +} + +type UserGroupMembershipMap map[string]UserGroupMembershipInput + +func (UserGroupMembershipMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserGroupMembership)(nil)).Elem() +} + +func (i UserGroupMembershipMap) ToUserGroupMembershipMapOutput() UserGroupMembershipMapOutput { + return i.ToUserGroupMembershipMapOutputWithContext(context.Background()) +} + +func (i UserGroupMembershipMap) ToUserGroupMembershipMapOutputWithContext(ctx context.Context) UserGroupMembershipMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserGroupMembershipMapOutput) +} + +type UserGroupMembershipOutput struct{ *pulumi.OutputState } + +func (UserGroupMembershipOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserGroupMembership)(nil)).Elem() +} + +func (o UserGroupMembershipOutput) ToUserGroupMembershipOutput() UserGroupMembershipOutput { + return o +} + +func (o UserGroupMembershipOutput) ToUserGroupMembershipOutputWithContext(ctx context.Context) UserGroupMembershipOutput { + return o +} + +// A list of IAM Groups to add the user to +func (o UserGroupMembershipOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *UserGroupMembership) pulumi.StringArrayOutput { return v.Groups }).(pulumi.StringArrayOutput) +} + +// The name of the IAM User to add to groups +func (o UserGroupMembershipOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v *UserGroupMembership) pulumi.StringOutput { return v.User }).(pulumi.StringOutput) +} + +type UserGroupMembershipArrayOutput struct{ *pulumi.OutputState } + +func (UserGroupMembershipArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserGroupMembership)(nil)).Elem() +} + +func (o UserGroupMembershipArrayOutput) ToUserGroupMembershipArrayOutput() UserGroupMembershipArrayOutput { + return o +} + +func (o UserGroupMembershipArrayOutput) ToUserGroupMembershipArrayOutputWithContext(ctx context.Context) UserGroupMembershipArrayOutput { + return o +} + +func (o UserGroupMembershipArrayOutput) Index(i pulumi.IntInput) UserGroupMembershipOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserGroupMembership { + return vs[0].([]*UserGroupMembership)[vs[1].(int)] + }).(UserGroupMembershipOutput) +} + +type UserGroupMembershipMapOutput struct{ *pulumi.OutputState } + +func (UserGroupMembershipMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserGroupMembership)(nil)).Elem() +} + +func (o UserGroupMembershipMapOutput) ToUserGroupMembershipMapOutput() UserGroupMembershipMapOutput { + return o +} + +func (o UserGroupMembershipMapOutput) ToUserGroupMembershipMapOutputWithContext(ctx context.Context) UserGroupMembershipMapOutput { + return o +} + +func (o UserGroupMembershipMapOutput) MapIndex(k pulumi.StringInput) UserGroupMembershipOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserGroupMembership { + return vs[0].(map[string]*UserGroupMembership)[vs[1].(string)] + }).(UserGroupMembershipOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserGroupMembershipInput)(nil)).Elem(), &UserGroupMembership{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserGroupMembershipArrayInput)(nil)).Elem(), UserGroupMembershipArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserGroupMembershipMapInput)(nil)).Elem(), UserGroupMembershipMap{}) + pulumi.RegisterOutputType(UserGroupMembershipOutput{}) + pulumi.RegisterOutputType(UserGroupMembershipArrayOutput{}) + pulumi.RegisterOutputType(UserGroupMembershipMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userLoginProfile.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userLoginProfile.go new file mode 100644 index 000000000..19a6a02f6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userLoginProfile.go @@ -0,0 +1,346 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages an IAM User Login Profile with limited support for password creation during this provider resource creation. Uses PGP to encrypt the password for safe transport to the user. PGP keys can be obtained from Keybase. +// +// > To reset an IAM User login password via this provider, you can use delete and recreate this resource or change any of the arguments. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleUser, err := iam.NewUser(ctx, "exampleUser", &iam.UserArgs{ +// Path: pulumi.String("/"), +// ForceDestroy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// exampleUserLoginProfile, err := iam.NewUserLoginProfile(ctx, "exampleUserLoginProfile", &iam.UserLoginProfileArgs{ +// User: exampleUser.Name, +// PgpKey: pulumi.String("keybase:some_person_that_exists"), +// }) +// if err != nil { +// return err +// } +// ctx.Export("password", exampleUserLoginProfile.EncryptedPassword) +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM User Login Profiles without password information via the IAM User name. For example: +// +// ```sh +// +// $ pulumi import aws:iam/userLoginProfile:UserLoginProfile example myusername +// +// ``` +// +// Since Pulumi has no method to read the PGP or password information during import, use the resource options `ignore_changes` argument to ignore them (unless you want to recreate a password). For example: +type UserLoginProfile struct { + pulumi.CustomResourceState + + // The encrypted password, base64 encoded. Only available if password was handled on resource creation, not import. + EncryptedPassword pulumi.StringOutput `pulumi:"encryptedPassword"` + // The fingerprint of the PGP key used to encrypt the password. Only available if password was handled on this provider resource creation, not import. + KeyFingerprint pulumi.StringOutput `pulumi:"keyFingerprint"` + // The plain text password, only available when `pgpKey` is not provided. + Password pulumi.StringOutput `pulumi:"password"` + // The length of the generated password on resource creation. Only applies on resource creation. Drift detection is not possible with this argument. Default value is `20`. + PasswordLength pulumi.IntPtrOutput `pulumi:"passwordLength"` + // Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. + PasswordResetRequired pulumi.BoolOutput `pulumi:"passwordResetRequired"` + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. + PgpKey pulumi.StringPtrOutput `pulumi:"pgpKey"` + // The IAM user's name. + User pulumi.StringOutput `pulumi:"user"` +} + +// NewUserLoginProfile registers a new resource with the given unique name, arguments, and options. +func NewUserLoginProfile(ctx *pulumi.Context, + name string, args *UserLoginProfileArgs, opts ...pulumi.ResourceOption) (*UserLoginProfile, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.User == nil { + return nil, errors.New("invalid value for required argument 'User'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserLoginProfile + err := ctx.RegisterResource("aws:iam/userLoginProfile:UserLoginProfile", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserLoginProfile gets an existing UserLoginProfile resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUserLoginProfile(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserLoginProfileState, opts ...pulumi.ResourceOption) (*UserLoginProfile, error) { + var resource UserLoginProfile + err := ctx.ReadResource("aws:iam/userLoginProfile:UserLoginProfile", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserLoginProfile resources. +type userLoginProfileState struct { + // The encrypted password, base64 encoded. Only available if password was handled on resource creation, not import. + EncryptedPassword *string `pulumi:"encryptedPassword"` + // The fingerprint of the PGP key used to encrypt the password. Only available if password was handled on this provider resource creation, not import. + KeyFingerprint *string `pulumi:"keyFingerprint"` + // The plain text password, only available when `pgpKey` is not provided. + Password *string `pulumi:"password"` + // The length of the generated password on resource creation. Only applies on resource creation. Drift detection is not possible with this argument. Default value is `20`. + PasswordLength *int `pulumi:"passwordLength"` + // Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. + PasswordResetRequired *bool `pulumi:"passwordResetRequired"` + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. + PgpKey *string `pulumi:"pgpKey"` + // The IAM user's name. + User *string `pulumi:"user"` +} + +type UserLoginProfileState struct { + // The encrypted password, base64 encoded. Only available if password was handled on resource creation, not import. + EncryptedPassword pulumi.StringPtrInput + // The fingerprint of the PGP key used to encrypt the password. Only available if password was handled on this provider resource creation, not import. + KeyFingerprint pulumi.StringPtrInput + // The plain text password, only available when `pgpKey` is not provided. + Password pulumi.StringPtrInput + // The length of the generated password on resource creation. Only applies on resource creation. Drift detection is not possible with this argument. Default value is `20`. + PasswordLength pulumi.IntPtrInput + // Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. + PasswordResetRequired pulumi.BoolPtrInput + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. + PgpKey pulumi.StringPtrInput + // The IAM user's name. + User pulumi.StringPtrInput +} + +func (UserLoginProfileState) ElementType() reflect.Type { + return reflect.TypeOf((*userLoginProfileState)(nil)).Elem() +} + +type userLoginProfileArgs struct { + // The length of the generated password on resource creation. Only applies on resource creation. Drift detection is not possible with this argument. Default value is `20`. + PasswordLength *int `pulumi:"passwordLength"` + // Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. + PasswordResetRequired *bool `pulumi:"passwordResetRequired"` + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. + PgpKey *string `pulumi:"pgpKey"` + // The IAM user's name. + User string `pulumi:"user"` +} + +// The set of arguments for constructing a UserLoginProfile resource. +type UserLoginProfileArgs struct { + // The length of the generated password on resource creation. Only applies on resource creation. Drift detection is not possible with this argument. Default value is `20`. + PasswordLength pulumi.IntPtrInput + // Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. + PasswordResetRequired pulumi.BoolPtrInput + // Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. + PgpKey pulumi.StringPtrInput + // The IAM user's name. + User pulumi.StringInput +} + +func (UserLoginProfileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userLoginProfileArgs)(nil)).Elem() +} + +type UserLoginProfileInput interface { + pulumi.Input + + ToUserLoginProfileOutput() UserLoginProfileOutput + ToUserLoginProfileOutputWithContext(ctx context.Context) UserLoginProfileOutput +} + +func (*UserLoginProfile) ElementType() reflect.Type { + return reflect.TypeOf((**UserLoginProfile)(nil)).Elem() +} + +func (i *UserLoginProfile) ToUserLoginProfileOutput() UserLoginProfileOutput { + return i.ToUserLoginProfileOutputWithContext(context.Background()) +} + +func (i *UserLoginProfile) ToUserLoginProfileOutputWithContext(ctx context.Context) UserLoginProfileOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserLoginProfileOutput) +} + +// UserLoginProfileArrayInput is an input type that accepts UserLoginProfileArray and UserLoginProfileArrayOutput values. +// You can construct a concrete instance of `UserLoginProfileArrayInput` via: +// +// UserLoginProfileArray{ UserLoginProfileArgs{...} } +type UserLoginProfileArrayInput interface { + pulumi.Input + + ToUserLoginProfileArrayOutput() UserLoginProfileArrayOutput + ToUserLoginProfileArrayOutputWithContext(context.Context) UserLoginProfileArrayOutput +} + +type UserLoginProfileArray []UserLoginProfileInput + +func (UserLoginProfileArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserLoginProfile)(nil)).Elem() +} + +func (i UserLoginProfileArray) ToUserLoginProfileArrayOutput() UserLoginProfileArrayOutput { + return i.ToUserLoginProfileArrayOutputWithContext(context.Background()) +} + +func (i UserLoginProfileArray) ToUserLoginProfileArrayOutputWithContext(ctx context.Context) UserLoginProfileArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserLoginProfileArrayOutput) +} + +// UserLoginProfileMapInput is an input type that accepts UserLoginProfileMap and UserLoginProfileMapOutput values. +// You can construct a concrete instance of `UserLoginProfileMapInput` via: +// +// UserLoginProfileMap{ "key": UserLoginProfileArgs{...} } +type UserLoginProfileMapInput interface { + pulumi.Input + + ToUserLoginProfileMapOutput() UserLoginProfileMapOutput + ToUserLoginProfileMapOutputWithContext(context.Context) UserLoginProfileMapOutput +} + +type UserLoginProfileMap map[string]UserLoginProfileInput + +func (UserLoginProfileMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserLoginProfile)(nil)).Elem() +} + +func (i UserLoginProfileMap) ToUserLoginProfileMapOutput() UserLoginProfileMapOutput { + return i.ToUserLoginProfileMapOutputWithContext(context.Background()) +} + +func (i UserLoginProfileMap) ToUserLoginProfileMapOutputWithContext(ctx context.Context) UserLoginProfileMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserLoginProfileMapOutput) +} + +type UserLoginProfileOutput struct{ *pulumi.OutputState } + +func (UserLoginProfileOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserLoginProfile)(nil)).Elem() +} + +func (o UserLoginProfileOutput) ToUserLoginProfileOutput() UserLoginProfileOutput { + return o +} + +func (o UserLoginProfileOutput) ToUserLoginProfileOutputWithContext(ctx context.Context) UserLoginProfileOutput { + return o +} + +// The encrypted password, base64 encoded. Only available if password was handled on resource creation, not import. +func (o UserLoginProfileOutput) EncryptedPassword() pulumi.StringOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.StringOutput { return v.EncryptedPassword }).(pulumi.StringOutput) +} + +// The fingerprint of the PGP key used to encrypt the password. Only available if password was handled on this provider resource creation, not import. +func (o UserLoginProfileOutput) KeyFingerprint() pulumi.StringOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.StringOutput { return v.KeyFingerprint }).(pulumi.StringOutput) +} + +// The plain text password, only available when `pgpKey` is not provided. +func (o UserLoginProfileOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.StringOutput { return v.Password }).(pulumi.StringOutput) +} + +// The length of the generated password on resource creation. Only applies on resource creation. Drift detection is not possible with this argument. Default value is `20`. +func (o UserLoginProfileOutput) PasswordLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.IntPtrOutput { return v.PasswordLength }).(pulumi.IntPtrOutput) +} + +// Whether the user should be forced to reset the generated password on resource creation. Only applies on resource creation. +func (o UserLoginProfileOutput) PasswordResetRequired() pulumi.BoolOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.BoolOutput { return v.PasswordResetRequired }).(pulumi.BoolOutput) +} + +// Either a base-64 encoded PGP public key, or a keybase username in the form `keybase:username`. Only applies on resource creation. Drift detection is not possible with this argument. +func (o UserLoginProfileOutput) PgpKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.StringPtrOutput { return v.PgpKey }).(pulumi.StringPtrOutput) +} + +// The IAM user's name. +func (o UserLoginProfileOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v *UserLoginProfile) pulumi.StringOutput { return v.User }).(pulumi.StringOutput) +} + +type UserLoginProfileArrayOutput struct{ *pulumi.OutputState } + +func (UserLoginProfileArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserLoginProfile)(nil)).Elem() +} + +func (o UserLoginProfileArrayOutput) ToUserLoginProfileArrayOutput() UserLoginProfileArrayOutput { + return o +} + +func (o UserLoginProfileArrayOutput) ToUserLoginProfileArrayOutputWithContext(ctx context.Context) UserLoginProfileArrayOutput { + return o +} + +func (o UserLoginProfileArrayOutput) Index(i pulumi.IntInput) UserLoginProfileOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserLoginProfile { + return vs[0].([]*UserLoginProfile)[vs[1].(int)] + }).(UserLoginProfileOutput) +} + +type UserLoginProfileMapOutput struct{ *pulumi.OutputState } + +func (UserLoginProfileMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserLoginProfile)(nil)).Elem() +} + +func (o UserLoginProfileMapOutput) ToUserLoginProfileMapOutput() UserLoginProfileMapOutput { + return o +} + +func (o UserLoginProfileMapOutput) ToUserLoginProfileMapOutputWithContext(ctx context.Context) UserLoginProfileMapOutput { + return o +} + +func (o UserLoginProfileMapOutput) MapIndex(k pulumi.StringInput) UserLoginProfileOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserLoginProfile { + return vs[0].(map[string]*UserLoginProfile)[vs[1].(string)] + }).(UserLoginProfileOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserLoginProfileInput)(nil)).Elem(), &UserLoginProfile{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserLoginProfileArrayInput)(nil)).Elem(), UserLoginProfileArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserLoginProfileMapInput)(nil)).Elem(), UserLoginProfileMap{}) + pulumi.RegisterOutputType(UserLoginProfileOutput{}) + pulumi.RegisterOutputType(UserLoginProfileArrayOutput{}) + pulumi.RegisterOutputType(UserLoginProfileMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicy.go new file mode 100644 index 000000000..0b83fd87a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicy.go @@ -0,0 +1,334 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM policy attached to a user. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// lbUser, err := iam.NewUser(ctx, "lbUser", &iam.UserArgs{ +// Path: pulumi.String("/system/"), +// }) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "Version": "2012-10-17", +// "Statement": []map[string]interface{}{ +// map[string]interface{}{ +// "Action": []string{ +// "ec2:Describe*", +// }, +// "Effect": "Allow", +// "Resource": "*", +// }, +// }, +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// _, err = iam.NewUserPolicy(ctx, "lbRo", &iam.UserPolicyArgs{ +// User: lbUser.Name, +// Policy: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewAccessKey(ctx, "lbAccessKey", &iam.AccessKeyArgs{ +// User: lbUser.Name, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM User Policies using the `user_name:user_policy_name`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/userPolicy:UserPolicy mypolicy user_of_mypolicy_name:mypolicy_name +// +// ``` +type UserPolicy struct { + pulumi.CustomResourceState + + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name pulumi.StringOutput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` + // The policy document. This is a JSON formatted string. + Policy pulumi.StringOutput `pulumi:"policy"` + // IAM user to which to attach this policy. + User pulumi.StringOutput `pulumi:"user"` +} + +// NewUserPolicy registers a new resource with the given unique name, arguments, and options. +func NewUserPolicy(ctx *pulumi.Context, + name string, args *UserPolicyArgs, opts ...pulumi.ResourceOption) (*UserPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + if args.User == nil { + return nil, errors.New("invalid value for required argument 'User'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserPolicy + err := ctx.RegisterResource("aws:iam/userPolicy:UserPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserPolicy gets an existing UserPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUserPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserPolicyState, opts ...pulumi.ResourceOption) (*UserPolicy, error) { + var resource UserPolicy + err := ctx.ReadResource("aws:iam/userPolicy:UserPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserPolicy resources. +type userPolicyState struct { + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The policy document. This is a JSON formatted string. + Policy interface{} `pulumi:"policy"` + // IAM user to which to attach this policy. + User *string `pulumi:"user"` +} + +type UserPolicyState struct { + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The policy document. This is a JSON formatted string. + Policy pulumi.Input + // IAM user to which to attach this policy. + User pulumi.StringPtrInput +} + +func (UserPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*userPolicyState)(nil)).Elem() +} + +type userPolicyArgs struct { + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // The policy document. This is a JSON formatted string. + Policy interface{} `pulumi:"policy"` + // IAM user to which to attach this policy. + User string `pulumi:"user"` +} + +// The set of arguments for constructing a UserPolicy resource. +type UserPolicyArgs struct { + // The name of the policy. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput + // The policy document. This is a JSON formatted string. + Policy pulumi.Input + // IAM user to which to attach this policy. + User pulumi.StringInput +} + +func (UserPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userPolicyArgs)(nil)).Elem() +} + +type UserPolicyInput interface { + pulumi.Input + + ToUserPolicyOutput() UserPolicyOutput + ToUserPolicyOutputWithContext(ctx context.Context) UserPolicyOutput +} + +func (*UserPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**UserPolicy)(nil)).Elem() +} + +func (i *UserPolicy) ToUserPolicyOutput() UserPolicyOutput { + return i.ToUserPolicyOutputWithContext(context.Background()) +} + +func (i *UserPolicy) ToUserPolicyOutputWithContext(ctx context.Context) UserPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPolicyOutput) +} + +// UserPolicyArrayInput is an input type that accepts UserPolicyArray and UserPolicyArrayOutput values. +// You can construct a concrete instance of `UserPolicyArrayInput` via: +// +// UserPolicyArray{ UserPolicyArgs{...} } +type UserPolicyArrayInput interface { + pulumi.Input + + ToUserPolicyArrayOutput() UserPolicyArrayOutput + ToUserPolicyArrayOutputWithContext(context.Context) UserPolicyArrayOutput +} + +type UserPolicyArray []UserPolicyInput + +func (UserPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserPolicy)(nil)).Elem() +} + +func (i UserPolicyArray) ToUserPolicyArrayOutput() UserPolicyArrayOutput { + return i.ToUserPolicyArrayOutputWithContext(context.Background()) +} + +func (i UserPolicyArray) ToUserPolicyArrayOutputWithContext(ctx context.Context) UserPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPolicyArrayOutput) +} + +// UserPolicyMapInput is an input type that accepts UserPolicyMap and UserPolicyMapOutput values. +// You can construct a concrete instance of `UserPolicyMapInput` via: +// +// UserPolicyMap{ "key": UserPolicyArgs{...} } +type UserPolicyMapInput interface { + pulumi.Input + + ToUserPolicyMapOutput() UserPolicyMapOutput + ToUserPolicyMapOutputWithContext(context.Context) UserPolicyMapOutput +} + +type UserPolicyMap map[string]UserPolicyInput + +func (UserPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserPolicy)(nil)).Elem() +} + +func (i UserPolicyMap) ToUserPolicyMapOutput() UserPolicyMapOutput { + return i.ToUserPolicyMapOutputWithContext(context.Background()) +} + +func (i UserPolicyMap) ToUserPolicyMapOutputWithContext(ctx context.Context) UserPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPolicyMapOutput) +} + +type UserPolicyOutput struct{ *pulumi.OutputState } + +func (UserPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserPolicy)(nil)).Elem() +} + +func (o UserPolicyOutput) ToUserPolicyOutput() UserPolicyOutput { + return o +} + +func (o UserPolicyOutput) ToUserPolicyOutputWithContext(ctx context.Context) UserPolicyOutput { + return o +} + +// The name of the policy. If omitted, the provider will assign a random, unique name. +func (o UserPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *UserPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o UserPolicyOutput) NamePrefix() pulumi.StringOutput { + return o.ApplyT(func(v *UserPolicy) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) +} + +// The policy document. This is a JSON formatted string. +func (o UserPolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *UserPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +// IAM user to which to attach this policy. +func (o UserPolicyOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v *UserPolicy) pulumi.StringOutput { return v.User }).(pulumi.StringOutput) +} + +type UserPolicyArrayOutput struct{ *pulumi.OutputState } + +func (UserPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserPolicy)(nil)).Elem() +} + +func (o UserPolicyArrayOutput) ToUserPolicyArrayOutput() UserPolicyArrayOutput { + return o +} + +func (o UserPolicyArrayOutput) ToUserPolicyArrayOutputWithContext(ctx context.Context) UserPolicyArrayOutput { + return o +} + +func (o UserPolicyArrayOutput) Index(i pulumi.IntInput) UserPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserPolicy { + return vs[0].([]*UserPolicy)[vs[1].(int)] + }).(UserPolicyOutput) +} + +type UserPolicyMapOutput struct{ *pulumi.OutputState } + +func (UserPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserPolicy)(nil)).Elem() +} + +func (o UserPolicyMapOutput) ToUserPolicyMapOutput() UserPolicyMapOutput { + return o +} + +func (o UserPolicyMapOutput) ToUserPolicyMapOutputWithContext(ctx context.Context) UserPolicyMapOutput { + return o +} + +func (o UserPolicyMapOutput) MapIndex(k pulumi.StringInput) UserPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserPolicy { + return vs[0].(map[string]*UserPolicy)[vs[1].(string)] + }).(UserPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserPolicyInput)(nil)).Elem(), &UserPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserPolicyArrayInput)(nil)).Elem(), UserPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserPolicyMapInput)(nil)).Elem(), UserPolicyMap{}) + pulumi.RegisterOutputType(UserPolicyOutput{}) + pulumi.RegisterOutputType(UserPolicyArrayOutput{}) + pulumi.RegisterOutputType(UserPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicyAttachment.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicyAttachment.go new file mode 100644 index 000000000..a8fceb47e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/userPolicyAttachment.go @@ -0,0 +1,287 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Attaches a Managed IAM Policy to an IAM user +// +// > **NOTE:** The usage of this resource conflicts with the `iam.PolicyAttachment` resource and will permanently show a difference if both are defined. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// user, err := iam.NewUser(ctx, "user", nil) +// if err != nil { +// return err +// } +// policy, err := iam.NewPolicy(ctx, "policy", &iam.PolicyArgs{ +// Description: pulumi.String("A test policy"), +// Policy: pulumi.Any("{ ... policy JSON ... }"), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewUserPolicyAttachment(ctx, "test-attach", &iam.UserPolicyAttachmentArgs{ +// User: user.Name, +// PolicyArn: policy.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM user policy attachments using the user name and policy arn separated by `/`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/userPolicyAttachment:UserPolicyAttachment test-attach test-user/arn:aws:iam::xxxxxxxxxxxx:policy/test-policy +// +// ``` +type UserPolicyAttachment struct { + pulumi.CustomResourceState + + // The ARN of the policy you want to apply + PolicyArn pulumi.StringOutput `pulumi:"policyArn"` + // The user the policy should be applied to + User pulumi.StringOutput `pulumi:"user"` +} + +// NewUserPolicyAttachment registers a new resource with the given unique name, arguments, and options. +func NewUserPolicyAttachment(ctx *pulumi.Context, + name string, args *UserPolicyAttachmentArgs, opts ...pulumi.ResourceOption) (*UserPolicyAttachment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PolicyArn == nil { + return nil, errors.New("invalid value for required argument 'PolicyArn'") + } + if args.User == nil { + return nil, errors.New("invalid value for required argument 'User'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource UserPolicyAttachment + err := ctx.RegisterResource("aws:iam/userPolicyAttachment:UserPolicyAttachment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetUserPolicyAttachment gets an existing UserPolicyAttachment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetUserPolicyAttachment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *UserPolicyAttachmentState, opts ...pulumi.ResourceOption) (*UserPolicyAttachment, error) { + var resource UserPolicyAttachment + err := ctx.ReadResource("aws:iam/userPolicyAttachment:UserPolicyAttachment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering UserPolicyAttachment resources. +type userPolicyAttachmentState struct { + // The ARN of the policy you want to apply + PolicyArn *string `pulumi:"policyArn"` + // The user the policy should be applied to + User interface{} `pulumi:"user"` +} + +type UserPolicyAttachmentState struct { + // The ARN of the policy you want to apply + PolicyArn pulumi.StringPtrInput + // The user the policy should be applied to + User pulumi.Input +} + +func (UserPolicyAttachmentState) ElementType() reflect.Type { + return reflect.TypeOf((*userPolicyAttachmentState)(nil)).Elem() +} + +type userPolicyAttachmentArgs struct { + // The ARN of the policy you want to apply + PolicyArn string `pulumi:"policyArn"` + // The user the policy should be applied to + User interface{} `pulumi:"user"` +} + +// The set of arguments for constructing a UserPolicyAttachment resource. +type UserPolicyAttachmentArgs struct { + // The ARN of the policy you want to apply + PolicyArn pulumi.StringInput + // The user the policy should be applied to + User pulumi.Input +} + +func (UserPolicyAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*userPolicyAttachmentArgs)(nil)).Elem() +} + +type UserPolicyAttachmentInput interface { + pulumi.Input + + ToUserPolicyAttachmentOutput() UserPolicyAttachmentOutput + ToUserPolicyAttachmentOutputWithContext(ctx context.Context) UserPolicyAttachmentOutput +} + +func (*UserPolicyAttachment) ElementType() reflect.Type { + return reflect.TypeOf((**UserPolicyAttachment)(nil)).Elem() +} + +func (i *UserPolicyAttachment) ToUserPolicyAttachmentOutput() UserPolicyAttachmentOutput { + return i.ToUserPolicyAttachmentOutputWithContext(context.Background()) +} + +func (i *UserPolicyAttachment) ToUserPolicyAttachmentOutputWithContext(ctx context.Context) UserPolicyAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPolicyAttachmentOutput) +} + +// UserPolicyAttachmentArrayInput is an input type that accepts UserPolicyAttachmentArray and UserPolicyAttachmentArrayOutput values. +// You can construct a concrete instance of `UserPolicyAttachmentArrayInput` via: +// +// UserPolicyAttachmentArray{ UserPolicyAttachmentArgs{...} } +type UserPolicyAttachmentArrayInput interface { + pulumi.Input + + ToUserPolicyAttachmentArrayOutput() UserPolicyAttachmentArrayOutput + ToUserPolicyAttachmentArrayOutputWithContext(context.Context) UserPolicyAttachmentArrayOutput +} + +type UserPolicyAttachmentArray []UserPolicyAttachmentInput + +func (UserPolicyAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserPolicyAttachment)(nil)).Elem() +} + +func (i UserPolicyAttachmentArray) ToUserPolicyAttachmentArrayOutput() UserPolicyAttachmentArrayOutput { + return i.ToUserPolicyAttachmentArrayOutputWithContext(context.Background()) +} + +func (i UserPolicyAttachmentArray) ToUserPolicyAttachmentArrayOutputWithContext(ctx context.Context) UserPolicyAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPolicyAttachmentArrayOutput) +} + +// UserPolicyAttachmentMapInput is an input type that accepts UserPolicyAttachmentMap and UserPolicyAttachmentMapOutput values. +// You can construct a concrete instance of `UserPolicyAttachmentMapInput` via: +// +// UserPolicyAttachmentMap{ "key": UserPolicyAttachmentArgs{...} } +type UserPolicyAttachmentMapInput interface { + pulumi.Input + + ToUserPolicyAttachmentMapOutput() UserPolicyAttachmentMapOutput + ToUserPolicyAttachmentMapOutputWithContext(context.Context) UserPolicyAttachmentMapOutput +} + +type UserPolicyAttachmentMap map[string]UserPolicyAttachmentInput + +func (UserPolicyAttachmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserPolicyAttachment)(nil)).Elem() +} + +func (i UserPolicyAttachmentMap) ToUserPolicyAttachmentMapOutput() UserPolicyAttachmentMapOutput { + return i.ToUserPolicyAttachmentMapOutputWithContext(context.Background()) +} + +func (i UserPolicyAttachmentMap) ToUserPolicyAttachmentMapOutputWithContext(ctx context.Context) UserPolicyAttachmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(UserPolicyAttachmentMapOutput) +} + +type UserPolicyAttachmentOutput struct{ *pulumi.OutputState } + +func (UserPolicyAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**UserPolicyAttachment)(nil)).Elem() +} + +func (o UserPolicyAttachmentOutput) ToUserPolicyAttachmentOutput() UserPolicyAttachmentOutput { + return o +} + +func (o UserPolicyAttachmentOutput) ToUserPolicyAttachmentOutputWithContext(ctx context.Context) UserPolicyAttachmentOutput { + return o +} + +// The ARN of the policy you want to apply +func (o UserPolicyAttachmentOutput) PolicyArn() pulumi.StringOutput { + return o.ApplyT(func(v *UserPolicyAttachment) pulumi.StringOutput { return v.PolicyArn }).(pulumi.StringOutput) +} + +// The user the policy should be applied to +func (o UserPolicyAttachmentOutput) User() pulumi.StringOutput { + return o.ApplyT(func(v *UserPolicyAttachment) pulumi.StringOutput { return v.User }).(pulumi.StringOutput) +} + +type UserPolicyAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (UserPolicyAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*UserPolicyAttachment)(nil)).Elem() +} + +func (o UserPolicyAttachmentArrayOutput) ToUserPolicyAttachmentArrayOutput() UserPolicyAttachmentArrayOutput { + return o +} + +func (o UserPolicyAttachmentArrayOutput) ToUserPolicyAttachmentArrayOutputWithContext(ctx context.Context) UserPolicyAttachmentArrayOutput { + return o +} + +func (o UserPolicyAttachmentArrayOutput) Index(i pulumi.IntInput) UserPolicyAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *UserPolicyAttachment { + return vs[0].([]*UserPolicyAttachment)[vs[1].(int)] + }).(UserPolicyAttachmentOutput) +} + +type UserPolicyAttachmentMapOutput struct{ *pulumi.OutputState } + +func (UserPolicyAttachmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*UserPolicyAttachment)(nil)).Elem() +} + +func (o UserPolicyAttachmentMapOutput) ToUserPolicyAttachmentMapOutput() UserPolicyAttachmentMapOutput { + return o +} + +func (o UserPolicyAttachmentMapOutput) ToUserPolicyAttachmentMapOutputWithContext(ctx context.Context) UserPolicyAttachmentMapOutput { + return o +} + +func (o UserPolicyAttachmentMapOutput) MapIndex(k pulumi.StringInput) UserPolicyAttachmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *UserPolicyAttachment { + return vs[0].(map[string]*UserPolicyAttachment)[vs[1].(string)] + }).(UserPolicyAttachmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*UserPolicyAttachmentInput)(nil)).Elem(), &UserPolicyAttachment{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserPolicyAttachmentArrayInput)(nil)).Elem(), UserPolicyAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*UserPolicyAttachmentMapInput)(nil)).Elem(), UserPolicyAttachmentMap{}) + pulumi.RegisterOutputType(UserPolicyAttachmentOutput{}) + pulumi.RegisterOutputType(UserPolicyAttachmentArrayOutput{}) + pulumi.RegisterOutputType(UserPolicyAttachmentMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/virtualMfaDevice.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/virtualMfaDevice.go new file mode 100644 index 000000000..80f1448f3 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam/virtualMfaDevice.go @@ -0,0 +1,371 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package iam + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an IAM Virtual MFA Device. +// +// > **Note:** All attributes will be stored in the raw state as plain-text. +// **Note:** A virtual MFA device cannot be directly associated with an IAM User from the provider. +// +// To associate the virtual MFA device with a user and enable it, use the code returned in either `base32StringSeed` or `qrCodePng` to generate TOTP authentication codes. +// The authentication codes can then be used with the AWS CLI command [`aws iam enable-mfa-device`](https://docs.aws.amazon.com/cli/latest/reference/iam/enable-mfa-device.html) or the AWS API call [`EnableMFADevice`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_EnableMFADevice.html). +// +// ## Example Usage +// +// **Using certs on file:** +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewVirtualMfaDevice(ctx, "example", &iam.VirtualMfaDeviceArgs{ +// VirtualMfaDeviceName: pulumi.String("example"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import IAM Virtual MFA Devices using the `arn`. For example: +// +// ```sh +// +// $ pulumi import aws:iam/virtualMfaDevice:VirtualMfaDevice example arn:aws:iam::123456789012:mfa/example +// +// ``` +type VirtualMfaDevice struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) specifying the virtual mfa device. + Arn pulumi.StringOutput `pulumi:"arn"` + // The base32 seed defined as specified in [RFC3548](https://tools.ietf.org/html/rfc3548.txt). The `base32StringSeed` is base64-encoded. + Base32StringSeed pulumi.StringOutput `pulumi:"base32StringSeed"` + // The date and time when the virtual MFA device was enabled. + EnableDate pulumi.StringOutput `pulumi:"enableDate"` + // The path for the virtual MFA device. + Path pulumi.StringPtrOutput `pulumi:"path"` + // A QR code PNG image that encodes `otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String` where `$virtualMFADeviceName` is one of the create call arguments. AccountName is the user name if set (otherwise, the account ID), and Base32String is the seed in base32 format. + QrCodePng pulumi.StringOutput `pulumi:"qrCodePng"` + // Map of resource tags for the virtual mfa device. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // The associated IAM User name if the virtual MFA device is enabled. + UserName pulumi.StringOutput `pulumi:"userName"` + // The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. + VirtualMfaDeviceName pulumi.StringOutput `pulumi:"virtualMfaDeviceName"` +} + +// NewVirtualMfaDevice registers a new resource with the given unique name, arguments, and options. +func NewVirtualMfaDevice(ctx *pulumi.Context, + name string, args *VirtualMfaDeviceArgs, opts ...pulumi.ResourceOption) (*VirtualMfaDevice, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.VirtualMfaDeviceName == nil { + return nil, errors.New("invalid value for required argument 'VirtualMfaDeviceName'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource VirtualMfaDevice + err := ctx.RegisterResource("aws:iam/virtualMfaDevice:VirtualMfaDevice", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetVirtualMfaDevice gets an existing VirtualMfaDevice resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetVirtualMfaDevice(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *VirtualMfaDeviceState, opts ...pulumi.ResourceOption) (*VirtualMfaDevice, error) { + var resource VirtualMfaDevice + err := ctx.ReadResource("aws:iam/virtualMfaDevice:VirtualMfaDevice", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering VirtualMfaDevice resources. +type virtualMfaDeviceState struct { + // The Amazon Resource Name (ARN) specifying the virtual mfa device. + Arn *string `pulumi:"arn"` + // The base32 seed defined as specified in [RFC3548](https://tools.ietf.org/html/rfc3548.txt). The `base32StringSeed` is base64-encoded. + Base32StringSeed *string `pulumi:"base32StringSeed"` + // The date and time when the virtual MFA device was enabled. + EnableDate *string `pulumi:"enableDate"` + // The path for the virtual MFA device. + Path *string `pulumi:"path"` + // A QR code PNG image that encodes `otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String` where `$virtualMFADeviceName` is one of the create call arguments. AccountName is the user name if set (otherwise, the account ID), and Base32String is the seed in base32 format. + QrCodePng *string `pulumi:"qrCodePng"` + // Map of resource tags for the virtual mfa device. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // The associated IAM User name if the virtual MFA device is enabled. + UserName *string `pulumi:"userName"` + // The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. + VirtualMfaDeviceName *string `pulumi:"virtualMfaDeviceName"` +} + +type VirtualMfaDeviceState struct { + // The Amazon Resource Name (ARN) specifying the virtual mfa device. + Arn pulumi.StringPtrInput + // The base32 seed defined as specified in [RFC3548](https://tools.ietf.org/html/rfc3548.txt). The `base32StringSeed` is base64-encoded. + Base32StringSeed pulumi.StringPtrInput + // The date and time when the virtual MFA device was enabled. + EnableDate pulumi.StringPtrInput + // The path for the virtual MFA device. + Path pulumi.StringPtrInput + // A QR code PNG image that encodes `otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String` where `$virtualMFADeviceName` is one of the create call arguments. AccountName is the user name if set (otherwise, the account ID), and Base32String is the seed in base32 format. + QrCodePng pulumi.StringPtrInput + // Map of resource tags for the virtual mfa device. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // The associated IAM User name if the virtual MFA device is enabled. + UserName pulumi.StringPtrInput + // The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. + VirtualMfaDeviceName pulumi.StringPtrInput +} + +func (VirtualMfaDeviceState) ElementType() reflect.Type { + return reflect.TypeOf((*virtualMfaDeviceState)(nil)).Elem() +} + +type virtualMfaDeviceArgs struct { + // The path for the virtual MFA device. + Path *string `pulumi:"path"` + // Map of resource tags for the virtual mfa device. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. + VirtualMfaDeviceName string `pulumi:"virtualMfaDeviceName"` +} + +// The set of arguments for constructing a VirtualMfaDevice resource. +type VirtualMfaDeviceArgs struct { + // The path for the virtual MFA device. + Path pulumi.StringPtrInput + // Map of resource tags for the virtual mfa device. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. + VirtualMfaDeviceName pulumi.StringInput +} + +func (VirtualMfaDeviceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*virtualMfaDeviceArgs)(nil)).Elem() +} + +type VirtualMfaDeviceInput interface { + pulumi.Input + + ToVirtualMfaDeviceOutput() VirtualMfaDeviceOutput + ToVirtualMfaDeviceOutputWithContext(ctx context.Context) VirtualMfaDeviceOutput +} + +func (*VirtualMfaDevice) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualMfaDevice)(nil)).Elem() +} + +func (i *VirtualMfaDevice) ToVirtualMfaDeviceOutput() VirtualMfaDeviceOutput { + return i.ToVirtualMfaDeviceOutputWithContext(context.Background()) +} + +func (i *VirtualMfaDevice) ToVirtualMfaDeviceOutputWithContext(ctx context.Context) VirtualMfaDeviceOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMfaDeviceOutput) +} + +// VirtualMfaDeviceArrayInput is an input type that accepts VirtualMfaDeviceArray and VirtualMfaDeviceArrayOutput values. +// You can construct a concrete instance of `VirtualMfaDeviceArrayInput` via: +// +// VirtualMfaDeviceArray{ VirtualMfaDeviceArgs{...} } +type VirtualMfaDeviceArrayInput interface { + pulumi.Input + + ToVirtualMfaDeviceArrayOutput() VirtualMfaDeviceArrayOutput + ToVirtualMfaDeviceArrayOutputWithContext(context.Context) VirtualMfaDeviceArrayOutput +} + +type VirtualMfaDeviceArray []VirtualMfaDeviceInput + +func (VirtualMfaDeviceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*VirtualMfaDevice)(nil)).Elem() +} + +func (i VirtualMfaDeviceArray) ToVirtualMfaDeviceArrayOutput() VirtualMfaDeviceArrayOutput { + return i.ToVirtualMfaDeviceArrayOutputWithContext(context.Background()) +} + +func (i VirtualMfaDeviceArray) ToVirtualMfaDeviceArrayOutputWithContext(ctx context.Context) VirtualMfaDeviceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMfaDeviceArrayOutput) +} + +// VirtualMfaDeviceMapInput is an input type that accepts VirtualMfaDeviceMap and VirtualMfaDeviceMapOutput values. +// You can construct a concrete instance of `VirtualMfaDeviceMapInput` via: +// +// VirtualMfaDeviceMap{ "key": VirtualMfaDeviceArgs{...} } +type VirtualMfaDeviceMapInput interface { + pulumi.Input + + ToVirtualMfaDeviceMapOutput() VirtualMfaDeviceMapOutput + ToVirtualMfaDeviceMapOutputWithContext(context.Context) VirtualMfaDeviceMapOutput +} + +type VirtualMfaDeviceMap map[string]VirtualMfaDeviceInput + +func (VirtualMfaDeviceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*VirtualMfaDevice)(nil)).Elem() +} + +func (i VirtualMfaDeviceMap) ToVirtualMfaDeviceMapOutput() VirtualMfaDeviceMapOutput { + return i.ToVirtualMfaDeviceMapOutputWithContext(context.Background()) +} + +func (i VirtualMfaDeviceMap) ToVirtualMfaDeviceMapOutputWithContext(ctx context.Context) VirtualMfaDeviceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualMfaDeviceMapOutput) +} + +type VirtualMfaDeviceOutput struct{ *pulumi.OutputState } + +func (VirtualMfaDeviceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualMfaDevice)(nil)).Elem() +} + +func (o VirtualMfaDeviceOutput) ToVirtualMfaDeviceOutput() VirtualMfaDeviceOutput { + return o +} + +func (o VirtualMfaDeviceOutput) ToVirtualMfaDeviceOutputWithContext(ctx context.Context) VirtualMfaDeviceOutput { + return o +} + +// The Amazon Resource Name (ARN) specifying the virtual mfa device. +func (o VirtualMfaDeviceOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The base32 seed defined as specified in [RFC3548](https://tools.ietf.org/html/rfc3548.txt). The `base32StringSeed` is base64-encoded. +func (o VirtualMfaDeviceOutput) Base32StringSeed() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringOutput { return v.Base32StringSeed }).(pulumi.StringOutput) +} + +// The date and time when the virtual MFA device was enabled. +func (o VirtualMfaDeviceOutput) EnableDate() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringOutput { return v.EnableDate }).(pulumi.StringOutput) +} + +// The path for the virtual MFA device. +func (o VirtualMfaDeviceOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) +} + +// A QR code PNG image that encodes `otpauth://totp/$virtualMFADeviceName@$AccountName?secret=$Base32String` where `$virtualMFADeviceName` is one of the create call arguments. AccountName is the user name if set (otherwise, the account ID), and Base32String is the seed in base32 format. +func (o VirtualMfaDeviceOutput) QrCodePng() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringOutput { return v.QrCodePng }).(pulumi.StringOutput) +} + +// Map of resource tags for the virtual mfa device. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o VirtualMfaDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o VirtualMfaDeviceOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// The associated IAM User name if the virtual MFA device is enabled. +func (o VirtualMfaDeviceOutput) UserName() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringOutput { return v.UserName }).(pulumi.StringOutput) +} + +// The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. +func (o VirtualMfaDeviceOutput) VirtualMfaDeviceName() pulumi.StringOutput { + return o.ApplyT(func(v *VirtualMfaDevice) pulumi.StringOutput { return v.VirtualMfaDeviceName }).(pulumi.StringOutput) +} + +type VirtualMfaDeviceArrayOutput struct{ *pulumi.OutputState } + +func (VirtualMfaDeviceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*VirtualMfaDevice)(nil)).Elem() +} + +func (o VirtualMfaDeviceArrayOutput) ToVirtualMfaDeviceArrayOutput() VirtualMfaDeviceArrayOutput { + return o +} + +func (o VirtualMfaDeviceArrayOutput) ToVirtualMfaDeviceArrayOutputWithContext(ctx context.Context) VirtualMfaDeviceArrayOutput { + return o +} + +func (o VirtualMfaDeviceArrayOutput) Index(i pulumi.IntInput) VirtualMfaDeviceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VirtualMfaDevice { + return vs[0].([]*VirtualMfaDevice)[vs[1].(int)] + }).(VirtualMfaDeviceOutput) +} + +type VirtualMfaDeviceMapOutput struct{ *pulumi.OutputState } + +func (VirtualMfaDeviceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*VirtualMfaDevice)(nil)).Elem() +} + +func (o VirtualMfaDeviceMapOutput) ToVirtualMfaDeviceMapOutput() VirtualMfaDeviceMapOutput { + return o +} + +func (o VirtualMfaDeviceMapOutput) ToVirtualMfaDeviceMapOutputWithContext(ctx context.Context) VirtualMfaDeviceMapOutput { + return o +} + +func (o VirtualMfaDeviceMapOutput) MapIndex(k pulumi.StringInput) VirtualMfaDeviceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VirtualMfaDevice { + return vs[0].(map[string]*VirtualMfaDevice)[vs[1].(string)] + }).(VirtualMfaDeviceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*VirtualMfaDeviceInput)(nil)).Elem(), &VirtualMfaDevice{}) + pulumi.RegisterInputType(reflect.TypeOf((*VirtualMfaDeviceArrayInput)(nil)).Elem(), VirtualMfaDeviceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*VirtualMfaDeviceMapInput)(nil)).Elem(), VirtualMfaDeviceMap{}) + pulumi.RegisterOutputType(VirtualMfaDeviceOutput{}) + pulumi.RegisterOutputType(VirtualMfaDeviceArrayOutput{}) + pulumi.RegisterOutputType(VirtualMfaDeviceMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accessPoint.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accessPoint.go new file mode 100644 index 000000000..9fa69b46b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accessPoint.go @@ -0,0 +1,492 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to manage an S3 Access Point. +// +// > **NOTE on Access Points and Access Point Policies:** This provider provides both a standalone Access Point Policy resource and an Access Point resource with a resource policy defined in-line. You cannot use an Access Point with in-line resource policy in conjunction with an Access Point Policy resource. Doing so will cause a conflict of policies and will overwrite the access point's resource policy. +// +// > Advanced usage: To use a custom API endpoint for this resource, use the `s3control` endpoint provider configuration), not the `s3` endpoint provider configuration. +// +// ## Example Usage +// ### AWS Partition Bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewAccessPoint(ctx, "exampleAccessPoint", &s3.AccessPointArgs{ +// Bucket: exampleBucketV2.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### S3 on Outposts Bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3control" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucket, err := s3control.NewBucket(ctx, "exampleBucket", &s3control.BucketArgs{ +// Bucket: pulumi.String("example"), +// }) +// if err != nil { +// return err +// } +// exampleVpc, err := ec2.NewVpc(ctx, "exampleVpc", &ec2.VpcArgs{ +// CidrBlock: pulumi.String("10.0.0.0/16"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewAccessPoint(ctx, "exampleAccessPoint", &s3.AccessPointArgs{ +// Bucket: exampleBucket.Arn, +// VpcConfiguration: &s3.AccessPointVpcConfigurationArgs{ +// VpcId: exampleVpc.ID(), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Import using the ARN for Access Points associated with an S3 on Outposts Bucket: +// +// __Using `pulumi import` to import.__ For example: +// +// Import using the `account_id` and `name` separated by a colon (`:`) for Access Points associated with an AWS Partition S3 Bucket: +// +// ```sh +// +// $ pulumi import aws:s3/accessPoint:AccessPoint example 123456789012:example +// +// ``` +// +// Import using the ARN for Access Points associated with an S3 on Outposts Bucket: +// +// ```sh +// +// $ pulumi import aws:s3/accessPoint:AccessPoint example arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-1234567890123456/accesspoint/example +// +// ``` +type AccessPoint struct { + pulumi.CustomResourceState + + // AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider. + AccountId pulumi.StringOutput `pulumi:"accountId"` + // Alias of the S3 Access Point. + Alias pulumi.StringOutput `pulumi:"alias"` + // ARN of the S3 Access Point. + Arn pulumi.StringOutput `pulumi:"arn"` + // Name of an AWS Partition S3 Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // AWS account ID associated with the S3 bucket associated with this access point. + BucketAccountId pulumi.StringOutput `pulumi:"bucketAccountId"` + // DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com. + // Note: S3 access points only support secure access by HTTPS. HTTP isn't supported. + DomainName pulumi.StringOutput `pulumi:"domainName"` + // VPC endpoints for the S3 Access Point. + Endpoints pulumi.StringMapOutput `pulumi:"endpoints"` + // Indicates whether this access point currently has a policy that allows public access. + HasPublicAccessPolicy pulumi.BoolOutput `pulumi:"hasPublicAccessPolicy"` + // Name you want to assign to this access point. + // + // The following arguments are optional: + Name pulumi.StringOutput `pulumi:"name"` + // Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies). + NetworkOrigin pulumi.StringOutput `pulumi:"networkOrigin"` + // Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). + Policy pulumi.StringOutput `pulumi:"policy"` + // Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. + PublicAccessBlockConfiguration AccessPointPublicAccessBlockConfigurationPtrOutput `pulumi:"publicAccessBlockConfiguration"` + // Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. + VpcConfiguration AccessPointVpcConfigurationPtrOutput `pulumi:"vpcConfiguration"` +} + +// NewAccessPoint registers a new resource with the given unique name, arguments, and options. +func NewAccessPoint(ctx *pulumi.Context, + name string, args *AccessPointArgs, opts ...pulumi.ResourceOption) (*AccessPoint, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccessPoint + err := ctx.RegisterResource("aws:s3/accessPoint:AccessPoint", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccessPoint gets an existing AccessPoint resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccessPoint(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccessPointState, opts ...pulumi.ResourceOption) (*AccessPoint, error) { + var resource AccessPoint + err := ctx.ReadResource("aws:s3/accessPoint:AccessPoint", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccessPoint resources. +type accessPointState struct { + // AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider. + AccountId *string `pulumi:"accountId"` + // Alias of the S3 Access Point. + Alias *string `pulumi:"alias"` + // ARN of the S3 Access Point. + Arn *string `pulumi:"arn"` + // Name of an AWS Partition S3 Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with. + Bucket *string `pulumi:"bucket"` + // AWS account ID associated with the S3 bucket associated with this access point. + BucketAccountId *string `pulumi:"bucketAccountId"` + // DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com. + // Note: S3 access points only support secure access by HTTPS. HTTP isn't supported. + DomainName *string `pulumi:"domainName"` + // VPC endpoints for the S3 Access Point. + Endpoints map[string]string `pulumi:"endpoints"` + // Indicates whether this access point currently has a policy that allows public access. + HasPublicAccessPolicy *bool `pulumi:"hasPublicAccessPolicy"` + // Name you want to assign to this access point. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies). + NetworkOrigin *string `pulumi:"networkOrigin"` + // Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). + Policy *string `pulumi:"policy"` + // Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. + PublicAccessBlockConfiguration *AccessPointPublicAccessBlockConfiguration `pulumi:"publicAccessBlockConfiguration"` + // Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. + VpcConfiguration *AccessPointVpcConfiguration `pulumi:"vpcConfiguration"` +} + +type AccessPointState struct { + // AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider. + AccountId pulumi.StringPtrInput + // Alias of the S3 Access Point. + Alias pulumi.StringPtrInput + // ARN of the S3 Access Point. + Arn pulumi.StringPtrInput + // Name of an AWS Partition S3 Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with. + Bucket pulumi.StringPtrInput + // AWS account ID associated with the S3 bucket associated with this access point. + BucketAccountId pulumi.StringPtrInput + // DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com. + // Note: S3 access points only support secure access by HTTPS. HTTP isn't supported. + DomainName pulumi.StringPtrInput + // VPC endpoints for the S3 Access Point. + Endpoints pulumi.StringMapInput + // Indicates whether this access point currently has a policy that allows public access. + HasPublicAccessPolicy pulumi.BoolPtrInput + // Name you want to assign to this access point. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies). + NetworkOrigin pulumi.StringPtrInput + // Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). + Policy pulumi.StringPtrInput + // Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. + PublicAccessBlockConfiguration AccessPointPublicAccessBlockConfigurationPtrInput + // Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. + VpcConfiguration AccessPointVpcConfigurationPtrInput +} + +func (AccessPointState) ElementType() reflect.Type { + return reflect.TypeOf((*accessPointState)(nil)).Elem() +} + +type accessPointArgs struct { + // AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider. + AccountId *string `pulumi:"accountId"` + // Name of an AWS Partition S3 Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with. + Bucket string `pulumi:"bucket"` + // AWS account ID associated with the S3 bucket associated with this access point. + BucketAccountId *string `pulumi:"bucketAccountId"` + // Name you want to assign to this access point. + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). + Policy *string `pulumi:"policy"` + // Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. + PublicAccessBlockConfiguration *AccessPointPublicAccessBlockConfiguration `pulumi:"publicAccessBlockConfiguration"` + // Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. + VpcConfiguration *AccessPointVpcConfiguration `pulumi:"vpcConfiguration"` +} + +// The set of arguments for constructing a AccessPoint resource. +type AccessPointArgs struct { + // AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider. + AccountId pulumi.StringPtrInput + // Name of an AWS Partition S3 Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with. + Bucket pulumi.StringInput + // AWS account ID associated with the S3 bucket associated with this access point. + BucketAccountId pulumi.StringPtrInput + // Name you want to assign to this access point. + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). + Policy pulumi.StringPtrInput + // Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. + PublicAccessBlockConfiguration AccessPointPublicAccessBlockConfigurationPtrInput + // Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. + VpcConfiguration AccessPointVpcConfigurationPtrInput +} + +func (AccessPointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accessPointArgs)(nil)).Elem() +} + +type AccessPointInput interface { + pulumi.Input + + ToAccessPointOutput() AccessPointOutput + ToAccessPointOutputWithContext(ctx context.Context) AccessPointOutput +} + +func (*AccessPoint) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPoint)(nil)).Elem() +} + +func (i *AccessPoint) ToAccessPointOutput() AccessPointOutput { + return i.ToAccessPointOutputWithContext(context.Background()) +} + +func (i *AccessPoint) ToAccessPointOutputWithContext(ctx context.Context) AccessPointOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointOutput) +} + +// AccessPointArrayInput is an input type that accepts AccessPointArray and AccessPointArrayOutput values. +// You can construct a concrete instance of `AccessPointArrayInput` via: +// +// AccessPointArray{ AccessPointArgs{...} } +type AccessPointArrayInput interface { + pulumi.Input + + ToAccessPointArrayOutput() AccessPointArrayOutput + ToAccessPointArrayOutputWithContext(context.Context) AccessPointArrayOutput +} + +type AccessPointArray []AccessPointInput + +func (AccessPointArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccessPoint)(nil)).Elem() +} + +func (i AccessPointArray) ToAccessPointArrayOutput() AccessPointArrayOutput { + return i.ToAccessPointArrayOutputWithContext(context.Background()) +} + +func (i AccessPointArray) ToAccessPointArrayOutputWithContext(ctx context.Context) AccessPointArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointArrayOutput) +} + +// AccessPointMapInput is an input type that accepts AccessPointMap and AccessPointMapOutput values. +// You can construct a concrete instance of `AccessPointMapInput` via: +// +// AccessPointMap{ "key": AccessPointArgs{...} } +type AccessPointMapInput interface { + pulumi.Input + + ToAccessPointMapOutput() AccessPointMapOutput + ToAccessPointMapOutputWithContext(context.Context) AccessPointMapOutput +} + +type AccessPointMap map[string]AccessPointInput + +func (AccessPointMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccessPoint)(nil)).Elem() +} + +func (i AccessPointMap) ToAccessPointMapOutput() AccessPointMapOutput { + return i.ToAccessPointMapOutputWithContext(context.Background()) +} + +func (i AccessPointMap) ToAccessPointMapOutputWithContext(ctx context.Context) AccessPointMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointMapOutput) +} + +type AccessPointOutput struct{ *pulumi.OutputState } + +func (AccessPointOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPoint)(nil)).Elem() +} + +func (o AccessPointOutput) ToAccessPointOutput() AccessPointOutput { + return o +} + +func (o AccessPointOutput) ToAccessPointOutputWithContext(ctx context.Context) AccessPointOutput { + return o +} + +// AWS account ID for the owner of the bucket for which you want to create an access point. Defaults to automatically determined account ID of the AWS provider. +func (o AccessPointOutput) AccountId() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput) +} + +// Alias of the S3 Access Point. +func (o AccessPointOutput) Alias() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Alias }).(pulumi.StringOutput) +} + +// ARN of the S3 Access Point. +func (o AccessPointOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Name of an AWS Partition S3 Bucket or the ARN of S3 on Outposts Bucket that you want to associate this access point with. +func (o AccessPointOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// AWS account ID associated with the S3 bucket associated with this access point. +func (o AccessPointOutput) BucketAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.BucketAccountId }).(pulumi.StringOutput) +} + +// DNS domain name of the S3 Access Point in the format _`name`_-_`accountId`_.s3-accesspoint._region_.amazonaws.com. +// Note: S3 access points only support secure access by HTTPS. HTTP isn't supported. +func (o AccessPointOutput) DomainName() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) +} + +// VPC endpoints for the S3 Access Point. +func (o AccessPointOutput) Endpoints() pulumi.StringMapOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringMapOutput { return v.Endpoints }).(pulumi.StringMapOutput) +} + +// Indicates whether this access point currently has a policy that allows public access. +func (o AccessPointOutput) HasPublicAccessPolicy() pulumi.BoolOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.BoolOutput { return v.HasPublicAccessPolicy }).(pulumi.BoolOutput) +} + +// Name you want to assign to this access point. +// +// The following arguments are optional: +func (o AccessPointOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Indicates whether this access point allows access from the public Internet. Values are `VPC` (the access point doesn't allow access from the public Internet) and `Internet` (the access point allows access from the public Internet, subject to the access point and bucket access policies). +func (o AccessPointOutput) NetworkOrigin() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.NetworkOrigin }).(pulumi.StringOutput) +} + +// Valid JSON document that specifies the policy that you want to apply to this access point. Removing `policy` from your configuration or setting `policy` to null or an empty string (i.e., `policy = ""`) _will not_ delete the policy since it could have been set by `s3control.AccessPointPolicy`. To remove the `policy`, set it to `"{}"` (an empty JSON document). +func (o AccessPointOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *AccessPoint) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +// Configuration block to manage the `PublicAccessBlock` configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. Detailed below. +func (o AccessPointOutput) PublicAccessBlockConfiguration() AccessPointPublicAccessBlockConfigurationPtrOutput { + return o.ApplyT(func(v *AccessPoint) AccessPointPublicAccessBlockConfigurationPtrOutput { + return v.PublicAccessBlockConfiguration + }).(AccessPointPublicAccessBlockConfigurationPtrOutput) +} + +// Configuration block to restrict access to this access point to requests from the specified Virtual Private Cloud (VPC). Required for S3 on Outposts. Detailed below. +func (o AccessPointOutput) VpcConfiguration() AccessPointVpcConfigurationPtrOutput { + return o.ApplyT(func(v *AccessPoint) AccessPointVpcConfigurationPtrOutput { return v.VpcConfiguration }).(AccessPointVpcConfigurationPtrOutput) +} + +type AccessPointArrayOutput struct{ *pulumi.OutputState } + +func (AccessPointArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccessPoint)(nil)).Elem() +} + +func (o AccessPointArrayOutput) ToAccessPointArrayOutput() AccessPointArrayOutput { + return o +} + +func (o AccessPointArrayOutput) ToAccessPointArrayOutputWithContext(ctx context.Context) AccessPointArrayOutput { + return o +} + +func (o AccessPointArrayOutput) Index(i pulumi.IntInput) AccessPointOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccessPoint { + return vs[0].([]*AccessPoint)[vs[1].(int)] + }).(AccessPointOutput) +} + +type AccessPointMapOutput struct{ *pulumi.OutputState } + +func (AccessPointMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccessPoint)(nil)).Elem() +} + +func (o AccessPointMapOutput) ToAccessPointMapOutput() AccessPointMapOutput { + return o +} + +func (o AccessPointMapOutput) ToAccessPointMapOutputWithContext(ctx context.Context) AccessPointMapOutput { + return o +} + +func (o AccessPointMapOutput) MapIndex(k pulumi.StringInput) AccessPointOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccessPoint { + return vs[0].(map[string]*AccessPoint)[vs[1].(string)] + }).(AccessPointOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointInput)(nil)).Elem(), &AccessPoint{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointArrayInput)(nil)).Elem(), AccessPointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointMapInput)(nil)).Elem(), AccessPointMap{}) + pulumi.RegisterOutputType(AccessPointOutput{}) + pulumi.RegisterOutputType(AccessPointArrayOutput{}) + pulumi.RegisterOutputType(AccessPointMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accountPublicAccessBlock.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accountPublicAccessBlock.go new file mode 100644 index 000000000..67e78ab63 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/accountPublicAccessBlock.go @@ -0,0 +1,346 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages S3 account-level Public Access Block configuration. For more information about these settings, see the [AWS S3 Block Public Access documentation](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// +// > **NOTE:** Each AWS account may only have one S3 Public Access Block configuration. Multiple configurations of the resource against the same AWS account will cause a perpetual difference. +// +// > Advanced usage: To use a custom API endpoint for this resource, use the `s3control` endpoint provider configuration, not the `s3` endpoint provider configuration. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewAccountPublicAccessBlock(ctx, "example", &s3.AccountPublicAccessBlockArgs{ +// BlockPublicAcls: pulumi.Bool(true), +// BlockPublicPolicy: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import `aws_s3_account_public_access_block` using the AWS account ID. For example: +// +// ```sh +// +// $ pulumi import aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock example 123456789012 +// +// ``` +type AccountPublicAccessBlock struct { + pulumi.CustomResourceState + + // AWS account ID to configure. Defaults to automatically determined account ID of the this provider AWS provider. + AccountId pulumi.StringOutput `pulumi:"accountId"` + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls fail if the request includes a public ACL. + BlockPublicAcls pulumi.BoolPtrOutput `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrOutput `pulumi:"blockPublicPolicy"` + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls pulumi.BoolPtrOutput `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets pulumi.BoolPtrOutput `pulumi:"restrictPublicBuckets"` +} + +// NewAccountPublicAccessBlock registers a new resource with the given unique name, arguments, and options. +func NewAccountPublicAccessBlock(ctx *pulumi.Context, + name string, args *AccountPublicAccessBlockArgs, opts ...pulumi.ResourceOption) (*AccountPublicAccessBlock, error) { + if args == nil { + args = &AccountPublicAccessBlockArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountPublicAccessBlock + err := ctx.RegisterResource("aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountPublicAccessBlock gets an existing AccountPublicAccessBlock resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountPublicAccessBlock(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountPublicAccessBlockState, opts ...pulumi.ResourceOption) (*AccountPublicAccessBlock, error) { + var resource AccountPublicAccessBlock + err := ctx.ReadResource("aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountPublicAccessBlock resources. +type accountPublicAccessBlockState struct { + // AWS account ID to configure. Defaults to automatically determined account ID of the this provider AWS provider. + AccountId *string `pulumi:"accountId"` + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls fail if the request includes a public ACL. + BlockPublicAcls *bool `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy *bool `pulumi:"blockPublicPolicy"` + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls *bool `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets *bool `pulumi:"restrictPublicBuckets"` +} + +type AccountPublicAccessBlockState struct { + // AWS account ID to configure. Defaults to automatically determined account ID of the this provider AWS provider. + AccountId pulumi.StringPtrInput + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls fail if the request includes a public ACL. + BlockPublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrInput + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets pulumi.BoolPtrInput +} + +func (AccountPublicAccessBlockState) ElementType() reflect.Type { + return reflect.TypeOf((*accountPublicAccessBlockState)(nil)).Elem() +} + +type accountPublicAccessBlockArgs struct { + // AWS account ID to configure. Defaults to automatically determined account ID of the this provider AWS provider. + AccountId *string `pulumi:"accountId"` + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls fail if the request includes a public ACL. + BlockPublicAcls *bool `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy *bool `pulumi:"blockPublicPolicy"` + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls *bool `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets *bool `pulumi:"restrictPublicBuckets"` +} + +// The set of arguments for constructing a AccountPublicAccessBlock resource. +type AccountPublicAccessBlockArgs struct { + // AWS account ID to configure. Defaults to automatically determined account ID of the this provider AWS provider. + AccountId pulumi.StringPtrInput + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls fail if the request includes a public ACL. + BlockPublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrInput + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets pulumi.BoolPtrInput +} + +func (AccountPublicAccessBlockArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountPublicAccessBlockArgs)(nil)).Elem() +} + +type AccountPublicAccessBlockInput interface { + pulumi.Input + + ToAccountPublicAccessBlockOutput() AccountPublicAccessBlockOutput + ToAccountPublicAccessBlockOutputWithContext(ctx context.Context) AccountPublicAccessBlockOutput +} + +func (*AccountPublicAccessBlock) ElementType() reflect.Type { + return reflect.TypeOf((**AccountPublicAccessBlock)(nil)).Elem() +} + +func (i *AccountPublicAccessBlock) ToAccountPublicAccessBlockOutput() AccountPublicAccessBlockOutput { + return i.ToAccountPublicAccessBlockOutputWithContext(context.Background()) +} + +func (i *AccountPublicAccessBlock) ToAccountPublicAccessBlockOutputWithContext(ctx context.Context) AccountPublicAccessBlockOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountPublicAccessBlockOutput) +} + +// AccountPublicAccessBlockArrayInput is an input type that accepts AccountPublicAccessBlockArray and AccountPublicAccessBlockArrayOutput values. +// You can construct a concrete instance of `AccountPublicAccessBlockArrayInput` via: +// +// AccountPublicAccessBlockArray{ AccountPublicAccessBlockArgs{...} } +type AccountPublicAccessBlockArrayInput interface { + pulumi.Input + + ToAccountPublicAccessBlockArrayOutput() AccountPublicAccessBlockArrayOutput + ToAccountPublicAccessBlockArrayOutputWithContext(context.Context) AccountPublicAccessBlockArrayOutput +} + +type AccountPublicAccessBlockArray []AccountPublicAccessBlockInput + +func (AccountPublicAccessBlockArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountPublicAccessBlock)(nil)).Elem() +} + +func (i AccountPublicAccessBlockArray) ToAccountPublicAccessBlockArrayOutput() AccountPublicAccessBlockArrayOutput { + return i.ToAccountPublicAccessBlockArrayOutputWithContext(context.Background()) +} + +func (i AccountPublicAccessBlockArray) ToAccountPublicAccessBlockArrayOutputWithContext(ctx context.Context) AccountPublicAccessBlockArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountPublicAccessBlockArrayOutput) +} + +// AccountPublicAccessBlockMapInput is an input type that accepts AccountPublicAccessBlockMap and AccountPublicAccessBlockMapOutput values. +// You can construct a concrete instance of `AccountPublicAccessBlockMapInput` via: +// +// AccountPublicAccessBlockMap{ "key": AccountPublicAccessBlockArgs{...} } +type AccountPublicAccessBlockMapInput interface { + pulumi.Input + + ToAccountPublicAccessBlockMapOutput() AccountPublicAccessBlockMapOutput + ToAccountPublicAccessBlockMapOutputWithContext(context.Context) AccountPublicAccessBlockMapOutput +} + +type AccountPublicAccessBlockMap map[string]AccountPublicAccessBlockInput + +func (AccountPublicAccessBlockMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountPublicAccessBlock)(nil)).Elem() +} + +func (i AccountPublicAccessBlockMap) ToAccountPublicAccessBlockMapOutput() AccountPublicAccessBlockMapOutput { + return i.ToAccountPublicAccessBlockMapOutputWithContext(context.Background()) +} + +func (i AccountPublicAccessBlockMap) ToAccountPublicAccessBlockMapOutputWithContext(ctx context.Context) AccountPublicAccessBlockMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountPublicAccessBlockMapOutput) +} + +type AccountPublicAccessBlockOutput struct{ *pulumi.OutputState } + +func (AccountPublicAccessBlockOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountPublicAccessBlock)(nil)).Elem() +} + +func (o AccountPublicAccessBlockOutput) ToAccountPublicAccessBlockOutput() AccountPublicAccessBlockOutput { + return o +} + +func (o AccountPublicAccessBlockOutput) ToAccountPublicAccessBlockOutputWithContext(ctx context.Context) AccountPublicAccessBlockOutput { + return o +} + +// AWS account ID to configure. Defaults to automatically determined account ID of the this provider AWS provider. +func (o AccountPublicAccessBlockOutput) AccountId() pulumi.StringOutput { + return o.ApplyT(func(v *AccountPublicAccessBlock) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput) +} + +// Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: +// * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. +// * PUT Object calls fail if the request includes a public ACL. +func (o AccountPublicAccessBlockOutput) BlockPublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountPublicAccessBlock) pulumi.BoolPtrOutput { return v.BlockPublicAcls }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: +// * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. +func (o AccountPublicAccessBlockOutput) BlockPublicPolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountPublicAccessBlock) pulumi.BoolPtrOutput { return v.BlockPublicPolicy }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: +// * Ignore all public ACLs on buckets in this account and any objects that they contain. +func (o AccountPublicAccessBlockOutput) IgnorePublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountPublicAccessBlock) pulumi.BoolPtrOutput { return v.IgnorePublicAcls }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `false`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: +// * Only the bucket owner and AWS Services can access buckets with public policies. +func (o AccountPublicAccessBlockOutput) RestrictPublicBuckets() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccountPublicAccessBlock) pulumi.BoolPtrOutput { return v.RestrictPublicBuckets }).(pulumi.BoolPtrOutput) +} + +type AccountPublicAccessBlockArrayOutput struct{ *pulumi.OutputState } + +func (AccountPublicAccessBlockArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountPublicAccessBlock)(nil)).Elem() +} + +func (o AccountPublicAccessBlockArrayOutput) ToAccountPublicAccessBlockArrayOutput() AccountPublicAccessBlockArrayOutput { + return o +} + +func (o AccountPublicAccessBlockArrayOutput) ToAccountPublicAccessBlockArrayOutputWithContext(ctx context.Context) AccountPublicAccessBlockArrayOutput { + return o +} + +func (o AccountPublicAccessBlockArrayOutput) Index(i pulumi.IntInput) AccountPublicAccessBlockOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountPublicAccessBlock { + return vs[0].([]*AccountPublicAccessBlock)[vs[1].(int)] + }).(AccountPublicAccessBlockOutput) +} + +type AccountPublicAccessBlockMapOutput struct{ *pulumi.OutputState } + +func (AccountPublicAccessBlockMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountPublicAccessBlock)(nil)).Elem() +} + +func (o AccountPublicAccessBlockMapOutput) ToAccountPublicAccessBlockMapOutput() AccountPublicAccessBlockMapOutput { + return o +} + +func (o AccountPublicAccessBlockMapOutput) ToAccountPublicAccessBlockMapOutputWithContext(ctx context.Context) AccountPublicAccessBlockMapOutput { + return o +} + +func (o AccountPublicAccessBlockMapOutput) MapIndex(k pulumi.StringInput) AccountPublicAccessBlockOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountPublicAccessBlock { + return vs[0].(map[string]*AccountPublicAccessBlock)[vs[1].(string)] + }).(AccountPublicAccessBlockOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountPublicAccessBlockInput)(nil)).Elem(), &AccountPublicAccessBlock{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountPublicAccessBlockArrayInput)(nil)).Elem(), AccountPublicAccessBlockArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountPublicAccessBlockMapInput)(nil)).Elem(), AccountPublicAccessBlockMap{}) + pulumi.RegisterOutputType(AccountPublicAccessBlockOutput{}) + pulumi.RegisterOutputType(AccountPublicAccessBlockArrayOutput{}) + pulumi.RegisterOutputType(AccountPublicAccessBlockMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/analyticsConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/analyticsConfiguration.go new file mode 100644 index 000000000..174b3e77b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/analyticsConfiguration.go @@ -0,0 +1,356 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a S3 bucket [analytics configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html) resource. +// +// ## Example Usage +// ### Add analytics configuration for entire S3 bucket and export results to a second S3 bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// analytics, err := s3.NewBucketV2(ctx, "analytics", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewAnalyticsConfiguration(ctx, "example-entire-bucket", &s3.AnalyticsConfigurationArgs{ +// Bucket: example.ID(), +// StorageClassAnalysis: &s3.AnalyticsConfigurationStorageClassAnalysisArgs{ +// DataExport: &s3.AnalyticsConfigurationStorageClassAnalysisDataExportArgs{ +// Destination: &s3.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{ +// S3BucketDestination: &s3.AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{ +// BucketArn: analytics.Arn, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add analytics configuration with S3 object filter +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewAnalyticsConfiguration(ctx, "example-filtered", &s3.AnalyticsConfigurationArgs{ +// Bucket: example.ID(), +// Filter: &s3.AnalyticsConfigurationFilterArgs{ +// Prefix: pulumi.String("documents/"), +// Tags: pulumi.StringMap{ +// "priority": pulumi.String("high"), +// "class": pulumi.String("blue"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket analytics configurations using `bucket:analytics`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/analyticsConfiguration:AnalyticsConfiguration my-bucket-entire-bucket my-bucket:EntireBucket +// +// ``` +type AnalyticsConfiguration struct { + pulumi.CustomResourceState + + // Name of the bucket this analytics configuration is associated with. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter AnalyticsConfigurationFilterPtrOutput `pulumi:"filter"` + // Unique identifier of the analytics configuration for the bucket. + Name pulumi.StringOutput `pulumi:"name"` + // Configuration for the analytics data export (documented below). + StorageClassAnalysis AnalyticsConfigurationStorageClassAnalysisPtrOutput `pulumi:"storageClassAnalysis"` +} + +// NewAnalyticsConfiguration registers a new resource with the given unique name, arguments, and options. +func NewAnalyticsConfiguration(ctx *pulumi.Context, + name string, args *AnalyticsConfigurationArgs, opts ...pulumi.ResourceOption) (*AnalyticsConfiguration, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AnalyticsConfiguration + err := ctx.RegisterResource("aws:s3/analyticsConfiguration:AnalyticsConfiguration", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAnalyticsConfiguration gets an existing AnalyticsConfiguration resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAnalyticsConfiguration(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AnalyticsConfigurationState, opts ...pulumi.ResourceOption) (*AnalyticsConfiguration, error) { + var resource AnalyticsConfiguration + err := ctx.ReadResource("aws:s3/analyticsConfiguration:AnalyticsConfiguration", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AnalyticsConfiguration resources. +type analyticsConfigurationState struct { + // Name of the bucket this analytics configuration is associated with. + Bucket *string `pulumi:"bucket"` + // Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter *AnalyticsConfigurationFilter `pulumi:"filter"` + // Unique identifier of the analytics configuration for the bucket. + Name *string `pulumi:"name"` + // Configuration for the analytics data export (documented below). + StorageClassAnalysis *AnalyticsConfigurationStorageClassAnalysis `pulumi:"storageClassAnalysis"` +} + +type AnalyticsConfigurationState struct { + // Name of the bucket this analytics configuration is associated with. + Bucket pulumi.StringPtrInput + // Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter AnalyticsConfigurationFilterPtrInput + // Unique identifier of the analytics configuration for the bucket. + Name pulumi.StringPtrInput + // Configuration for the analytics data export (documented below). + StorageClassAnalysis AnalyticsConfigurationStorageClassAnalysisPtrInput +} + +func (AnalyticsConfigurationState) ElementType() reflect.Type { + return reflect.TypeOf((*analyticsConfigurationState)(nil)).Elem() +} + +type analyticsConfigurationArgs struct { + // Name of the bucket this analytics configuration is associated with. + Bucket string `pulumi:"bucket"` + // Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter *AnalyticsConfigurationFilter `pulumi:"filter"` + // Unique identifier of the analytics configuration for the bucket. + Name *string `pulumi:"name"` + // Configuration for the analytics data export (documented below). + StorageClassAnalysis *AnalyticsConfigurationStorageClassAnalysis `pulumi:"storageClassAnalysis"` +} + +// The set of arguments for constructing a AnalyticsConfiguration resource. +type AnalyticsConfigurationArgs struct { + // Name of the bucket this analytics configuration is associated with. + Bucket pulumi.StringInput + // Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter AnalyticsConfigurationFilterPtrInput + // Unique identifier of the analytics configuration for the bucket. + Name pulumi.StringPtrInput + // Configuration for the analytics data export (documented below). + StorageClassAnalysis AnalyticsConfigurationStorageClassAnalysisPtrInput +} + +func (AnalyticsConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*analyticsConfigurationArgs)(nil)).Elem() +} + +type AnalyticsConfigurationInput interface { + pulumi.Input + + ToAnalyticsConfigurationOutput() AnalyticsConfigurationOutput + ToAnalyticsConfigurationOutputWithContext(ctx context.Context) AnalyticsConfigurationOutput +} + +func (*AnalyticsConfiguration) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfiguration)(nil)).Elem() +} + +func (i *AnalyticsConfiguration) ToAnalyticsConfigurationOutput() AnalyticsConfigurationOutput { + return i.ToAnalyticsConfigurationOutputWithContext(context.Background()) +} + +func (i *AnalyticsConfiguration) ToAnalyticsConfigurationOutputWithContext(ctx context.Context) AnalyticsConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationOutput) +} + +// AnalyticsConfigurationArrayInput is an input type that accepts AnalyticsConfigurationArray and AnalyticsConfigurationArrayOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationArrayInput` via: +// +// AnalyticsConfigurationArray{ AnalyticsConfigurationArgs{...} } +type AnalyticsConfigurationArrayInput interface { + pulumi.Input + + ToAnalyticsConfigurationArrayOutput() AnalyticsConfigurationArrayOutput + ToAnalyticsConfigurationArrayOutputWithContext(context.Context) AnalyticsConfigurationArrayOutput +} + +type AnalyticsConfigurationArray []AnalyticsConfigurationInput + +func (AnalyticsConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AnalyticsConfiguration)(nil)).Elem() +} + +func (i AnalyticsConfigurationArray) ToAnalyticsConfigurationArrayOutput() AnalyticsConfigurationArrayOutput { + return i.ToAnalyticsConfigurationArrayOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationArray) ToAnalyticsConfigurationArrayOutputWithContext(ctx context.Context) AnalyticsConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationArrayOutput) +} + +// AnalyticsConfigurationMapInput is an input type that accepts AnalyticsConfigurationMap and AnalyticsConfigurationMapOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationMapInput` via: +// +// AnalyticsConfigurationMap{ "key": AnalyticsConfigurationArgs{...} } +type AnalyticsConfigurationMapInput interface { + pulumi.Input + + ToAnalyticsConfigurationMapOutput() AnalyticsConfigurationMapOutput + ToAnalyticsConfigurationMapOutputWithContext(context.Context) AnalyticsConfigurationMapOutput +} + +type AnalyticsConfigurationMap map[string]AnalyticsConfigurationInput + +func (AnalyticsConfigurationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AnalyticsConfiguration)(nil)).Elem() +} + +func (i AnalyticsConfigurationMap) ToAnalyticsConfigurationMapOutput() AnalyticsConfigurationMapOutput { + return i.ToAnalyticsConfigurationMapOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationMap) ToAnalyticsConfigurationMapOutputWithContext(ctx context.Context) AnalyticsConfigurationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationMapOutput) +} + +type AnalyticsConfigurationOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfiguration)(nil)).Elem() +} + +func (o AnalyticsConfigurationOutput) ToAnalyticsConfigurationOutput() AnalyticsConfigurationOutput { + return o +} + +func (o AnalyticsConfigurationOutput) ToAnalyticsConfigurationOutputWithContext(ctx context.Context) AnalyticsConfigurationOutput { + return o +} + +// Name of the bucket this analytics configuration is associated with. +func (o AnalyticsConfigurationOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *AnalyticsConfiguration) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Object filtering that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). +func (o AnalyticsConfigurationOutput) Filter() AnalyticsConfigurationFilterPtrOutput { + return o.ApplyT(func(v *AnalyticsConfiguration) AnalyticsConfigurationFilterPtrOutput { return v.Filter }).(AnalyticsConfigurationFilterPtrOutput) +} + +// Unique identifier of the analytics configuration for the bucket. +func (o AnalyticsConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AnalyticsConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Configuration for the analytics data export (documented below). +func (o AnalyticsConfigurationOutput) StorageClassAnalysis() AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return o.ApplyT(func(v *AnalyticsConfiguration) AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return v.StorageClassAnalysis + }).(AnalyticsConfigurationStorageClassAnalysisPtrOutput) +} + +type AnalyticsConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AnalyticsConfiguration)(nil)).Elem() +} + +func (o AnalyticsConfigurationArrayOutput) ToAnalyticsConfigurationArrayOutput() AnalyticsConfigurationArrayOutput { + return o +} + +func (o AnalyticsConfigurationArrayOutput) ToAnalyticsConfigurationArrayOutputWithContext(ctx context.Context) AnalyticsConfigurationArrayOutput { + return o +} + +func (o AnalyticsConfigurationArrayOutput) Index(i pulumi.IntInput) AnalyticsConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AnalyticsConfiguration { + return vs[0].([]*AnalyticsConfiguration)[vs[1].(int)] + }).(AnalyticsConfigurationOutput) +} + +type AnalyticsConfigurationMapOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AnalyticsConfiguration)(nil)).Elem() +} + +func (o AnalyticsConfigurationMapOutput) ToAnalyticsConfigurationMapOutput() AnalyticsConfigurationMapOutput { + return o +} + +func (o AnalyticsConfigurationMapOutput) ToAnalyticsConfigurationMapOutputWithContext(ctx context.Context) AnalyticsConfigurationMapOutput { + return o +} + +func (o AnalyticsConfigurationMapOutput) MapIndex(k pulumi.StringInput) AnalyticsConfigurationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AnalyticsConfiguration { + return vs[0].(map[string]*AnalyticsConfiguration)[vs[1].(string)] + }).(AnalyticsConfigurationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationInput)(nil)).Elem(), &AnalyticsConfiguration{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationArrayInput)(nil)).Elem(), AnalyticsConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationMapInput)(nil)).Elem(), AnalyticsConfigurationMap{}) + pulumi.RegisterOutputType(AnalyticsConfigurationOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationArrayOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucket.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucket.go new file mode 100644 index 000000000..3c684ca28 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucket.go @@ -0,0 +1,1126 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a S3 bucket resource. +// +// > This functionality is for managing S3 in an AWS Partition. To manage [S3 on Outposts](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html), see the `s3control.Bucket` resource. +// +// ## Example Usage +// ### Private Bucket w/ Tags +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// Tags: pulumi.StringMap{ +// "Environment": pulumi.String("Dev"), +// "Name": pulumi.String("My bucket"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Static Website Hosting +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Acl: pulumi.String("public-read"), +// Policy: readFileOrPanic("policy.json"), +// Website: &s3.BucketWebsiteArgs{ +// IndexDocument: pulumi.String("index.html"), +// ErrorDocument: pulumi.String("error.html"), +// RoutingRules: pulumi.Any(`[{ +// "Condition": { +// "KeyPrefixEquals": "docs/" +// }, +// "Redirect": { +// "ReplaceKeyPrefixWith": "documents/" +// } +// }] +// +// `), +// +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Using CORS +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Acl: pulumi.String("public-read"), +// CorsRules: s3.BucketCorsRuleArray{ +// &s3.BucketCorsRuleArgs{ +// AllowedHeaders: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// AllowedMethods: pulumi.StringArray{ +// pulumi.String("PUT"), +// pulumi.String("POST"), +// }, +// AllowedOrigins: pulumi.StringArray{ +// pulumi.String("https://s3-website-test.mydomain.com"), +// }, +// ExposeHeaders: pulumi.StringArray{ +// pulumi.String("ETag"), +// }, +// MaxAgeSeconds: pulumi.Int(3000), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Using versioning +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// Versioning: &s3.BucketVersioningArgs{ +// Enabled: pulumi.Bool(true), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Enable Logging +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// logBucket, err := s3.NewBucket(ctx, "logBucket", &s3.BucketArgs{ +// Acl: pulumi.String("log-delivery-write"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// Loggings: s3.BucketLoggingArray{ +// &s3.BucketLoggingArgs{ +// TargetBucket: logBucket.ID(), +// TargetPrefix: pulumi.String("log/"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Using object lifecycle +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// LifecycleRules: s3.BucketLifecycleRuleArray{ +// &s3.BucketLifecycleRuleArgs{ +// Enabled: pulumi.Bool(true), +// Expiration: &s3.BucketLifecycleRuleExpirationArgs{ +// Days: pulumi.Int(90), +// }, +// Id: pulumi.String("log"), +// Prefix: pulumi.String("log/"), +// Tags: pulumi.StringMap{ +// "autoclean": pulumi.String("true"), +// "rule": pulumi.String("log"), +// }, +// Transitions: s3.BucketLifecycleRuleTransitionArray{ +// &s3.BucketLifecycleRuleTransitionArgs{ +// Days: pulumi.Int(30), +// StorageClass: pulumi.String("STANDARD_IA"), +// }, +// &s3.BucketLifecycleRuleTransitionArgs{ +// Days: pulumi.Int(60), +// StorageClass: pulumi.String("GLACIER"), +// }, +// }, +// }, +// &s3.BucketLifecycleRuleArgs{ +// Enabled: pulumi.Bool(true), +// Expiration: &s3.BucketLifecycleRuleExpirationArgs{ +// Date: pulumi.String("2016-01-12"), +// }, +// Id: pulumi.String("tmp"), +// Prefix: pulumi.String("tmp/"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucket(ctx, "versioningBucket", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// LifecycleRules: s3.BucketLifecycleRuleArray{ +// &s3.BucketLifecycleRuleArgs{ +// Enabled: pulumi.Bool(true), +// NoncurrentVersionExpiration: &s3.BucketLifecycleRuleNoncurrentVersionExpirationArgs{ +// Days: pulumi.Int(90), +// }, +// NoncurrentVersionTransitions: s3.BucketLifecycleRuleNoncurrentVersionTransitionArray{ +// &s3.BucketLifecycleRuleNoncurrentVersionTransitionArgs{ +// Days: pulumi.Int(30), +// StorageClass: pulumi.String("STANDARD_IA"), +// }, +// &s3.BucketLifecycleRuleNoncurrentVersionTransitionArgs{ +// Days: pulumi.Int(60), +// StorageClass: pulumi.String("GLACIER"), +// }, +// }, +// Prefix: pulumi.String("config/"), +// }, +// }, +// Versioning: &s3.BucketVersioningArgs{ +// Enabled: pulumi.Bool(true), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Using replication configuration +// +// > **NOTE:** See the `s3.BucketReplicationConfig` resource to support bi-directional replication configuration and additional features. +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := aws.NewProvider(ctx, "central", &aws.ProviderArgs{ +// Region: pulumi.String("eu-central-1"), +// }) +// if err != nil { +// return err +// } +// replicationRole, err := iam.NewRole(ctx, "replicationRole", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.Any(`{ +// "Version": "2012-10-17", +// "Statement": [ +// { +// "Action": "sts:AssumeRole", +// "Principal": { +// "Service": "s3.amazonaws.com" +// }, +// "Effect": "Allow", +// "Sid": "" +// } +// ] +// } +// +// `), +// +// }) +// if err != nil { +// return err +// } +// destination, err := s3.NewBucket(ctx, "destination", &s3.BucketArgs{ +// Versioning: &s3.BucketVersioningArgs{ +// Enabled: pulumi.Bool(true), +// }, +// }) +// if err != nil { +// return err +// } +// source, err := s3.NewBucket(ctx, "source", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// Versioning: &s3.BucketVersioningArgs{ +// Enabled: pulumi.Bool(true), +// }, +// ReplicationConfiguration: &s3.BucketReplicationConfigurationArgs{ +// Role: replicationRole.Arn, +// Rules: s3.BucketReplicationConfigurationRuleArray{ +// &s3.BucketReplicationConfigurationRuleArgs{ +// Id: pulumi.String("foobar"), +// Status: pulumi.String("Enabled"), +// Filter: &s3.BucketReplicationConfigurationRuleFilterArgs{ +// Tags: nil, +// }, +// Destination: &s3.BucketReplicationConfigurationRuleDestinationArgs{ +// Bucket: destination.Arn, +// StorageClass: pulumi.String("STANDARD"), +// ReplicationTime: &s3.BucketReplicationConfigurationRuleDestinationReplicationTimeArgs{ +// Status: pulumi.String("Enabled"), +// Minutes: pulumi.Int(15), +// }, +// Metrics: &s3.BucketReplicationConfigurationRuleDestinationMetricsArgs{ +// Status: pulumi.String("Enabled"), +// Minutes: pulumi.Int(15), +// }, +// }, +// }, +// }, +// }, +// }, pulumi.Provider(aws.Central)) +// if err != nil { +// return err +// } +// replicationPolicy, err := iam.NewPolicy(ctx, "replicationPolicy", &iam.PolicyArgs{ +// Policy: pulumi.All(source.Arn, source.Arn, destination.Arn).ApplyT(func(_args []interface{}) (string, error) { +// sourceArn := _args[0].(string) +// sourceArn1 := _args[1].(string) +// destinationArn := _args[2].(string) +// return fmt.Sprintf(`{ +// "Version": "2012-10-17", +// "Statement": [ +// { +// "Action": [ +// "s3:GetReplicationConfiguration", +// "s3:ListBucket" +// ], +// "Effect": "Allow", +// "Resource": [ +// "%v" +// ] +// }, +// { +// "Action": [ +// "s3:GetObjectVersionForReplication", +// "s3:GetObjectVersionAcl", +// "s3:GetObjectVersionTagging" +// ], +// "Effect": "Allow", +// "Resource": [ +// "%v/*" +// ] +// }, +// { +// "Action": [ +// "s3:ReplicateObject", +// "s3:ReplicateDelete", +// "s3:ReplicateTags" +// ], +// "Effect": "Allow", +// "Resource": "%v/*" +// } +// ] +// } +// +// `, sourceArn, sourceArn1, destinationArn), nil +// +// }).(pulumi.StringOutput), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "replicationRolePolicyAttachment", &iam.RolePolicyAttachmentArgs{ +// Role: replicationRole.Name, +// PolicyArn: replicationPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Enable Default Server Side Encryption +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// mykey, err := kms.NewKey(ctx, "mykey", &kms.KeyArgs{ +// Description: pulumi.String("This key is used to encrypt bucket objects"), +// DeletionWindowInDays: pulumi.Int(10), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucket(ctx, "mybucket", &s3.BucketArgs{ +// ServerSideEncryptionConfiguration: &s3.BucketServerSideEncryptionConfigurationArgs{ +// Rule: &s3.BucketServerSideEncryptionConfigurationRuleArgs{ +// ApplyServerSideEncryptionByDefault: &s3.BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{ +// KmsMasterKeyId: mykey.Arn, +// SseAlgorithm: pulumi.String("aws:kms"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Using ACL policy grants +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// currentUser, err := s3.GetCanonicalUserId(ctx, nil, nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucket(ctx, "bucket", &s3.BucketArgs{ +// Grants: s3.BucketGrantArray{ +// &s3.BucketGrantArgs{ +// Id: *pulumi.String(currentUser.Id), +// Type: pulumi.String("CanonicalUser"), +// Permissions: pulumi.StringArray{ +// pulumi.String("FULL_CONTROL"), +// }, +// }, +// &s3.BucketGrantArgs{ +// Type: pulumi.String("Group"), +// Permissions: pulumi.StringArray{ +// pulumi.String("READ_ACP"), +// pulumi.String("WRITE"), +// }, +// Uri: pulumi.String("http://acs.amazonaws.com/groups/s3/LogDelivery"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// S3 bucket can be imported using the `bucket`, e.g., +// +// ```sh +// +// $ pulumi import aws:s3/bucket:Bucket bucket bucket-name +// +// ``` +// +// The `policy` argument is not imported and will be deprecated in a future version of the provider. Use the `aws_s3_bucket_policy` resource to manage the S3 Bucket Policy instead. +type Bucket struct { + pulumi.CustomResourceState + + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus pulumi.StringOutput `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl pulumi.StringPtrOutput `pulumi:"acl"` + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn pulumi.StringOutput `pulumi:"arn"` + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringOutput `pulumi:"bucket"` + // The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName pulumi.StringOutput `pulumi:"bucketDomainName"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringPtrOutput `pulumi:"bucketPrefix"` + // The bucket region-specific domain name. The bucket domain name including the region name, please refer [here](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent [redirect issues](https://forums.aws.amazon.com/thread.jspa?threadID=216814) from CloudFront to S3 Origin URL. + BucketRegionalDomainName pulumi.StringOutput `pulumi:"bucketRegionalDomainName"` + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules BucketCorsRuleArrayOutput `pulumi:"corsRules"` + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants BucketGrantArrayOutput `pulumi:"grants"` + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"` + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules BucketLifecycleRuleArrayOutput `pulumi:"lifecycleRules"` + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings BucketLoggingArrayOutput `pulumi:"loggings"` + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `accelerationStatus` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration BucketObjectLockConfigurationPtrOutput `pulumi:"objectLockConfiguration"` + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy pulumi.StringPtrOutput `pulumi:"policy"` + // The AWS region this bucket resides in. + Region pulumi.StringOutput `pulumi:"region"` + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration BucketReplicationConfigurationPtrOutput `pulumi:"replicationConfiguration"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer pulumi.StringOutput `pulumi:"requestPayer"` + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration BucketServerSideEncryptionConfigurationOutput `pulumi:"serverSideEncryptionConfiguration"` + // A map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning BucketVersioningOutput `pulumi:"versioning"` + // A website object (documented below). + Website BucketWebsitePtrOutput `pulumi:"website"` + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain pulumi.StringOutput `pulumi:"websiteDomain"` + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint pulumi.StringOutput `pulumi:"websiteEndpoint"` +} + +// NewBucket registers a new resource with the given unique name, arguments, and options. +func NewBucket(ctx *pulumi.Context, + name string, args *BucketArgs, opts ...pulumi.ResourceOption) (*Bucket, error) { + if args == nil { + args = &BucketArgs{} + } + + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Bucket + err := ctx.RegisterResource("aws:s3/bucket:Bucket", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucket gets an existing Bucket resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucket(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketState, opts ...pulumi.ResourceOption) (*Bucket, error) { + var resource Bucket + err := ctx.ReadResource("aws:s3/bucket:Bucket", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Bucket resources. +type bucketState struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus *string `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl *string `pulumi:"acl"` + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn *string `pulumi:"arn"` + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket *string `pulumi:"bucket"` + // The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName *string `pulumi:"bucketDomainName"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix *string `pulumi:"bucketPrefix"` + // The bucket region-specific domain name. The bucket domain name including the region name, please refer [here](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent [redirect issues](https://forums.aws.amazon.com/thread.jspa?threadID=216814) from CloudFront to S3 Origin URL. + BucketRegionalDomainName *string `pulumi:"bucketRegionalDomainName"` + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules []BucketCorsRule `pulumi:"corsRules"` + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy *bool `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants []BucketGrant `pulumi:"grants"` + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId *string `pulumi:"hostedZoneId"` + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules []BucketLifecycleRule `pulumi:"lifecycleRules"` + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings []BucketLogging `pulumi:"loggings"` + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `accelerationStatus` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration *BucketObjectLockConfiguration `pulumi:"objectLockConfiguration"` + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy interface{} `pulumi:"policy"` + // The AWS region this bucket resides in. + Region *string `pulumi:"region"` + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration *BucketReplicationConfiguration `pulumi:"replicationConfiguration"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer *string `pulumi:"requestPayer"` + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration *BucketServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfiguration"` + // A map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning *BucketVersioning `pulumi:"versioning"` + // A website object (documented below). + Website *BucketWebsite `pulumi:"website"` + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain *string `pulumi:"websiteDomain"` + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint *string `pulumi:"websiteEndpoint"` +} + +type BucketState struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus pulumi.StringPtrInput + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl pulumi.StringPtrInput + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn pulumi.StringPtrInput + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringPtrInput + // The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName pulumi.StringPtrInput + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringPtrInput + // The bucket region-specific domain name. The bucket domain name including the region name, please refer [here](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent [redirect issues](https://forums.aws.amazon.com/thread.jspa?threadID=216814) from CloudFront to S3 Origin URL. + BucketRegionalDomainName pulumi.StringPtrInput + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules BucketCorsRuleArrayInput + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy pulumi.BoolPtrInput + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants BucketGrantArrayInput + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId pulumi.StringPtrInput + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules BucketLifecycleRuleArrayInput + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings BucketLoggingArrayInput + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `accelerationStatus` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration BucketObjectLockConfigurationPtrInput + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy pulumi.Input + // The AWS region this bucket resides in. + Region pulumi.StringPtrInput + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration BucketReplicationConfigurationPtrInput + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer pulumi.StringPtrInput + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration BucketServerSideEncryptionConfigurationPtrInput + // A map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning BucketVersioningPtrInput + // A website object (documented below). + Website BucketWebsitePtrInput + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain pulumi.StringPtrInput + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint pulumi.StringPtrInput +} + +func (BucketState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketState)(nil)).Elem() +} + +type bucketArgs struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus *string `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl *string `pulumi:"acl"` + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn *string `pulumi:"arn"` + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket *string `pulumi:"bucket"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix *string `pulumi:"bucketPrefix"` + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules []BucketCorsRule `pulumi:"corsRules"` + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy *bool `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants []BucketGrant `pulumi:"grants"` + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId *string `pulumi:"hostedZoneId"` + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules []BucketLifecycleRule `pulumi:"lifecycleRules"` + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings []BucketLogging `pulumi:"loggings"` + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `accelerationStatus` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration *BucketObjectLockConfiguration `pulumi:"objectLockConfiguration"` + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy interface{} `pulumi:"policy"` + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration *BucketReplicationConfiguration `pulumi:"replicationConfiguration"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer *string `pulumi:"requestPayer"` + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration *BucketServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfiguration"` + // A map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning *BucketVersioning `pulumi:"versioning"` + // A website object (documented below). + Website *BucketWebsite `pulumi:"website"` + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain *string `pulumi:"websiteDomain"` + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint *string `pulumi:"websiteEndpoint"` +} + +// The set of arguments for constructing a Bucket resource. +type BucketArgs struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus pulumi.StringPtrInput + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl pulumi.StringPtrInput + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn pulumi.StringPtrInput + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringPtrInput + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringPtrInput + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules BucketCorsRuleArrayInput + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy pulumi.BoolPtrInput + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants BucketGrantArrayInput + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId pulumi.StringPtrInput + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules BucketLifecycleRuleArrayInput + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings BucketLoggingArrayInput + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `accelerationStatus` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration BucketObjectLockConfigurationPtrInput + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy pulumi.Input + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration BucketReplicationConfigurationPtrInput + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer pulumi.StringPtrInput + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration BucketServerSideEncryptionConfigurationPtrInput + // A map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning BucketVersioningPtrInput + // A website object (documented below). + Website BucketWebsitePtrInput + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain pulumi.StringPtrInput + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint pulumi.StringPtrInput +} + +func (BucketArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketArgs)(nil)).Elem() +} + +type BucketInput interface { + pulumi.Input + + ToBucketOutput() BucketOutput + ToBucketOutputWithContext(ctx context.Context) BucketOutput +} + +func (*Bucket) ElementType() reflect.Type { + return reflect.TypeOf((**Bucket)(nil)).Elem() +} + +func (i *Bucket) ToBucketOutput() BucketOutput { + return i.ToBucketOutputWithContext(context.Background()) +} + +func (i *Bucket) ToBucketOutputWithContext(ctx context.Context) BucketOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOutput) +} + +// BucketArrayInput is an input type that accepts BucketArray and BucketArrayOutput values. +// You can construct a concrete instance of `BucketArrayInput` via: +// +// BucketArray{ BucketArgs{...} } +type BucketArrayInput interface { + pulumi.Input + + ToBucketArrayOutput() BucketArrayOutput + ToBucketArrayOutputWithContext(context.Context) BucketArrayOutput +} + +type BucketArray []BucketInput + +func (BucketArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Bucket)(nil)).Elem() +} + +func (i BucketArray) ToBucketArrayOutput() BucketArrayOutput { + return i.ToBucketArrayOutputWithContext(context.Background()) +} + +func (i BucketArray) ToBucketArrayOutputWithContext(ctx context.Context) BucketArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketArrayOutput) +} + +// BucketMapInput is an input type that accepts BucketMap and BucketMapOutput values. +// You can construct a concrete instance of `BucketMapInput` via: +// +// BucketMap{ "key": BucketArgs{...} } +type BucketMapInput interface { + pulumi.Input + + ToBucketMapOutput() BucketMapOutput + ToBucketMapOutputWithContext(context.Context) BucketMapOutput +} + +type BucketMap map[string]BucketInput + +func (BucketMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Bucket)(nil)).Elem() +} + +func (i BucketMap) ToBucketMapOutput() BucketMapOutput { + return i.ToBucketMapOutputWithContext(context.Background()) +} + +func (i BucketMap) ToBucketMapOutputWithContext(ctx context.Context) BucketMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMapOutput) +} + +type BucketOutput struct{ *pulumi.OutputState } + +func (BucketOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Bucket)(nil)).Elem() +} + +func (o BucketOutput) ToBucketOutput() BucketOutput { + return o +} + +func (o BucketOutput) ToBucketOutputWithContext(ctx context.Context) BucketOutput { + return o +} + +// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. +func (o BucketOutput) AccelerationStatus() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.AccelerationStatus }).(pulumi.StringOutput) +} + +// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. +func (o BucketOutput) Acl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringPtrOutput { return v.Acl }).(pulumi.StringPtrOutput) +} + +// The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. +func (o BucketOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// The bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. +func (o BucketOutput) BucketDomainName() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.BucketDomainName }).(pulumi.StringOutput) +} + +// Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketOutput) BucketPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringPtrOutput { return v.BucketPrefix }).(pulumi.StringPtrOutput) +} + +// The bucket region-specific domain name. The bucket domain name including the region name, please refer [here](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for format. Note: The AWS CloudFront allows specifying S3 region-specific endpoint when creating S3 origin, it will prevent [redirect issues](https://forums.aws.amazon.com/thread.jspa?threadID=216814) from CloudFront to S3 Origin URL. +func (o BucketOutput) BucketRegionalDomainName() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.BucketRegionalDomainName }).(pulumi.StringOutput) +} + +// A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). +func (o BucketOutput) CorsRules() BucketCorsRuleArrayOutput { + return o.ApplyT(func(v *Bucket) BucketCorsRuleArrayOutput { return v.CorsRules }).(BucketCorsRuleArrayOutput) +} + +// A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. +func (o BucketOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Bucket) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. +func (o BucketOutput) Grants() BucketGrantArrayOutput { + return o.ApplyT(func(v *Bucket) BucketGrantArrayOutput { return v.Grants }).(BucketGrantArrayOutput) +} + +// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. +func (o BucketOutput) HostedZoneId() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput) +} + +// A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). +func (o BucketOutput) LifecycleRules() BucketLifecycleRuleArrayOutput { + return o.ApplyT(func(v *Bucket) BucketLifecycleRuleArrayOutput { return v.LifecycleRules }).(BucketLifecycleRuleArrayOutput) +} + +// A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). +func (o BucketOutput) Loggings() BucketLoggingArrayOutput { + return o.ApplyT(func(v *Bucket) BucketLoggingArrayOutput { return v.Loggings }).(BucketLoggingArrayOutput) +} + +// A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) +// +// > **NOTE:** You cannot use `accelerationStatus` in `cn-north-1` or `us-gov-west-1` +func (o BucketOutput) ObjectLockConfiguration() BucketObjectLockConfigurationPtrOutput { + return o.ApplyT(func(v *Bucket) BucketObjectLockConfigurationPtrOutput { return v.ObjectLockConfiguration }).(BucketObjectLockConfigurationPtrOutput) +} + +// A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. +func (o BucketOutput) Policy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringPtrOutput { return v.Policy }).(pulumi.StringPtrOutput) +} + +// The AWS region this bucket resides in. +func (o BucketOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). +func (o BucketOutput) ReplicationConfiguration() BucketReplicationConfigurationPtrOutput { + return o.ApplyT(func(v *Bucket) BucketReplicationConfigurationPtrOutput { return v.ReplicationConfiguration }).(BucketReplicationConfigurationPtrOutput) +} + +// Specifies who should bear the cost of Amazon S3 data transfer. +// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur +// the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) +// developer guide for more information. +func (o BucketOutput) RequestPayer() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.RequestPayer }).(pulumi.StringOutput) +} + +// A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) +func (o BucketOutput) ServerSideEncryptionConfiguration() BucketServerSideEncryptionConfigurationOutput { + return o.ApplyT(func(v *Bucket) BucketServerSideEncryptionConfigurationOutput { + return v.ServerSideEncryptionConfiguration + }).(BucketServerSideEncryptionConfigurationOutput) +} + +// A map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o BucketOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) +func (o BucketOutput) Versioning() BucketVersioningOutput { + return o.ApplyT(func(v *Bucket) BucketVersioningOutput { return v.Versioning }).(BucketVersioningOutput) +} + +// A website object (documented below). +func (o BucketOutput) Website() BucketWebsitePtrOutput { + return o.ApplyT(func(v *Bucket) BucketWebsitePtrOutput { return v.Website }).(BucketWebsitePtrOutput) +} + +// The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. +func (o BucketOutput) WebsiteDomain() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.WebsiteDomain }).(pulumi.StringOutput) +} + +// The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. +func (o BucketOutput) WebsiteEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *Bucket) pulumi.StringOutput { return v.WebsiteEndpoint }).(pulumi.StringOutput) +} + +type BucketArrayOutput struct{ *pulumi.OutputState } + +func (BucketArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Bucket)(nil)).Elem() +} + +func (o BucketArrayOutput) ToBucketArrayOutput() BucketArrayOutput { + return o +} + +func (o BucketArrayOutput) ToBucketArrayOutputWithContext(ctx context.Context) BucketArrayOutput { + return o +} + +func (o BucketArrayOutput) Index(i pulumi.IntInput) BucketOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Bucket { + return vs[0].([]*Bucket)[vs[1].(int)] + }).(BucketOutput) +} + +type BucketMapOutput struct{ *pulumi.OutputState } + +func (BucketMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Bucket)(nil)).Elem() +} + +func (o BucketMapOutput) ToBucketMapOutput() BucketMapOutput { + return o +} + +func (o BucketMapOutput) ToBucketMapOutputWithContext(ctx context.Context) BucketMapOutput { + return o +} + +func (o BucketMapOutput) MapIndex(k pulumi.StringInput) BucketOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Bucket { + return vs[0].(map[string]*Bucket)[vs[1].(string)] + }).(BucketOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketInput)(nil)).Elem(), &Bucket{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketArrayInput)(nil)).Elem(), BucketArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketMapInput)(nil)).Elem(), BucketMap{}) + pulumi.RegisterOutputType(BucketOutput{}) + pulumi.RegisterOutputType(BucketArrayOutput{}) + pulumi.RegisterOutputType(BucketMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAccelerateConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAccelerateConfigurationV2.go new file mode 100644 index 000000000..0c9c30f05 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAccelerateConfigurationV2.go @@ -0,0 +1,305 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket accelerate configuration resource. See the [Requirements for using Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html#transfer-acceleration-requirements) for more details. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// mybucket, err := s3.NewBucketV2(ctx, "mybucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAccelerateConfigurationV2(ctx, "example", &s3.BucketAccelerateConfigurationV2Args{ +// Bucket: mybucket.ID(), +// Status: pulumi.String("Enabled"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import.__ For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketAccelerateConfigurationV2 struct { + pulumi.CustomResourceState + + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. + Status pulumi.StringOutput `pulumi:"status"` +} + +// NewBucketAccelerateConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketAccelerateConfigurationV2(ctx *pulumi.Context, + name string, args *BucketAccelerateConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketAccelerateConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Status == nil { + return nil, errors.New("invalid value for required argument 'Status'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketAccelerateConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketAccelerateConfigurationV2 gets an existing BucketAccelerateConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketAccelerateConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketAccelerateConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketAccelerateConfigurationV2, error) { + var resource BucketAccelerateConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketAccelerateConfigurationV2 resources. +type bucketAccelerateConfigurationV2State struct { + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. + Status *string `pulumi:"status"` +} + +type BucketAccelerateConfigurationV2State struct { + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. + Status pulumi.StringPtrInput +} + +func (BucketAccelerateConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketAccelerateConfigurationV2State)(nil)).Elem() +} + +type bucketAccelerateConfigurationV2Args struct { + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. + Status string `pulumi:"status"` +} + +// The set of arguments for constructing a BucketAccelerateConfigurationV2 resource. +type BucketAccelerateConfigurationV2Args struct { + // Name of the bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. + Status pulumi.StringInput +} + +func (BucketAccelerateConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketAccelerateConfigurationV2Args)(nil)).Elem() +} + +type BucketAccelerateConfigurationV2Input interface { + pulumi.Input + + ToBucketAccelerateConfigurationV2Output() BucketAccelerateConfigurationV2Output + ToBucketAccelerateConfigurationV2OutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2Output +} + +func (*BucketAccelerateConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAccelerateConfigurationV2)(nil)).Elem() +} + +func (i *BucketAccelerateConfigurationV2) ToBucketAccelerateConfigurationV2Output() BucketAccelerateConfigurationV2Output { + return i.ToBucketAccelerateConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketAccelerateConfigurationV2) ToBucketAccelerateConfigurationV2OutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketAccelerateConfigurationV2Output) +} + +// BucketAccelerateConfigurationV2ArrayInput is an input type that accepts BucketAccelerateConfigurationV2Array and BucketAccelerateConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketAccelerateConfigurationV2ArrayInput` via: +// +// BucketAccelerateConfigurationV2Array{ BucketAccelerateConfigurationV2Args{...} } +type BucketAccelerateConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketAccelerateConfigurationV2ArrayOutput() BucketAccelerateConfigurationV2ArrayOutput + ToBucketAccelerateConfigurationV2ArrayOutputWithContext(context.Context) BucketAccelerateConfigurationV2ArrayOutput +} + +type BucketAccelerateConfigurationV2Array []BucketAccelerateConfigurationV2Input + +func (BucketAccelerateConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketAccelerateConfigurationV2)(nil)).Elem() +} + +func (i BucketAccelerateConfigurationV2Array) ToBucketAccelerateConfigurationV2ArrayOutput() BucketAccelerateConfigurationV2ArrayOutput { + return i.ToBucketAccelerateConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketAccelerateConfigurationV2Array) ToBucketAccelerateConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAccelerateConfigurationV2ArrayOutput) +} + +// BucketAccelerateConfigurationV2MapInput is an input type that accepts BucketAccelerateConfigurationV2Map and BucketAccelerateConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketAccelerateConfigurationV2MapInput` via: +// +// BucketAccelerateConfigurationV2Map{ "key": BucketAccelerateConfigurationV2Args{...} } +type BucketAccelerateConfigurationV2MapInput interface { + pulumi.Input + + ToBucketAccelerateConfigurationV2MapOutput() BucketAccelerateConfigurationV2MapOutput + ToBucketAccelerateConfigurationV2MapOutputWithContext(context.Context) BucketAccelerateConfigurationV2MapOutput +} + +type BucketAccelerateConfigurationV2Map map[string]BucketAccelerateConfigurationV2Input + +func (BucketAccelerateConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketAccelerateConfigurationV2)(nil)).Elem() +} + +func (i BucketAccelerateConfigurationV2Map) ToBucketAccelerateConfigurationV2MapOutput() BucketAccelerateConfigurationV2MapOutput { + return i.ToBucketAccelerateConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketAccelerateConfigurationV2Map) ToBucketAccelerateConfigurationV2MapOutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAccelerateConfigurationV2MapOutput) +} + +type BucketAccelerateConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketAccelerateConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAccelerateConfigurationV2)(nil)).Elem() +} + +func (o BucketAccelerateConfigurationV2Output) ToBucketAccelerateConfigurationV2Output() BucketAccelerateConfigurationV2Output { + return o +} + +func (o BucketAccelerateConfigurationV2Output) ToBucketAccelerateConfigurationV2OutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2Output { + return o +} + +// Name of the bucket. +func (o BucketAccelerateConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketAccelerateConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketAccelerateConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAccelerateConfigurationV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Transfer acceleration state of the bucket. Valid values: `Enabled`, `Suspended`. +func (o BucketAccelerateConfigurationV2Output) Status() pulumi.StringOutput { + return o.ApplyT(func(v *BucketAccelerateConfigurationV2) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +type BucketAccelerateConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketAccelerateConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketAccelerateConfigurationV2)(nil)).Elem() +} + +func (o BucketAccelerateConfigurationV2ArrayOutput) ToBucketAccelerateConfigurationV2ArrayOutput() BucketAccelerateConfigurationV2ArrayOutput { + return o +} + +func (o BucketAccelerateConfigurationV2ArrayOutput) ToBucketAccelerateConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2ArrayOutput { + return o +} + +func (o BucketAccelerateConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketAccelerateConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketAccelerateConfigurationV2 { + return vs[0].([]*BucketAccelerateConfigurationV2)[vs[1].(int)] + }).(BucketAccelerateConfigurationV2Output) +} + +type BucketAccelerateConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketAccelerateConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketAccelerateConfigurationV2)(nil)).Elem() +} + +func (o BucketAccelerateConfigurationV2MapOutput) ToBucketAccelerateConfigurationV2MapOutput() BucketAccelerateConfigurationV2MapOutput { + return o +} + +func (o BucketAccelerateConfigurationV2MapOutput) ToBucketAccelerateConfigurationV2MapOutputWithContext(ctx context.Context) BucketAccelerateConfigurationV2MapOutput { + return o +} + +func (o BucketAccelerateConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketAccelerateConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketAccelerateConfigurationV2 { + return vs[0].(map[string]*BucketAccelerateConfigurationV2)[vs[1].(string)] + }).(BucketAccelerateConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketAccelerateConfigurationV2Input)(nil)).Elem(), &BucketAccelerateConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAccelerateConfigurationV2ArrayInput)(nil)).Elem(), BucketAccelerateConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAccelerateConfigurationV2MapInput)(nil)).Elem(), BucketAccelerateConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketAccelerateConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketAccelerateConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketAccelerateConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAclV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAclV2.go new file mode 100644 index 000000000..558f12cab --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketAclV2.go @@ -0,0 +1,471 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket ACL resource. +// +// > **Note:** destroy does not delete the S3 Bucket ACL but does remove the resource from state. +// +// ## Example Usage +// ### With `private` ACL +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// exampleBucketOwnershipControls, err := s3.NewBucketOwnershipControls(ctx, "exampleBucketOwnershipControls", &s3.BucketOwnershipControlsArgs{ +// Bucket: exampleBucketV2.ID(), +// Rule: &s3.BucketOwnershipControlsRuleArgs{ +// ObjectOwnership: pulumi.String("BucketOwnerPreferred"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: exampleBucketV2.ID(), +// Acl: pulumi.String("private"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleBucketOwnershipControls, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### With `public-read` ACL +// +// > This example explicitly disables the default S3 bucket security settings. This +// should be done with caution, as all bucket objects become publicly exposed. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// exampleBucketOwnershipControls, err := s3.NewBucketOwnershipControls(ctx, "exampleBucketOwnershipControls", &s3.BucketOwnershipControlsArgs{ +// Bucket: exampleBucketV2.ID(), +// Rule: &s3.BucketOwnershipControlsRuleArgs{ +// ObjectOwnership: pulumi.String("BucketOwnerPreferred"), +// }, +// }) +// if err != nil { +// return err +// } +// exampleBucketPublicAccessBlock, err := s3.NewBucketPublicAccessBlock(ctx, "exampleBucketPublicAccessBlock", &s3.BucketPublicAccessBlockArgs{ +// Bucket: exampleBucketV2.ID(), +// BlockPublicAcls: pulumi.Bool(false), +// BlockPublicPolicy: pulumi.Bool(false), +// IgnorePublicAcls: pulumi.Bool(false), +// RestrictPublicBuckets: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: exampleBucketV2.ID(), +// Acl: pulumi.String("public-read"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleBucketOwnershipControls, +// exampleBucketPublicAccessBlock, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### With Grants +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := s3.GetCanonicalUserId(ctx, nil, nil) +// if err != nil { +// return err +// } +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// exampleBucketOwnershipControls, err := s3.NewBucketOwnershipControls(ctx, "exampleBucketOwnershipControls", &s3.BucketOwnershipControlsArgs{ +// Bucket: exampleBucketV2.ID(), +// Rule: &s3.BucketOwnershipControlsRuleArgs{ +// ObjectOwnership: pulumi.String("BucketOwnerPreferred"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: exampleBucketV2.ID(), +// AccessControlPolicy: &s3.BucketAclV2AccessControlPolicyArgs{ +// Grants: s3.BucketAclV2AccessControlPolicyGrantArray{ +// &s3.BucketAclV2AccessControlPolicyGrantArgs{ +// Grantee: &s3.BucketAclV2AccessControlPolicyGrantGranteeArgs{ +// Id: *pulumi.String(current.Id), +// Type: pulumi.String("CanonicalUser"), +// }, +// Permission: pulumi.String("READ"), +// }, +// &s3.BucketAclV2AccessControlPolicyGrantArgs{ +// Grantee: &s3.BucketAclV2AccessControlPolicyGrantGranteeArgs{ +// Type: pulumi.String("Group"), +// Uri: pulumi.String("http://acs.amazonaws.com/groups/s3/LogDelivery"), +// }, +// Permission: pulumi.String("READ_ACP"), +// }, +// }, +// Owner: &s3.BucketAclV2AccessControlPolicyOwnerArgs{ +// Id: *pulumi.String(current.Id), +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleBucketOwnershipControls, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is __configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is __not configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is __configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket`, `expected_bucket_owner`, and `acl` separated by commas (`,`): +// +// __Using `pulumi import` to import__ using `bucket`, `expected_bucket_owner`, and/or `acl`, depending on your situation. For example: +// +// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is __not configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is __configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name,private +// +// ``` +// +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is __not configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name,123456789012 +// +// ``` +// +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is __configured__ with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket`, `expected_bucket_owner`, and `acl` separated by commas (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name,123456789012,private +// +// ``` +type BucketAclV2 struct { + pulumi.CustomResourceState + + // Configuration block that sets the ACL permissions for an object per grantee. See below. + AccessControlPolicy BucketAclV2AccessControlPolicyOutput `pulumi:"accessControlPolicy"` + // Canned ACL to apply to the bucket. + Acl pulumi.StringPtrOutput `pulumi:"acl"` + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` +} + +// NewBucketAclV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketAclV2(ctx *pulumi.Context, + name string, args *BucketAclV2Args, opts ...pulumi.ResourceOption) (*BucketAclV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketAclV2 + err := ctx.RegisterResource("aws:s3/bucketAclV2:BucketAclV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketAclV2 gets an existing BucketAclV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketAclV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketAclV2State, opts ...pulumi.ResourceOption) (*BucketAclV2, error) { + var resource BucketAclV2 + err := ctx.ReadResource("aws:s3/bucketAclV2:BucketAclV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketAclV2 resources. +type bucketAclV2State struct { + // Configuration block that sets the ACL permissions for an object per grantee. See below. + AccessControlPolicy *BucketAclV2AccessControlPolicy `pulumi:"accessControlPolicy"` + // Canned ACL to apply to the bucket. + Acl *string `pulumi:"acl"` + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` +} + +type BucketAclV2State struct { + // Configuration block that sets the ACL permissions for an object per grantee. See below. + AccessControlPolicy BucketAclV2AccessControlPolicyPtrInput + // Canned ACL to apply to the bucket. + Acl pulumi.StringPtrInput + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput +} + +func (BucketAclV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketAclV2State)(nil)).Elem() +} + +type bucketAclV2Args struct { + // Configuration block that sets the ACL permissions for an object per grantee. See below. + AccessControlPolicy *BucketAclV2AccessControlPolicy `pulumi:"accessControlPolicy"` + // Canned ACL to apply to the bucket. + Acl *string `pulumi:"acl"` + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` +} + +// The set of arguments for constructing a BucketAclV2 resource. +type BucketAclV2Args struct { + // Configuration block that sets the ACL permissions for an object per grantee. See below. + AccessControlPolicy BucketAclV2AccessControlPolicyPtrInput + // Canned ACL to apply to the bucket. + Acl pulumi.StringPtrInput + // Name of the bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput +} + +func (BucketAclV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketAclV2Args)(nil)).Elem() +} + +type BucketAclV2Input interface { + pulumi.Input + + ToBucketAclV2Output() BucketAclV2Output + ToBucketAclV2OutputWithContext(ctx context.Context) BucketAclV2Output +} + +func (*BucketAclV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2)(nil)).Elem() +} + +func (i *BucketAclV2) ToBucketAclV2Output() BucketAclV2Output { + return i.ToBucketAclV2OutputWithContext(context.Background()) +} + +func (i *BucketAclV2) ToBucketAclV2OutputWithContext(ctx context.Context) BucketAclV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2Output) +} + +// BucketAclV2ArrayInput is an input type that accepts BucketAclV2Array and BucketAclV2ArrayOutput values. +// You can construct a concrete instance of `BucketAclV2ArrayInput` via: +// +// BucketAclV2Array{ BucketAclV2Args{...} } +type BucketAclV2ArrayInput interface { + pulumi.Input + + ToBucketAclV2ArrayOutput() BucketAclV2ArrayOutput + ToBucketAclV2ArrayOutputWithContext(context.Context) BucketAclV2ArrayOutput +} + +type BucketAclV2Array []BucketAclV2Input + +func (BucketAclV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketAclV2)(nil)).Elem() +} + +func (i BucketAclV2Array) ToBucketAclV2ArrayOutput() BucketAclV2ArrayOutput { + return i.ToBucketAclV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketAclV2Array) ToBucketAclV2ArrayOutputWithContext(ctx context.Context) BucketAclV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2ArrayOutput) +} + +// BucketAclV2MapInput is an input type that accepts BucketAclV2Map and BucketAclV2MapOutput values. +// You can construct a concrete instance of `BucketAclV2MapInput` via: +// +// BucketAclV2Map{ "key": BucketAclV2Args{...} } +type BucketAclV2MapInput interface { + pulumi.Input + + ToBucketAclV2MapOutput() BucketAclV2MapOutput + ToBucketAclV2MapOutputWithContext(context.Context) BucketAclV2MapOutput +} + +type BucketAclV2Map map[string]BucketAclV2Input + +func (BucketAclV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketAclV2)(nil)).Elem() +} + +func (i BucketAclV2Map) ToBucketAclV2MapOutput() BucketAclV2MapOutput { + return i.ToBucketAclV2MapOutputWithContext(context.Background()) +} + +func (i BucketAclV2Map) ToBucketAclV2MapOutputWithContext(ctx context.Context) BucketAclV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2MapOutput) +} + +type BucketAclV2Output struct{ *pulumi.OutputState } + +func (BucketAclV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2)(nil)).Elem() +} + +func (o BucketAclV2Output) ToBucketAclV2Output() BucketAclV2Output { + return o +} + +func (o BucketAclV2Output) ToBucketAclV2OutputWithContext(ctx context.Context) BucketAclV2Output { + return o +} + +// Configuration block that sets the ACL permissions for an object per grantee. See below. +func (o BucketAclV2Output) AccessControlPolicy() BucketAclV2AccessControlPolicyOutput { + return o.ApplyT(func(v *BucketAclV2) BucketAclV2AccessControlPolicyOutput { return v.AccessControlPolicy }).(BucketAclV2AccessControlPolicyOutput) +} + +// Canned ACL to apply to the bucket. +func (o BucketAclV2Output) Acl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2) pulumi.StringPtrOutput { return v.Acl }).(pulumi.StringPtrOutput) +} + +// Name of the bucket. +func (o BucketAclV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketAclV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketAclV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +type BucketAclV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketAclV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketAclV2)(nil)).Elem() +} + +func (o BucketAclV2ArrayOutput) ToBucketAclV2ArrayOutput() BucketAclV2ArrayOutput { + return o +} + +func (o BucketAclV2ArrayOutput) ToBucketAclV2ArrayOutputWithContext(ctx context.Context) BucketAclV2ArrayOutput { + return o +} + +func (o BucketAclV2ArrayOutput) Index(i pulumi.IntInput) BucketAclV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketAclV2 { + return vs[0].([]*BucketAclV2)[vs[1].(int)] + }).(BucketAclV2Output) +} + +type BucketAclV2MapOutput struct{ *pulumi.OutputState } + +func (BucketAclV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketAclV2)(nil)).Elem() +} + +func (o BucketAclV2MapOutput) ToBucketAclV2MapOutput() BucketAclV2MapOutput { + return o +} + +func (o BucketAclV2MapOutput) ToBucketAclV2MapOutputWithContext(ctx context.Context) BucketAclV2MapOutput { + return o +} + +func (o BucketAclV2MapOutput) MapIndex(k pulumi.StringInput) BucketAclV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketAclV2 { + return vs[0].(map[string]*BucketAclV2)[vs[1].(string)] + }).(BucketAclV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2Input)(nil)).Elem(), &BucketAclV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2ArrayInput)(nil)).Elem(), BucketAclV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2MapInput)(nil)).Elem(), BucketAclV2Map{}) + pulumi.RegisterOutputType(BucketAclV2Output{}) + pulumi.RegisterOutputType(BucketAclV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketAclV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketCorsConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketCorsConfigurationV2.go new file mode 100644 index 000000000..83c2abab2 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketCorsConfigurationV2.go @@ -0,0 +1,332 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket CORS configuration resource. For more information about CORS, go to [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) in the Amazon S3 User Guide. +// +// > **NOTE:** S3 Buckets only support a single CORS configuration. Declaring multiple `s3.BucketCorsConfigurationV2` resources to the same S3 Bucket will cause a perpetual difference in configuration. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketCorsConfigurationV2(ctx, "exampleBucketCorsConfigurationV2", &s3.BucketCorsConfigurationV2Args{ +// Bucket: exampleBucketV2.ID(), +// CorsRules: s3.BucketCorsConfigurationV2CorsRuleArray{ +// &s3.BucketCorsConfigurationV2CorsRuleArgs{ +// AllowedHeaders: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// AllowedMethods: pulumi.StringArray{ +// pulumi.String("PUT"), +// pulumi.String("POST"), +// }, +// AllowedOrigins: pulumi.StringArray{ +// pulumi.String("https://s3-website-test.domain.example"), +// }, +// ExposeHeaders: pulumi.StringArray{ +// pulumi.String("ETag"), +// }, +// MaxAgeSeconds: pulumi.Int(3000), +// }, +// &s3.BucketCorsConfigurationV2CorsRuleArgs{ +// AllowedMethods: pulumi.StringArray{ +// pulumi.String("GET"), +// }, +// AllowedOrigins: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket CORS configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketCorsConfigurationV2 struct { + pulumi.CustomResourceState + + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. + CorsRules BucketCorsConfigurationV2CorsRuleArrayOutput `pulumi:"corsRules"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` +} + +// NewBucketCorsConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketCorsConfigurationV2(ctx *pulumi.Context, + name string, args *BucketCorsConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketCorsConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.CorsRules == nil { + return nil, errors.New("invalid value for required argument 'CorsRules'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketCorsConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketCorsConfigurationV2 gets an existing BucketCorsConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketCorsConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketCorsConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketCorsConfigurationV2, error) { + var resource BucketCorsConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketCorsConfigurationV2 resources. +type bucketCorsConfigurationV2State struct { + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. + CorsRules []BucketCorsConfigurationV2CorsRule `pulumi:"corsRules"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` +} + +type BucketCorsConfigurationV2State struct { + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. + CorsRules BucketCorsConfigurationV2CorsRuleArrayInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput +} + +func (BucketCorsConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketCorsConfigurationV2State)(nil)).Elem() +} + +type bucketCorsConfigurationV2Args struct { + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. + CorsRules []BucketCorsConfigurationV2CorsRule `pulumi:"corsRules"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` +} + +// The set of arguments for constructing a BucketCorsConfigurationV2 resource. +type BucketCorsConfigurationV2Args struct { + // Name of the bucket. + Bucket pulumi.StringInput + // Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. + CorsRules BucketCorsConfigurationV2CorsRuleArrayInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput +} + +func (BucketCorsConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketCorsConfigurationV2Args)(nil)).Elem() +} + +type BucketCorsConfigurationV2Input interface { + pulumi.Input + + ToBucketCorsConfigurationV2Output() BucketCorsConfigurationV2Output + ToBucketCorsConfigurationV2OutputWithContext(ctx context.Context) BucketCorsConfigurationV2Output +} + +func (*BucketCorsConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketCorsConfigurationV2)(nil)).Elem() +} + +func (i *BucketCorsConfigurationV2) ToBucketCorsConfigurationV2Output() BucketCorsConfigurationV2Output { + return i.ToBucketCorsConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketCorsConfigurationV2) ToBucketCorsConfigurationV2OutputWithContext(ctx context.Context) BucketCorsConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsConfigurationV2Output) +} + +// BucketCorsConfigurationV2ArrayInput is an input type that accepts BucketCorsConfigurationV2Array and BucketCorsConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketCorsConfigurationV2ArrayInput` via: +// +// BucketCorsConfigurationV2Array{ BucketCorsConfigurationV2Args{...} } +type BucketCorsConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketCorsConfigurationV2ArrayOutput() BucketCorsConfigurationV2ArrayOutput + ToBucketCorsConfigurationV2ArrayOutputWithContext(context.Context) BucketCorsConfigurationV2ArrayOutput +} + +type BucketCorsConfigurationV2Array []BucketCorsConfigurationV2Input + +func (BucketCorsConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketCorsConfigurationV2)(nil)).Elem() +} + +func (i BucketCorsConfigurationV2Array) ToBucketCorsConfigurationV2ArrayOutput() BucketCorsConfigurationV2ArrayOutput { + return i.ToBucketCorsConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketCorsConfigurationV2Array) ToBucketCorsConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketCorsConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsConfigurationV2ArrayOutput) +} + +// BucketCorsConfigurationV2MapInput is an input type that accepts BucketCorsConfigurationV2Map and BucketCorsConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketCorsConfigurationV2MapInput` via: +// +// BucketCorsConfigurationV2Map{ "key": BucketCorsConfigurationV2Args{...} } +type BucketCorsConfigurationV2MapInput interface { + pulumi.Input + + ToBucketCorsConfigurationV2MapOutput() BucketCorsConfigurationV2MapOutput + ToBucketCorsConfigurationV2MapOutputWithContext(context.Context) BucketCorsConfigurationV2MapOutput +} + +type BucketCorsConfigurationV2Map map[string]BucketCorsConfigurationV2Input + +func (BucketCorsConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketCorsConfigurationV2)(nil)).Elem() +} + +func (i BucketCorsConfigurationV2Map) ToBucketCorsConfigurationV2MapOutput() BucketCorsConfigurationV2MapOutput { + return i.ToBucketCorsConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketCorsConfigurationV2Map) ToBucketCorsConfigurationV2MapOutputWithContext(ctx context.Context) BucketCorsConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsConfigurationV2MapOutput) +} + +type BucketCorsConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketCorsConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketCorsConfigurationV2)(nil)).Elem() +} + +func (o BucketCorsConfigurationV2Output) ToBucketCorsConfigurationV2Output() BucketCorsConfigurationV2Output { + return o +} + +func (o BucketCorsConfigurationV2Output) ToBucketCorsConfigurationV2OutputWithContext(ctx context.Context) BucketCorsConfigurationV2Output { + return o +} + +// Name of the bucket. +func (o BucketCorsConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketCorsConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Set of origins and methods (cross-origin access that you want to allow). See below. You can configure up to 100 rules. +func (o BucketCorsConfigurationV2Output) CorsRules() BucketCorsConfigurationV2CorsRuleArrayOutput { + return o.ApplyT(func(v *BucketCorsConfigurationV2) BucketCorsConfigurationV2CorsRuleArrayOutput { return v.CorsRules }).(BucketCorsConfigurationV2CorsRuleArrayOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketCorsConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketCorsConfigurationV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +type BucketCorsConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketCorsConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketCorsConfigurationV2)(nil)).Elem() +} + +func (o BucketCorsConfigurationV2ArrayOutput) ToBucketCorsConfigurationV2ArrayOutput() BucketCorsConfigurationV2ArrayOutput { + return o +} + +func (o BucketCorsConfigurationV2ArrayOutput) ToBucketCorsConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketCorsConfigurationV2ArrayOutput { + return o +} + +func (o BucketCorsConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketCorsConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketCorsConfigurationV2 { + return vs[0].([]*BucketCorsConfigurationV2)[vs[1].(int)] + }).(BucketCorsConfigurationV2Output) +} + +type BucketCorsConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketCorsConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketCorsConfigurationV2)(nil)).Elem() +} + +func (o BucketCorsConfigurationV2MapOutput) ToBucketCorsConfigurationV2MapOutput() BucketCorsConfigurationV2MapOutput { + return o +} + +func (o BucketCorsConfigurationV2MapOutput) ToBucketCorsConfigurationV2MapOutputWithContext(ctx context.Context) BucketCorsConfigurationV2MapOutput { + return o +} + +func (o BucketCorsConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketCorsConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketCorsConfigurationV2 { + return vs[0].(map[string]*BucketCorsConfigurationV2)[vs[1].(string)] + }).(BucketCorsConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsConfigurationV2Input)(nil)).Elem(), &BucketCorsConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsConfigurationV2ArrayInput)(nil)).Elem(), BucketCorsConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsConfigurationV2MapInput)(nil)).Elem(), BucketCorsConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketCorsConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketCorsConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketCorsConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketIntelligentTieringConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketIntelligentTieringConfiguration.go new file mode 100644 index 000000000..c73a084ef --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketIntelligentTieringConfiguration.go @@ -0,0 +1,380 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an [S3 Intelligent-Tiering](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering.html) configuration resource. +// +// ## Example Usage +// ### Add intelligent tiering configuration for entire S3 bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketIntelligentTieringConfiguration(ctx, "example-entire-bucket", &s3.BucketIntelligentTieringConfigurationArgs{ +// Bucket: example.ID(), +// Tierings: s3.BucketIntelligentTieringConfigurationTieringArray{ +// &s3.BucketIntelligentTieringConfigurationTieringArgs{ +// AccessTier: pulumi.String("DEEP_ARCHIVE_ACCESS"), +// Days: pulumi.Int(180), +// }, +// &s3.BucketIntelligentTieringConfigurationTieringArgs{ +// AccessTier: pulumi.String("ARCHIVE_ACCESS"), +// Days: pulumi.Int(125), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add intelligent tiering configuration with S3 object filter +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketIntelligentTieringConfiguration(ctx, "example-filtered", &s3.BucketIntelligentTieringConfigurationArgs{ +// Bucket: example.ID(), +// Status: pulumi.String("Disabled"), +// Filter: &s3.BucketIntelligentTieringConfigurationFilterArgs{ +// Prefix: pulumi.String("documents/"), +// Tags: pulumi.StringMap{ +// "priority": pulumi.String("high"), +// "class": pulumi.String("blue"), +// }, +// }, +// Tierings: s3.BucketIntelligentTieringConfigurationTieringArray{ +// &s3.BucketIntelligentTieringConfigurationTieringArgs{ +// AccessTier: pulumi.String("ARCHIVE_ACCESS"), +// Days: pulumi.Int(125), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket intelligent tiering configurations using `bucket:name`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration my-bucket-entire-bucket my-bucket:EntireBucket +// +// ``` +type BucketIntelligentTieringConfiguration struct { + pulumi.CustomResourceState + + // Name of the bucket this intelligent tiering configuration is associated with. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). + Filter BucketIntelligentTieringConfigurationFilterPtrOutput `pulumi:"filter"` + // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. + Name pulumi.StringOutput `pulumi:"name"` + // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. + Status pulumi.StringPtrOutput `pulumi:"status"` + // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). + Tierings BucketIntelligentTieringConfigurationTieringArrayOutput `pulumi:"tierings"` +} + +// NewBucketIntelligentTieringConfiguration registers a new resource with the given unique name, arguments, and options. +func NewBucketIntelligentTieringConfiguration(ctx *pulumi.Context, + name string, args *BucketIntelligentTieringConfigurationArgs, opts ...pulumi.ResourceOption) (*BucketIntelligentTieringConfiguration, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Tierings == nil { + return nil, errors.New("invalid value for required argument 'Tierings'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketIntelligentTieringConfiguration + err := ctx.RegisterResource("aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketIntelligentTieringConfiguration gets an existing BucketIntelligentTieringConfiguration resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketIntelligentTieringConfiguration(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketIntelligentTieringConfigurationState, opts ...pulumi.ResourceOption) (*BucketIntelligentTieringConfiguration, error) { + var resource BucketIntelligentTieringConfiguration + err := ctx.ReadResource("aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketIntelligentTieringConfiguration resources. +type bucketIntelligentTieringConfigurationState struct { + // Name of the bucket this intelligent tiering configuration is associated with. + Bucket *string `pulumi:"bucket"` + // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). + Filter *BucketIntelligentTieringConfigurationFilter `pulumi:"filter"` + // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. + Name *string `pulumi:"name"` + // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. + Status *string `pulumi:"status"` + // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). + Tierings []BucketIntelligentTieringConfigurationTiering `pulumi:"tierings"` +} + +type BucketIntelligentTieringConfigurationState struct { + // Name of the bucket this intelligent tiering configuration is associated with. + Bucket pulumi.StringPtrInput + // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). + Filter BucketIntelligentTieringConfigurationFilterPtrInput + // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. + Name pulumi.StringPtrInput + // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. + Status pulumi.StringPtrInput + // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). + Tierings BucketIntelligentTieringConfigurationTieringArrayInput +} + +func (BucketIntelligentTieringConfigurationState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketIntelligentTieringConfigurationState)(nil)).Elem() +} + +type bucketIntelligentTieringConfigurationArgs struct { + // Name of the bucket this intelligent tiering configuration is associated with. + Bucket string `pulumi:"bucket"` + // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). + Filter *BucketIntelligentTieringConfigurationFilter `pulumi:"filter"` + // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. + Name *string `pulumi:"name"` + // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. + Status *string `pulumi:"status"` + // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). + Tierings []BucketIntelligentTieringConfigurationTiering `pulumi:"tierings"` +} + +// The set of arguments for constructing a BucketIntelligentTieringConfiguration resource. +type BucketIntelligentTieringConfigurationArgs struct { + // Name of the bucket this intelligent tiering configuration is associated with. + Bucket pulumi.StringInput + // Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). + Filter BucketIntelligentTieringConfigurationFilterPtrInput + // Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. + Name pulumi.StringPtrInput + // Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. + Status pulumi.StringPtrInput + // S3 Intelligent-Tiering storage class tiers of the configuration (documented below). + Tierings BucketIntelligentTieringConfigurationTieringArrayInput +} + +func (BucketIntelligentTieringConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketIntelligentTieringConfigurationArgs)(nil)).Elem() +} + +type BucketIntelligentTieringConfigurationInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationOutput() BucketIntelligentTieringConfigurationOutput + ToBucketIntelligentTieringConfigurationOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationOutput +} + +func (*BucketIntelligentTieringConfiguration) ElementType() reflect.Type { + return reflect.TypeOf((**BucketIntelligentTieringConfiguration)(nil)).Elem() +} + +func (i *BucketIntelligentTieringConfiguration) ToBucketIntelligentTieringConfigurationOutput() BucketIntelligentTieringConfigurationOutput { + return i.ToBucketIntelligentTieringConfigurationOutputWithContext(context.Background()) +} + +func (i *BucketIntelligentTieringConfiguration) ToBucketIntelligentTieringConfigurationOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationOutput) +} + +// BucketIntelligentTieringConfigurationArrayInput is an input type that accepts BucketIntelligentTieringConfigurationArray and BucketIntelligentTieringConfigurationArrayOutput values. +// You can construct a concrete instance of `BucketIntelligentTieringConfigurationArrayInput` via: +// +// BucketIntelligentTieringConfigurationArray{ BucketIntelligentTieringConfigurationArgs{...} } +type BucketIntelligentTieringConfigurationArrayInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationArrayOutput() BucketIntelligentTieringConfigurationArrayOutput + ToBucketIntelligentTieringConfigurationArrayOutputWithContext(context.Context) BucketIntelligentTieringConfigurationArrayOutput +} + +type BucketIntelligentTieringConfigurationArray []BucketIntelligentTieringConfigurationInput + +func (BucketIntelligentTieringConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketIntelligentTieringConfiguration)(nil)).Elem() +} + +func (i BucketIntelligentTieringConfigurationArray) ToBucketIntelligentTieringConfigurationArrayOutput() BucketIntelligentTieringConfigurationArrayOutput { + return i.ToBucketIntelligentTieringConfigurationArrayOutputWithContext(context.Background()) +} + +func (i BucketIntelligentTieringConfigurationArray) ToBucketIntelligentTieringConfigurationArrayOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationArrayOutput) +} + +// BucketIntelligentTieringConfigurationMapInput is an input type that accepts BucketIntelligentTieringConfigurationMap and BucketIntelligentTieringConfigurationMapOutput values. +// You can construct a concrete instance of `BucketIntelligentTieringConfigurationMapInput` via: +// +// BucketIntelligentTieringConfigurationMap{ "key": BucketIntelligentTieringConfigurationArgs{...} } +type BucketIntelligentTieringConfigurationMapInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationMapOutput() BucketIntelligentTieringConfigurationMapOutput + ToBucketIntelligentTieringConfigurationMapOutputWithContext(context.Context) BucketIntelligentTieringConfigurationMapOutput +} + +type BucketIntelligentTieringConfigurationMap map[string]BucketIntelligentTieringConfigurationInput + +func (BucketIntelligentTieringConfigurationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketIntelligentTieringConfiguration)(nil)).Elem() +} + +func (i BucketIntelligentTieringConfigurationMap) ToBucketIntelligentTieringConfigurationMapOutput() BucketIntelligentTieringConfigurationMapOutput { + return i.ToBucketIntelligentTieringConfigurationMapOutputWithContext(context.Background()) +} + +func (i BucketIntelligentTieringConfigurationMap) ToBucketIntelligentTieringConfigurationMapOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationMapOutput) +} + +type BucketIntelligentTieringConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketIntelligentTieringConfiguration)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationOutput) ToBucketIntelligentTieringConfigurationOutput() BucketIntelligentTieringConfigurationOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationOutput) ToBucketIntelligentTieringConfigurationOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationOutput { + return o +} + +// Name of the bucket this intelligent tiering configuration is associated with. +func (o BucketIntelligentTieringConfigurationOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Bucket filter. The configuration only includes objects that meet the filter's criteria (documented below). +func (o BucketIntelligentTieringConfigurationOutput) Filter() BucketIntelligentTieringConfigurationFilterPtrOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) BucketIntelligentTieringConfigurationFilterPtrOutput { + return v.Filter + }).(BucketIntelligentTieringConfigurationFilterPtrOutput) +} + +// Unique name used to identify the S3 Intelligent-Tiering configuration for the bucket. +func (o BucketIntelligentTieringConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Specifies the status of the configuration. Valid values: `Enabled`, `Disabled`. +func (o BucketIntelligentTieringConfigurationOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) +} + +// S3 Intelligent-Tiering storage class tiers of the configuration (documented below). +func (o BucketIntelligentTieringConfigurationOutput) Tierings() BucketIntelligentTieringConfigurationTieringArrayOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfiguration) BucketIntelligentTieringConfigurationTieringArrayOutput { + return v.Tierings + }).(BucketIntelligentTieringConfigurationTieringArrayOutput) +} + +type BucketIntelligentTieringConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketIntelligentTieringConfiguration)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationArrayOutput) ToBucketIntelligentTieringConfigurationArrayOutput() BucketIntelligentTieringConfigurationArrayOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationArrayOutput) ToBucketIntelligentTieringConfigurationArrayOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationArrayOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationArrayOutput) Index(i pulumi.IntInput) BucketIntelligentTieringConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketIntelligentTieringConfiguration { + return vs[0].([]*BucketIntelligentTieringConfiguration)[vs[1].(int)] + }).(BucketIntelligentTieringConfigurationOutput) +} + +type BucketIntelligentTieringConfigurationMapOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketIntelligentTieringConfiguration)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationMapOutput) ToBucketIntelligentTieringConfigurationMapOutput() BucketIntelligentTieringConfigurationMapOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationMapOutput) ToBucketIntelligentTieringConfigurationMapOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationMapOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationMapOutput) MapIndex(k pulumi.StringInput) BucketIntelligentTieringConfigurationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketIntelligentTieringConfiguration { + return vs[0].(map[string]*BucketIntelligentTieringConfiguration)[vs[1].(string)] + }).(BucketIntelligentTieringConfigurationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationInput)(nil)).Elem(), &BucketIntelligentTieringConfiguration{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationArrayInput)(nil)).Elem(), BucketIntelligentTieringConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationMapInput)(nil)).Elem(), BucketIntelligentTieringConfigurationMap{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationOutput{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationArrayOutput{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLifecycleConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLifecycleConfigurationV2.go new file mode 100644 index 000000000..9503e1a98 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLifecycleConfigurationV2.go @@ -0,0 +1,760 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an independent configuration resource for S3 bucket [lifecycle configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). +// +// An S3 Lifecycle configuration consists of one or more Lifecycle rules. Each rule consists of the following: +// +// * Rule metadata (`id` and `status`) +// * Filter identifying objects to which the rule applies +// * One or more transition or expiration actions +// +// For more information see the Amazon S3 User Guide on [`Lifecycle Configuration Elements`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html). +// +// > **NOTE:** S3 Buckets only support a single lifecycle configuration. Declaring multiple `s3.BucketLifecycleConfigurationV2` resources to the same S3 Bucket will cause a perpetual difference in configuration. +// +// > **NOTE:** Lifecycle configurations may take some time to fully propagate to all AWS S3 systems. +// Running Pulumi operations shortly after creating a lifecycle configuration may result in changes that affect configuration idempotence. +// See the Amazon S3 User Guide on [setting lifecycle configuration on a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html). +// +// ## Example Usage +// ### With neither a filter nor prefix specified +// +// The Lifecycle rule applies to a subset of objects based on the key name prefix (`""`). +// +// This configuration is intended to replicate the default behavior of the `lifecycleRule` +// parameter in the AWS Provider `s3.BucketV2` resource prior to `v4.0`. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying an empty filter +// +// The Lifecycle rule applies to all objects in the bucket. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: nil, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying a filter using key prefixes +// +// The Lifecycle rule applies to a subset of objects based on the key name prefix (`logs/`). +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// Prefix: pulumi.String("logs/"), +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// If you want to apply a Lifecycle action to a subset of objects based on different key name prefixes, specify separate rules. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// Prefix: pulumi.String("logs/"), +// }, +// Status: pulumi.String("Enabled"), +// }, +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-2"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// Prefix: pulumi.String("tmp/"), +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying a filter based on an object tag +// +// The Lifecycle rule specifies a filter based on a tag key and value. The rule then applies only to a subset of objects with the specific tag. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// Tag: &s3.BucketLifecycleConfigurationV2RuleFilterTagArgs{ +// Key: pulumi.String("Name"), +// Value: pulumi.String("Staging"), +// }, +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying a filter based on multiple tags +// +// The Lifecycle rule directs Amazon S3 to perform lifecycle actions on objects with two tags (with the specific tag keys and values). Notice `tags` is wrapped in the `and` configuration block. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// And: &s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{ +// Tags: pulumi.StringMap{ +// "Key1": pulumi.String("Value1"), +// "Key2": pulumi.String("Value2"), +// }, +// }, +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying a filter based on both prefix and one or more tags +// +// The Lifecycle rule directs Amazon S3 to perform lifecycle actions on objects with the specified prefix and two tags (with the specific tag keys and values). Notice both `prefix` and `tags` are wrapped in the `and` configuration block. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// And: &s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{ +// Prefix: pulumi.String("logs/"), +// Tags: pulumi.StringMap{ +// "Key1": pulumi.String("Value1"), +// "Key2": pulumi.String("Value2"), +// }, +// }, +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying a filter based on object size +// +// Object size values are in bytes. Maximum filter size is 5TB. Some storage classes have minimum object size limitations, for more information, see [Comparing the Amazon S3 storage classes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html#sc-compare). +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// ObjectSizeGreaterThan: pulumi.String("500"), +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Specifying a filter based on object size range and prefix +// +// The `objectSizeGreaterThan` must be less than the `objectSizeLessThan`. Notice both the object size range and prefix are wrapped in the `and` configuration block. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketLifecycleConfigurationV2(ctx, "example", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Bucket.Id), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("rule-1"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// And: &s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{ +// Prefix: pulumi.String("logs/"), +// ObjectSizeGreaterThan: pulumi.Int(500), +// ObjectSizeLessThan: pulumi.Int(64000), +// }, +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Creating a Lifecycle Configuration for a bucket with versioning +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "bucketAcl", &s3.BucketAclV2Args{ +// Bucket: bucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketLifecycleConfigurationV2(ctx, "bucket-config", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: bucket.ID(), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("log"), +// Expiration: &s3.BucketLifecycleConfigurationV2RuleExpirationArgs{ +// Days: pulumi.Int(90), +// }, +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// And: &s3.BucketLifecycleConfigurationV2RuleFilterAndArgs{ +// Prefix: pulumi.String("log/"), +// Tags: pulumi.StringMap{ +// "rule": pulumi.String("log"), +// "autoclean": pulumi.String("true"), +// }, +// }, +// }, +// Status: pulumi.String("Enabled"), +// Transitions: s3.BucketLifecycleConfigurationV2RuleTransitionArray{ +// &s3.BucketLifecycleConfigurationV2RuleTransitionArgs{ +// Days: pulumi.Int(30), +// StorageClass: pulumi.String("STANDARD_IA"), +// }, +// &s3.BucketLifecycleConfigurationV2RuleTransitionArgs{ +// Days: pulumi.Int(60), +// StorageClass: pulumi.String("GLACIER"), +// }, +// }, +// }, +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("tmp"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// Prefix: pulumi.String("tmp/"), +// }, +// Expiration: &s3.BucketLifecycleConfigurationV2RuleExpirationArgs{ +// Date: pulumi.String("2023-01-13T00:00:00Z"), +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// versioningBucket, err := s3.NewBucketV2(ctx, "versioningBucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "versioningBucketAcl", &s3.BucketAclV2Args{ +// Bucket: versioningBucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// versioning, err := s3.NewBucketVersioningV2(ctx, "versioning", &s3.BucketVersioningV2Args{ +// Bucket: versioningBucket.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketLifecycleConfigurationV2(ctx, "versioning-bucket-config", &s3.BucketLifecycleConfigurationV2Args{ +// Bucket: versioningBucket.ID(), +// Rules: s3.BucketLifecycleConfigurationV2RuleArray{ +// &s3.BucketLifecycleConfigurationV2RuleArgs{ +// Id: pulumi.String("config"), +// Filter: &s3.BucketLifecycleConfigurationV2RuleFilterArgs{ +// Prefix: pulumi.String("config/"), +// }, +// NoncurrentVersionExpiration: &s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{ +// NoncurrentDays: pulumi.Int(90), +// }, +// NoncurrentVersionTransitions: s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray{ +// &s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{ +// NoncurrentDays: pulumi.Int(30), +// StorageClass: pulumi.String("STANDARD_IA"), +// }, +// &s3.BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{ +// NoncurrentDays: pulumi.Int(60), +// StorageClass: pulumi.String("GLACIER"), +// }, +// }, +// Status: pulumi.String("Enabled"), +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// versioning, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket lifecycle configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketLifecycleConfigurationV2 struct { + pulumi.CustomResourceState + + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // List of configuration blocks describing the rules managing the replication. See below. + Rules BucketLifecycleConfigurationV2RuleArrayOutput `pulumi:"rules"` +} + +// NewBucketLifecycleConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketLifecycleConfigurationV2(ctx *pulumi.Context, + name string, args *BucketLifecycleConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketLifecycleConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Rules == nil { + return nil, errors.New("invalid value for required argument 'Rules'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketLifecycleConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketLifecycleConfigurationV2 gets an existing BucketLifecycleConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketLifecycleConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketLifecycleConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketLifecycleConfigurationV2, error) { + var resource BucketLifecycleConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketLifecycleConfigurationV2 resources. +type bucketLifecycleConfigurationV2State struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // List of configuration blocks describing the rules managing the replication. See below. + Rules []BucketLifecycleConfigurationV2Rule `pulumi:"rules"` +} + +type BucketLifecycleConfigurationV2State struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner pulumi.StringPtrInput + // List of configuration blocks describing the rules managing the replication. See below. + Rules BucketLifecycleConfigurationV2RuleArrayInput +} + +func (BucketLifecycleConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketLifecycleConfigurationV2State)(nil)).Elem() +} + +type bucketLifecycleConfigurationV2Args struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // List of configuration blocks describing the rules managing the replication. See below. + Rules []BucketLifecycleConfigurationV2Rule `pulumi:"rules"` +} + +// The set of arguments for constructing a BucketLifecycleConfigurationV2 resource. +type BucketLifecycleConfigurationV2Args struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner pulumi.StringPtrInput + // List of configuration blocks describing the rules managing the replication. See below. + Rules BucketLifecycleConfigurationV2RuleArrayInput +} + +func (BucketLifecycleConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketLifecycleConfigurationV2Args)(nil)).Elem() +} + +type BucketLifecycleConfigurationV2Input interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2Output() BucketLifecycleConfigurationV2Output + ToBucketLifecycleConfigurationV2OutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2Output +} + +func (*BucketLifecycleConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2)(nil)).Elem() +} + +func (i *BucketLifecycleConfigurationV2) ToBucketLifecycleConfigurationV2Output() BucketLifecycleConfigurationV2Output { + return i.ToBucketLifecycleConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketLifecycleConfigurationV2) ToBucketLifecycleConfigurationV2OutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2Output) +} + +// BucketLifecycleConfigurationV2ArrayInput is an input type that accepts BucketLifecycleConfigurationV2Array and BucketLifecycleConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2ArrayInput` via: +// +// BucketLifecycleConfigurationV2Array{ BucketLifecycleConfigurationV2Args{...} } +type BucketLifecycleConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2ArrayOutput() BucketLifecycleConfigurationV2ArrayOutput + ToBucketLifecycleConfigurationV2ArrayOutputWithContext(context.Context) BucketLifecycleConfigurationV2ArrayOutput +} + +type BucketLifecycleConfigurationV2Array []BucketLifecycleConfigurationV2Input + +func (BucketLifecycleConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketLifecycleConfigurationV2)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2Array) ToBucketLifecycleConfigurationV2ArrayOutput() BucketLifecycleConfigurationV2ArrayOutput { + return i.ToBucketLifecycleConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2Array) ToBucketLifecycleConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2ArrayOutput) +} + +// BucketLifecycleConfigurationV2MapInput is an input type that accepts BucketLifecycleConfigurationV2Map and BucketLifecycleConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2MapInput` via: +// +// BucketLifecycleConfigurationV2Map{ "key": BucketLifecycleConfigurationV2Args{...} } +type BucketLifecycleConfigurationV2MapInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2MapOutput() BucketLifecycleConfigurationV2MapOutput + ToBucketLifecycleConfigurationV2MapOutputWithContext(context.Context) BucketLifecycleConfigurationV2MapOutput +} + +type BucketLifecycleConfigurationV2Map map[string]BucketLifecycleConfigurationV2Input + +func (BucketLifecycleConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketLifecycleConfigurationV2)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2Map) ToBucketLifecycleConfigurationV2MapOutput() BucketLifecycleConfigurationV2MapOutput { + return i.ToBucketLifecycleConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2Map) ToBucketLifecycleConfigurationV2MapOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2MapOutput) +} + +type BucketLifecycleConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2Output) ToBucketLifecycleConfigurationV2Output() BucketLifecycleConfigurationV2Output { + return o +} + +func (o BucketLifecycleConfigurationV2Output) ToBucketLifecycleConfigurationV2OutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2Output { + return o +} + +// Name of the source S3 bucket you want Amazon S3 to monitor. +func (o BucketLifecycleConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. If the bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. +func (o BucketLifecycleConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// List of configuration blocks describing the rules managing the replication. See below. +func (o BucketLifecycleConfigurationV2Output) Rules() BucketLifecycleConfigurationV2RuleArrayOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2) BucketLifecycleConfigurationV2RuleArrayOutput { return v.Rules }).(BucketLifecycleConfigurationV2RuleArrayOutput) +} + +type BucketLifecycleConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketLifecycleConfigurationV2)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2ArrayOutput) ToBucketLifecycleConfigurationV2ArrayOutput() BucketLifecycleConfigurationV2ArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2ArrayOutput) ToBucketLifecycleConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2ArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketLifecycleConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketLifecycleConfigurationV2 { + return vs[0].([]*BucketLifecycleConfigurationV2)[vs[1].(int)] + }).(BucketLifecycleConfigurationV2Output) +} + +type BucketLifecycleConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketLifecycleConfigurationV2)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2MapOutput) ToBucketLifecycleConfigurationV2MapOutput() BucketLifecycleConfigurationV2MapOutput { + return o +} + +func (o BucketLifecycleConfigurationV2MapOutput) ToBucketLifecycleConfigurationV2MapOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2MapOutput { + return o +} + +func (o BucketLifecycleConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketLifecycleConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketLifecycleConfigurationV2 { + return vs[0].(map[string]*BucketLifecycleConfigurationV2)[vs[1].(string)] + }).(BucketLifecycleConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2Input)(nil)).Elem(), &BucketLifecycleConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2ArrayInput)(nil)).Elem(), BucketLifecycleConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2MapInput)(nil)).Elem(), BucketLifecycleConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLoggingV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLoggingV2.go new file mode 100644 index 000000000..fbf8010f3 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketLoggingV2.go @@ -0,0 +1,361 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket (server access) logging resource. For more information, see [Logging requests using server access logging](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html) +// in the AWS S3 User Guide. +// +// > **Note:** Amazon S3 supports server access logging, AWS CloudTrail, or a combination of both. Refer to the [Logging options for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/logging-with-S3.html) +// to decide which method meets your requirements. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: exampleBucketV2.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// logBucket, err := s3.NewBucketV2(ctx, "logBucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "logBucketAcl", &s3.BucketAclV2Args{ +// Bucket: logBucket.ID(), +// Acl: pulumi.String("log-delivery-write"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketLoggingV2(ctx, "exampleBucketLoggingV2", &s3.BucketLoggingV2Args{ +// Bucket: exampleBucketV2.ID(), +// TargetBucket: logBucket.ID(), +// TargetPrefix: pulumi.String("log/"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket logging using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketLoggingV2:BucketLoggingV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketLoggingV2:BucketLoggingV2 example bucket-name,123456789012 +// +// ``` +type BucketLoggingV2 struct { + pulumi.CustomResourceState + + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Name of the bucket where you want Amazon S3 to store server access logs. + TargetBucket pulumi.StringOutput `pulumi:"targetBucket"` + // Set of configuration blocks with information for granting permissions. See below. + TargetGrants BucketLoggingV2TargetGrantArrayOutput `pulumi:"targetGrants"` + // Prefix for all log object keys. + TargetPrefix pulumi.StringOutput `pulumi:"targetPrefix"` +} + +// NewBucketLoggingV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketLoggingV2(ctx *pulumi.Context, + name string, args *BucketLoggingV2Args, opts ...pulumi.ResourceOption) (*BucketLoggingV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.TargetBucket == nil { + return nil, errors.New("invalid value for required argument 'TargetBucket'") + } + if args.TargetPrefix == nil { + return nil, errors.New("invalid value for required argument 'TargetPrefix'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketLoggingV2 + err := ctx.RegisterResource("aws:s3/bucketLoggingV2:BucketLoggingV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketLoggingV2 gets an existing BucketLoggingV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketLoggingV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketLoggingV2State, opts ...pulumi.ResourceOption) (*BucketLoggingV2, error) { + var resource BucketLoggingV2 + err := ctx.ReadResource("aws:s3/bucketLoggingV2:BucketLoggingV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketLoggingV2 resources. +type bucketLoggingV2State struct { + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Name of the bucket where you want Amazon S3 to store server access logs. + TargetBucket *string `pulumi:"targetBucket"` + // Set of configuration blocks with information for granting permissions. See below. + TargetGrants []BucketLoggingV2TargetGrant `pulumi:"targetGrants"` + // Prefix for all log object keys. + TargetPrefix *string `pulumi:"targetPrefix"` +} + +type BucketLoggingV2State struct { + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Name of the bucket where you want Amazon S3 to store server access logs. + TargetBucket pulumi.StringPtrInput + // Set of configuration blocks with information for granting permissions. See below. + TargetGrants BucketLoggingV2TargetGrantArrayInput + // Prefix for all log object keys. + TargetPrefix pulumi.StringPtrInput +} + +func (BucketLoggingV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketLoggingV2State)(nil)).Elem() +} + +type bucketLoggingV2Args struct { + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Name of the bucket where you want Amazon S3 to store server access logs. + TargetBucket string `pulumi:"targetBucket"` + // Set of configuration blocks with information for granting permissions. See below. + TargetGrants []BucketLoggingV2TargetGrant `pulumi:"targetGrants"` + // Prefix for all log object keys. + TargetPrefix string `pulumi:"targetPrefix"` +} + +// The set of arguments for constructing a BucketLoggingV2 resource. +type BucketLoggingV2Args struct { + // Name of the bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Name of the bucket where you want Amazon S3 to store server access logs. + TargetBucket pulumi.StringInput + // Set of configuration blocks with information for granting permissions. See below. + TargetGrants BucketLoggingV2TargetGrantArrayInput + // Prefix for all log object keys. + TargetPrefix pulumi.StringInput +} + +func (BucketLoggingV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketLoggingV2Args)(nil)).Elem() +} + +type BucketLoggingV2Input interface { + pulumi.Input + + ToBucketLoggingV2Output() BucketLoggingV2Output + ToBucketLoggingV2OutputWithContext(ctx context.Context) BucketLoggingV2Output +} + +func (*BucketLoggingV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLoggingV2)(nil)).Elem() +} + +func (i *BucketLoggingV2) ToBucketLoggingV2Output() BucketLoggingV2Output { + return i.ToBucketLoggingV2OutputWithContext(context.Background()) +} + +func (i *BucketLoggingV2) ToBucketLoggingV2OutputWithContext(ctx context.Context) BucketLoggingV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingV2Output) +} + +// BucketLoggingV2ArrayInput is an input type that accepts BucketLoggingV2Array and BucketLoggingV2ArrayOutput values. +// You can construct a concrete instance of `BucketLoggingV2ArrayInput` via: +// +// BucketLoggingV2Array{ BucketLoggingV2Args{...} } +type BucketLoggingV2ArrayInput interface { + pulumi.Input + + ToBucketLoggingV2ArrayOutput() BucketLoggingV2ArrayOutput + ToBucketLoggingV2ArrayOutputWithContext(context.Context) BucketLoggingV2ArrayOutput +} + +type BucketLoggingV2Array []BucketLoggingV2Input + +func (BucketLoggingV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketLoggingV2)(nil)).Elem() +} + +func (i BucketLoggingV2Array) ToBucketLoggingV2ArrayOutput() BucketLoggingV2ArrayOutput { + return i.ToBucketLoggingV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketLoggingV2Array) ToBucketLoggingV2ArrayOutputWithContext(ctx context.Context) BucketLoggingV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingV2ArrayOutput) +} + +// BucketLoggingV2MapInput is an input type that accepts BucketLoggingV2Map and BucketLoggingV2MapOutput values. +// You can construct a concrete instance of `BucketLoggingV2MapInput` via: +// +// BucketLoggingV2Map{ "key": BucketLoggingV2Args{...} } +type BucketLoggingV2MapInput interface { + pulumi.Input + + ToBucketLoggingV2MapOutput() BucketLoggingV2MapOutput + ToBucketLoggingV2MapOutputWithContext(context.Context) BucketLoggingV2MapOutput +} + +type BucketLoggingV2Map map[string]BucketLoggingV2Input + +func (BucketLoggingV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketLoggingV2)(nil)).Elem() +} + +func (i BucketLoggingV2Map) ToBucketLoggingV2MapOutput() BucketLoggingV2MapOutput { + return i.ToBucketLoggingV2MapOutputWithContext(context.Background()) +} + +func (i BucketLoggingV2Map) ToBucketLoggingV2MapOutputWithContext(ctx context.Context) BucketLoggingV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingV2MapOutput) +} + +type BucketLoggingV2Output struct{ *pulumi.OutputState } + +func (BucketLoggingV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLoggingV2)(nil)).Elem() +} + +func (o BucketLoggingV2Output) ToBucketLoggingV2Output() BucketLoggingV2Output { + return o +} + +func (o BucketLoggingV2Output) ToBucketLoggingV2OutputWithContext(ctx context.Context) BucketLoggingV2Output { + return o +} + +// Name of the bucket. +func (o BucketLoggingV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketLoggingV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketLoggingV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLoggingV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Name of the bucket where you want Amazon S3 to store server access logs. +func (o BucketLoggingV2Output) TargetBucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketLoggingV2) pulumi.StringOutput { return v.TargetBucket }).(pulumi.StringOutput) +} + +// Set of configuration blocks with information for granting permissions. See below. +func (o BucketLoggingV2Output) TargetGrants() BucketLoggingV2TargetGrantArrayOutput { + return o.ApplyT(func(v *BucketLoggingV2) BucketLoggingV2TargetGrantArrayOutput { return v.TargetGrants }).(BucketLoggingV2TargetGrantArrayOutput) +} + +// Prefix for all log object keys. +func (o BucketLoggingV2Output) TargetPrefix() pulumi.StringOutput { + return o.ApplyT(func(v *BucketLoggingV2) pulumi.StringOutput { return v.TargetPrefix }).(pulumi.StringOutput) +} + +type BucketLoggingV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketLoggingV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketLoggingV2)(nil)).Elem() +} + +func (o BucketLoggingV2ArrayOutput) ToBucketLoggingV2ArrayOutput() BucketLoggingV2ArrayOutput { + return o +} + +func (o BucketLoggingV2ArrayOutput) ToBucketLoggingV2ArrayOutputWithContext(ctx context.Context) BucketLoggingV2ArrayOutput { + return o +} + +func (o BucketLoggingV2ArrayOutput) Index(i pulumi.IntInput) BucketLoggingV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketLoggingV2 { + return vs[0].([]*BucketLoggingV2)[vs[1].(int)] + }).(BucketLoggingV2Output) +} + +type BucketLoggingV2MapOutput struct{ *pulumi.OutputState } + +func (BucketLoggingV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketLoggingV2)(nil)).Elem() +} + +func (o BucketLoggingV2MapOutput) ToBucketLoggingV2MapOutput() BucketLoggingV2MapOutput { + return o +} + +func (o BucketLoggingV2MapOutput) ToBucketLoggingV2MapOutputWithContext(ctx context.Context) BucketLoggingV2MapOutput { + return o +} + +func (o BucketLoggingV2MapOutput) MapIndex(k pulumi.StringInput) BucketLoggingV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketLoggingV2 { + return vs[0].(map[string]*BucketLoggingV2)[vs[1].(string)] + }).(BucketLoggingV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingV2Input)(nil)).Elem(), &BucketLoggingV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingV2ArrayInput)(nil)).Elem(), BucketLoggingV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingV2MapInput)(nil)).Elem(), BucketLoggingV2Map{}) + pulumi.RegisterOutputType(BucketLoggingV2Output{}) + pulumi.RegisterOutputType(BucketLoggingV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketLoggingV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketMetric.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketMetric.go new file mode 100644 index 000000000..df527fd71 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketMetric.go @@ -0,0 +1,326 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a S3 bucket [metrics configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html) resource. +// +// ## Example Usage +// ### Add metrics configuration for entire S3 bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketMetric(ctx, "example-entire-bucket", &s3.BucketMetricArgs{ +// Bucket: example.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add metrics configuration with S3 object filter +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketMetric(ctx, "example-filtered", &s3.BucketMetricArgs{ +// Bucket: example.ID(), +// Filter: &s3.BucketMetricFilterArgs{ +// Prefix: pulumi.String("documents/"), +// Tags: pulumi.StringMap{ +// "priority": pulumi.String("high"), +// "class": pulumi.String("blue"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket metric configurations using `bucket:metric`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketMetric:BucketMetric my-bucket-entire-bucket my-bucket:EntireBucket +// +// ``` +type BucketMetric struct { + pulumi.CustomResourceState + + // Name of the bucket to put metric configuration. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter BucketMetricFilterPtrOutput `pulumi:"filter"` + // Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewBucketMetric registers a new resource with the given unique name, arguments, and options. +func NewBucketMetric(ctx *pulumi.Context, + name string, args *BucketMetricArgs, opts ...pulumi.ResourceOption) (*BucketMetric, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketMetric + err := ctx.RegisterResource("aws:s3/bucketMetric:BucketMetric", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketMetric gets an existing BucketMetric resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketMetric(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketMetricState, opts ...pulumi.ResourceOption) (*BucketMetric, error) { + var resource BucketMetric + err := ctx.ReadResource("aws:s3/bucketMetric:BucketMetric", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketMetric resources. +type bucketMetricState struct { + // Name of the bucket to put metric configuration. + Bucket *string `pulumi:"bucket"` + // [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter *BucketMetricFilter `pulumi:"filter"` + // Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. + Name *string `pulumi:"name"` +} + +type BucketMetricState struct { + // Name of the bucket to put metric configuration. + Bucket pulumi.StringPtrInput + // [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter BucketMetricFilterPtrInput + // Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. + Name pulumi.StringPtrInput +} + +func (BucketMetricState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketMetricState)(nil)).Elem() +} + +type bucketMetricArgs struct { + // Name of the bucket to put metric configuration. + Bucket string `pulumi:"bucket"` + // [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter *BucketMetricFilter `pulumi:"filter"` + // Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a BucketMetric resource. +type BucketMetricArgs struct { + // Name of the bucket to put metric configuration. + Bucket pulumi.StringInput + // [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). + Filter BucketMetricFilterPtrInput + // Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. + Name pulumi.StringPtrInput +} + +func (BucketMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketMetricArgs)(nil)).Elem() +} + +type BucketMetricInput interface { + pulumi.Input + + ToBucketMetricOutput() BucketMetricOutput + ToBucketMetricOutputWithContext(ctx context.Context) BucketMetricOutput +} + +func (*BucketMetric) ElementType() reflect.Type { + return reflect.TypeOf((**BucketMetric)(nil)).Elem() +} + +func (i *BucketMetric) ToBucketMetricOutput() BucketMetricOutput { + return i.ToBucketMetricOutputWithContext(context.Background()) +} + +func (i *BucketMetric) ToBucketMetricOutputWithContext(ctx context.Context) BucketMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMetricOutput) +} + +// BucketMetricArrayInput is an input type that accepts BucketMetricArray and BucketMetricArrayOutput values. +// You can construct a concrete instance of `BucketMetricArrayInput` via: +// +// BucketMetricArray{ BucketMetricArgs{...} } +type BucketMetricArrayInput interface { + pulumi.Input + + ToBucketMetricArrayOutput() BucketMetricArrayOutput + ToBucketMetricArrayOutputWithContext(context.Context) BucketMetricArrayOutput +} + +type BucketMetricArray []BucketMetricInput + +func (BucketMetricArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketMetric)(nil)).Elem() +} + +func (i BucketMetricArray) ToBucketMetricArrayOutput() BucketMetricArrayOutput { + return i.ToBucketMetricArrayOutputWithContext(context.Background()) +} + +func (i BucketMetricArray) ToBucketMetricArrayOutputWithContext(ctx context.Context) BucketMetricArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMetricArrayOutput) +} + +// BucketMetricMapInput is an input type that accepts BucketMetricMap and BucketMetricMapOutput values. +// You can construct a concrete instance of `BucketMetricMapInput` via: +// +// BucketMetricMap{ "key": BucketMetricArgs{...} } +type BucketMetricMapInput interface { + pulumi.Input + + ToBucketMetricMapOutput() BucketMetricMapOutput + ToBucketMetricMapOutputWithContext(context.Context) BucketMetricMapOutput +} + +type BucketMetricMap map[string]BucketMetricInput + +func (BucketMetricMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketMetric)(nil)).Elem() +} + +func (i BucketMetricMap) ToBucketMetricMapOutput() BucketMetricMapOutput { + return i.ToBucketMetricMapOutputWithContext(context.Background()) +} + +func (i BucketMetricMap) ToBucketMetricMapOutputWithContext(ctx context.Context) BucketMetricMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMetricMapOutput) +} + +type BucketMetricOutput struct{ *pulumi.OutputState } + +func (BucketMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketMetric)(nil)).Elem() +} + +func (o BucketMetricOutput) ToBucketMetricOutput() BucketMetricOutput { + return o +} + +func (o BucketMetricOutput) ToBucketMetricOutputWithContext(ctx context.Context) BucketMetricOutput { + return o +} + +// Name of the bucket to put metric configuration. +func (o BucketMetricOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketMetric) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// [Object filtering](http://docs.aws.amazon.com/AmazonS3/latest/dev/metrics-configurations.html#metrics-configurations-filter) that accepts a prefix, tags, or a logical AND of prefix and tags (documented below). +func (o BucketMetricOutput) Filter() BucketMetricFilterPtrOutput { + return o.ApplyT(func(v *BucketMetric) BucketMetricFilterPtrOutput { return v.Filter }).(BucketMetricFilterPtrOutput) +} + +// Unique identifier of the metrics configuration for the bucket. Must be less than or equal to 64 characters in length. +func (o BucketMetricOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *BucketMetric) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type BucketMetricArrayOutput struct{ *pulumi.OutputState } + +func (BucketMetricArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketMetric)(nil)).Elem() +} + +func (o BucketMetricArrayOutput) ToBucketMetricArrayOutput() BucketMetricArrayOutput { + return o +} + +func (o BucketMetricArrayOutput) ToBucketMetricArrayOutputWithContext(ctx context.Context) BucketMetricArrayOutput { + return o +} + +func (o BucketMetricArrayOutput) Index(i pulumi.IntInput) BucketMetricOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketMetric { + return vs[0].([]*BucketMetric)[vs[1].(int)] + }).(BucketMetricOutput) +} + +type BucketMetricMapOutput struct{ *pulumi.OutputState } + +func (BucketMetricMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketMetric)(nil)).Elem() +} + +func (o BucketMetricMapOutput) ToBucketMetricMapOutput() BucketMetricMapOutput { + return o +} + +func (o BucketMetricMapOutput) ToBucketMetricMapOutputWithContext(ctx context.Context) BucketMetricMapOutput { + return o +} + +func (o BucketMetricMapOutput) MapIndex(k pulumi.StringInput) BucketMetricOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketMetric { + return vs[0].(map[string]*BucketMetric)[vs[1].(string)] + }).(BucketMetricOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketMetricInput)(nil)).Elem(), &BucketMetric{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketMetricArrayInput)(nil)).Elem(), BucketMetricArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketMetricMapInput)(nil)).Elem(), BucketMetricMap{}) + pulumi.RegisterOutputType(BucketMetricOutput{}) + pulumi.RegisterOutputType(BucketMetricArrayOutput{}) + pulumi.RegisterOutputType(BucketMetricMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketNotification.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketNotification.go new file mode 100644 index 000000000..ecbca255c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketNotification.go @@ -0,0 +1,685 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages a S3 Bucket Notification Configuration. For additional information, see the [Configuring S3 Event Notifications section in the Amazon S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). +// +// > **NOTE:** S3 Buckets only support a single notification configuration. Declaring multiple `s3.BucketNotification` resources to the same S3 Bucket will cause a perpetual difference in configuration. See the example "Trigger multiple Lambda functions" for an option. +// +// ## Example Usage +// ### Add notification configuration to SNS Topic +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// topicPolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("Service"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("s3.amazonaws.com"), +// }, +// }, +// }, +// Actions: pulumi.StringArray{ +// pulumi.String("SNS:Publish"), +// }, +// Resources: pulumi.StringArray{ +// pulumi.String("arn:aws:sns:*:*:s3-event-notification-topic"), +// }, +// Conditions: iam.GetPolicyDocumentStatementConditionArray{ +// &iam.GetPolicyDocumentStatementConditionArgs{ +// Test: pulumi.String("ArnLike"), +// Variable: pulumi.String("aws:SourceArn"), +// Values: pulumi.StringArray{ +// bucket.Arn, +// }, +// }, +// }, +// }, +// }, +// }, nil) +// topicTopic, err := sns.NewTopic(ctx, "topicTopic", &sns.TopicArgs{ +// Policy: topicPolicyDocument.ApplyT(func(topicPolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &topicPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketNotification(ctx, "bucketNotification", &s3.BucketNotificationArgs{ +// Bucket: bucket.ID(), +// Topics: s3.BucketNotificationTopicArray{ +// &s3.BucketNotificationTopicArgs{ +// TopicArn: topicTopic.Arn, +// Events: pulumi.StringArray{ +// pulumi.String("s3:ObjectCreated:*"), +// }, +// FilterSuffix: pulumi.String(".log"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add notification configuration to SQS Queue +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// queuePolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("*"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// }, +// }, +// Actions: pulumi.StringArray{ +// pulumi.String("sqs:SendMessage"), +// }, +// Resources: pulumi.StringArray{ +// pulumi.String("arn:aws:sqs:*:*:s3-event-notification-queue"), +// }, +// Conditions: iam.GetPolicyDocumentStatementConditionArray{ +// &iam.GetPolicyDocumentStatementConditionArgs{ +// Test: pulumi.String("ArnEquals"), +// Variable: pulumi.String("aws:SourceArn"), +// Values: pulumi.StringArray{ +// bucket.Arn, +// }, +// }, +// }, +// }, +// }, +// }, nil) +// queueQueue, err := sqs.NewQueue(ctx, "queueQueue", &sqs.QueueArgs{ +// Policy: queuePolicyDocument.ApplyT(func(queuePolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &queuePolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketNotification(ctx, "bucketNotification", &s3.BucketNotificationArgs{ +// Bucket: bucket.ID(), +// Queues: s3.BucketNotificationQueueArray{ +// &s3.BucketNotificationQueueArgs{ +// QueueArn: queueQueue.Arn, +// Events: pulumi.StringArray{ +// pulumi.String("s3:ObjectCreated:*"), +// }, +// FilterSuffix: pulumi.String(".log"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add notification configuration to Lambda Function +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "lambda.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// iamForLambda, err := iam.NewRole(ctx, "iamForLambda", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// _, err = lambda.NewFunction(ctx, "func", &lambda.FunctionArgs{ +// Code: pulumi.NewFileArchive("your-function.zip"), +// Role: iamForLambda.Arn, +// Handler: pulumi.String("exports.example"), +// Runtime: pulumi.String("go1.x"), +// }) +// if err != nil { +// return err +// } +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// allowBucket, err := lambda.NewPermission(ctx, "allowBucket", &lambda.PermissionArgs{ +// Action: pulumi.String("lambda:InvokeFunction"), +// Function: _func.Arn, +// Principal: pulumi.String("s3.amazonaws.com"), +// SourceArn: bucket.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketNotification(ctx, "bucketNotification", &s3.BucketNotificationArgs{ +// Bucket: bucket.ID(), +// LambdaFunctions: s3.BucketNotificationLambdaFunctionArray{ +// &s3.BucketNotificationLambdaFunctionArgs{ +// LambdaFunctionArn: _func.Arn, +// Events: pulumi.StringArray{ +// pulumi.String("s3:ObjectCreated:*"), +// }, +// FilterPrefix: pulumi.String("AWSLogs/"), +// FilterSuffix: pulumi.String(".log"), +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// allowBucket, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add multiple notification configurations to SQS Queue +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// queuePolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("*"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("*"), +// }, +// }, +// }, +// Actions: pulumi.StringArray{ +// pulumi.String("sqs:SendMessage"), +// }, +// Resources: pulumi.StringArray{ +// pulumi.String("arn:aws:sqs:*:*:s3-event-notification-queue"), +// }, +// Conditions: iam.GetPolicyDocumentStatementConditionArray{ +// &iam.GetPolicyDocumentStatementConditionArgs{ +// Test: pulumi.String("ArnEquals"), +// Variable: pulumi.String("aws:SourceArn"), +// Values: pulumi.StringArray{ +// bucket.Arn, +// }, +// }, +// }, +// }, +// }, +// }, nil) +// queueQueue, err := sqs.NewQueue(ctx, "queueQueue", &sqs.QueueArgs{ +// Policy: queuePolicyDocument.ApplyT(func(queuePolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &queuePolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketNotification(ctx, "bucketNotification", &s3.BucketNotificationArgs{ +// Bucket: bucket.ID(), +// Queues: s3.BucketNotificationQueueArray{ +// &s3.BucketNotificationQueueArgs{ +// Id: pulumi.String("image-upload-event"), +// QueueArn: queueQueue.Arn, +// Events: pulumi.StringArray{ +// pulumi.String("s3:ObjectCreated:*"), +// }, +// FilterPrefix: pulumi.String("images/"), +// }, +// &s3.BucketNotificationQueueArgs{ +// Id: pulumi.String("video-upload-event"), +// QueueArn: queueQueue.Arn, +// Events: pulumi.StringArray{ +// pulumi.String("s3:ObjectCreated:*"), +// }, +// FilterPrefix: pulumi.String("videos/"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// For JSON syntax, use an array instead of defining the `queue` key twice. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// return nil +// }) +// } +// +// ``` +// ### Emit events to EventBridge +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bucket, err := s3.NewBucketV2(ctx, "bucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketNotification(ctx, "bucketNotification", &s3.BucketNotificationArgs{ +// Bucket: bucket.ID(), +// Eventbridge: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket notification using the `bucket`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketNotification:BucketNotification bucket_notification bucket-name +// +// ``` +type BucketNotification struct { + pulumi.CustomResourceState + + // Name of the bucket for notification configuration. + // + // The following arguments are optional: + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Whether to enable Amazon EventBridge notifications. Defaults to `false`. + Eventbridge pulumi.BoolPtrOutput `pulumi:"eventbridge"` + // Used to configure notifications to a Lambda Function. See below. + LambdaFunctions BucketNotificationLambdaFunctionArrayOutput `pulumi:"lambdaFunctions"` + // Notification configuration to SQS Queue. See below. + Queues BucketNotificationQueueArrayOutput `pulumi:"queues"` + // Notification configuration to SNS Topic. See below. + Topics BucketNotificationTopicArrayOutput `pulumi:"topics"` +} + +// NewBucketNotification registers a new resource with the given unique name, arguments, and options. +func NewBucketNotification(ctx *pulumi.Context, + name string, args *BucketNotificationArgs, opts ...pulumi.ResourceOption) (*BucketNotification, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketNotification + err := ctx.RegisterResource("aws:s3/bucketNotification:BucketNotification", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketNotification gets an existing BucketNotification resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketNotification(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketNotificationState, opts ...pulumi.ResourceOption) (*BucketNotification, error) { + var resource BucketNotification + err := ctx.ReadResource("aws:s3/bucketNotification:BucketNotification", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketNotification resources. +type bucketNotificationState struct { + // Name of the bucket for notification configuration. + // + // The following arguments are optional: + Bucket *string `pulumi:"bucket"` + // Whether to enable Amazon EventBridge notifications. Defaults to `false`. + Eventbridge *bool `pulumi:"eventbridge"` + // Used to configure notifications to a Lambda Function. See below. + LambdaFunctions []BucketNotificationLambdaFunction `pulumi:"lambdaFunctions"` + // Notification configuration to SQS Queue. See below. + Queues []BucketNotificationQueue `pulumi:"queues"` + // Notification configuration to SNS Topic. See below. + Topics []BucketNotificationTopic `pulumi:"topics"` +} + +type BucketNotificationState struct { + // Name of the bucket for notification configuration. + // + // The following arguments are optional: + Bucket pulumi.StringPtrInput + // Whether to enable Amazon EventBridge notifications. Defaults to `false`. + Eventbridge pulumi.BoolPtrInput + // Used to configure notifications to a Lambda Function. See below. + LambdaFunctions BucketNotificationLambdaFunctionArrayInput + // Notification configuration to SQS Queue. See below. + Queues BucketNotificationQueueArrayInput + // Notification configuration to SNS Topic. See below. + Topics BucketNotificationTopicArrayInput +} + +func (BucketNotificationState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketNotificationState)(nil)).Elem() +} + +type bucketNotificationArgs struct { + // Name of the bucket for notification configuration. + // + // The following arguments are optional: + Bucket string `pulumi:"bucket"` + // Whether to enable Amazon EventBridge notifications. Defaults to `false`. + Eventbridge *bool `pulumi:"eventbridge"` + // Used to configure notifications to a Lambda Function. See below. + LambdaFunctions []BucketNotificationLambdaFunction `pulumi:"lambdaFunctions"` + // Notification configuration to SQS Queue. See below. + Queues []BucketNotificationQueue `pulumi:"queues"` + // Notification configuration to SNS Topic. See below. + Topics []BucketNotificationTopic `pulumi:"topics"` +} + +// The set of arguments for constructing a BucketNotification resource. +type BucketNotificationArgs struct { + // Name of the bucket for notification configuration. + // + // The following arguments are optional: + Bucket pulumi.StringInput + // Whether to enable Amazon EventBridge notifications. Defaults to `false`. + Eventbridge pulumi.BoolPtrInput + // Used to configure notifications to a Lambda Function. See below. + LambdaFunctions BucketNotificationLambdaFunctionArrayInput + // Notification configuration to SQS Queue. See below. + Queues BucketNotificationQueueArrayInput + // Notification configuration to SNS Topic. See below. + Topics BucketNotificationTopicArrayInput +} + +func (BucketNotificationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketNotificationArgs)(nil)).Elem() +} + +type BucketNotificationInput interface { + pulumi.Input + + ToBucketNotificationOutput() BucketNotificationOutput + ToBucketNotificationOutputWithContext(ctx context.Context) BucketNotificationOutput +} + +func (*BucketNotification) ElementType() reflect.Type { + return reflect.TypeOf((**BucketNotification)(nil)).Elem() +} + +func (i *BucketNotification) ToBucketNotificationOutput() BucketNotificationOutput { + return i.ToBucketNotificationOutputWithContext(context.Background()) +} + +func (i *BucketNotification) ToBucketNotificationOutputWithContext(ctx context.Context) BucketNotificationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationOutput) +} + +// BucketNotificationArrayInput is an input type that accepts BucketNotificationArray and BucketNotificationArrayOutput values. +// You can construct a concrete instance of `BucketNotificationArrayInput` via: +// +// BucketNotificationArray{ BucketNotificationArgs{...} } +type BucketNotificationArrayInput interface { + pulumi.Input + + ToBucketNotificationArrayOutput() BucketNotificationArrayOutput + ToBucketNotificationArrayOutputWithContext(context.Context) BucketNotificationArrayOutput +} + +type BucketNotificationArray []BucketNotificationInput + +func (BucketNotificationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketNotification)(nil)).Elem() +} + +func (i BucketNotificationArray) ToBucketNotificationArrayOutput() BucketNotificationArrayOutput { + return i.ToBucketNotificationArrayOutputWithContext(context.Background()) +} + +func (i BucketNotificationArray) ToBucketNotificationArrayOutputWithContext(ctx context.Context) BucketNotificationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationArrayOutput) +} + +// BucketNotificationMapInput is an input type that accepts BucketNotificationMap and BucketNotificationMapOutput values. +// You can construct a concrete instance of `BucketNotificationMapInput` via: +// +// BucketNotificationMap{ "key": BucketNotificationArgs{...} } +type BucketNotificationMapInput interface { + pulumi.Input + + ToBucketNotificationMapOutput() BucketNotificationMapOutput + ToBucketNotificationMapOutputWithContext(context.Context) BucketNotificationMapOutput +} + +type BucketNotificationMap map[string]BucketNotificationInput + +func (BucketNotificationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketNotification)(nil)).Elem() +} + +func (i BucketNotificationMap) ToBucketNotificationMapOutput() BucketNotificationMapOutput { + return i.ToBucketNotificationMapOutputWithContext(context.Background()) +} + +func (i BucketNotificationMap) ToBucketNotificationMapOutputWithContext(ctx context.Context) BucketNotificationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationMapOutput) +} + +type BucketNotificationOutput struct{ *pulumi.OutputState } + +func (BucketNotificationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketNotification)(nil)).Elem() +} + +func (o BucketNotificationOutput) ToBucketNotificationOutput() BucketNotificationOutput { + return o +} + +func (o BucketNotificationOutput) ToBucketNotificationOutputWithContext(ctx context.Context) BucketNotificationOutput { + return o +} + +// Name of the bucket for notification configuration. +// +// The following arguments are optional: +func (o BucketNotificationOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketNotification) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Whether to enable Amazon EventBridge notifications. Defaults to `false`. +func (o BucketNotificationOutput) Eventbridge() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketNotification) pulumi.BoolPtrOutput { return v.Eventbridge }).(pulumi.BoolPtrOutput) +} + +// Used to configure notifications to a Lambda Function. See below. +func (o BucketNotificationOutput) LambdaFunctions() BucketNotificationLambdaFunctionArrayOutput { + return o.ApplyT(func(v *BucketNotification) BucketNotificationLambdaFunctionArrayOutput { return v.LambdaFunctions }).(BucketNotificationLambdaFunctionArrayOutput) +} + +// Notification configuration to SQS Queue. See below. +func (o BucketNotificationOutput) Queues() BucketNotificationQueueArrayOutput { + return o.ApplyT(func(v *BucketNotification) BucketNotificationQueueArrayOutput { return v.Queues }).(BucketNotificationQueueArrayOutput) +} + +// Notification configuration to SNS Topic. See below. +func (o BucketNotificationOutput) Topics() BucketNotificationTopicArrayOutput { + return o.ApplyT(func(v *BucketNotification) BucketNotificationTopicArrayOutput { return v.Topics }).(BucketNotificationTopicArrayOutput) +} + +type BucketNotificationArrayOutput struct{ *pulumi.OutputState } + +func (BucketNotificationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketNotification)(nil)).Elem() +} + +func (o BucketNotificationArrayOutput) ToBucketNotificationArrayOutput() BucketNotificationArrayOutput { + return o +} + +func (o BucketNotificationArrayOutput) ToBucketNotificationArrayOutputWithContext(ctx context.Context) BucketNotificationArrayOutput { + return o +} + +func (o BucketNotificationArrayOutput) Index(i pulumi.IntInput) BucketNotificationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketNotification { + return vs[0].([]*BucketNotification)[vs[1].(int)] + }).(BucketNotificationOutput) +} + +type BucketNotificationMapOutput struct{ *pulumi.OutputState } + +func (BucketNotificationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketNotification)(nil)).Elem() +} + +func (o BucketNotificationMapOutput) ToBucketNotificationMapOutput() BucketNotificationMapOutput { + return o +} + +func (o BucketNotificationMapOutput) ToBucketNotificationMapOutputWithContext(ctx context.Context) BucketNotificationMapOutput { + return o +} + +func (o BucketNotificationMapOutput) MapIndex(k pulumi.StringInput) BucketNotificationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketNotification { + return vs[0].(map[string]*BucketNotification)[vs[1].(string)] + }).(BucketNotificationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationInput)(nil)).Elem(), &BucketNotification{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationArrayInput)(nil)).Elem(), BucketNotificationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationMapInput)(nil)).Elem(), BucketNotificationMap{}) + pulumi.RegisterOutputType(BucketNotificationOutput{}) + pulumi.RegisterOutputType(BucketNotificationArrayOutput{}) + pulumi.RegisterOutputType(BucketNotificationMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObject.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObject.go new file mode 100644 index 000000000..167a6158e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObject.go @@ -0,0 +1,826 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 object resource. +// +// ## Example Usage +// ### Encrypting with KMS Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplekms, err := kms.NewKey(ctx, "examplekms", &kms.KeyArgs{ +// Description: pulumi.String("KMS key 1"), +// DeletionWindowInDays: pulumi.Int(7), +// }) +// if err != nil { +// return err +// } +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObject(ctx, "exampleBucketObject", &s3.BucketObjectArgs{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("index.html"), +// KmsKeyId: examplekms.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Server Side Encryption with S3 Default Master Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObject(ctx, "exampleBucketObject", &s3.BucketObjectArgs{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("index.html"), +// ServerSideEncryption: pulumi.String("aws:kms"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Server Side Encryption with AWS-Managed Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObject(ctx, "exampleBucketObject", &s3.BucketObjectArgs{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("index.html"), +// ServerSideEncryption: pulumi.String("AES256"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### S3 Object Lock +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{ +// ObjectLockEnabled: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// exampleBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "exampleBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: examplebucket.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObject(ctx, "exampleBucketObject", &s3.BucketObjectArgs{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("important.txt"), +// ObjectLockLegalHoldStatus: pulumi.String("ON"), +// ObjectLockMode: pulumi.String("GOVERNANCE"), +// ObjectLockRetainUntilDate: pulumi.String("2021-12-31T23:59:60Z"), +// ForceDestroy: pulumi.Bool(true), +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleBucketVersioningV2, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Import using S3 URL syntax: +// +// __Using `pulumi import` to import__ objects using the `id` or S3 URL. For example: +// +// Import using the `id`, which is the bucket name and the key together: +// +// ```sh +// +// $ pulumi import aws:s3/bucketObject:BucketObject example some-bucket-name/some/key.txt +// +// ``` +// +// Import using S3 URL syntax: +// +// ```sh +// +// $ pulumi import aws:s3/bucketObject:BucketObject example s3://some-bucket-name/some/key.txt +// +// ``` +type BucketObject struct { + pulumi.CustomResourceState + + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Defaults to `private`. + Acl pulumi.StringPtrOutput `pulumi:"acl"` + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolOutput `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrOutput `pulumi:"cacheControl"` + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content pulumi.StringPtrOutput `pulumi:"content"` + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 pulumi.StringPtrOutput `pulumi:"contentBase64"` + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrOutput `pulumi:"contentDisposition"` + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrOutput `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrOutput `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType pulumi.StringOutput `pulumi:"contentType"` + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"` (see `sourceHash` instead). + Etag pulumi.StringOutput `pulumi:"etag"` + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key pulumi.StringOutput `pulumi:"key"` + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapOutput `pulumi:"metadata"` + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrOutput `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrOutput `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrOutput `pulumi:"objectLockRetainUntilDate"` + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption pulumi.StringOutput `pulumi:"serverSideEncryption"` + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchiveOutput `pulumi:"source"` + // Triggers updates like `etag` but useful to address `etag` encryption limitations. + SourceHash pulumi.StringPtrOutput `pulumi:"sourceHash"` + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass pulumi.StringOutput `pulumi:"storageClass"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Unique version ID value for the object, if bucket versioning is enabled. + VersionId pulumi.StringOutput `pulumi:"versionId"` + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + WebsiteRedirect pulumi.StringPtrOutput `pulumi:"websiteRedirect"` +} + +// NewBucketObject registers a new resource with the given unique name, arguments, and options. +func NewBucketObject(ctx *pulumi.Context, + name string, args *BucketObjectArgs, opts ...pulumi.ResourceOption) (*BucketObject, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketObject + err := ctx.RegisterResource("aws:s3/bucketObject:BucketObject", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketObject gets an existing BucketObject resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketObject(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketObjectState, opts ...pulumi.ResourceOption) (*BucketObject, error) { + var resource BucketObject + err := ctx.ReadResource("aws:s3/bucketObject:BucketObject", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketObject resources. +type bucketObjectState struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Defaults to `private`. + Acl *string `pulumi:"acl"` + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket interface{} `pulumi:"bucket"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl *string `pulumi:"cacheControl"` + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content *string `pulumi:"content"` + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 *string `pulumi:"contentBase64"` + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition *string `pulumi:"contentDisposition"` + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding *string `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage *string `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType *string `pulumi:"contentType"` + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"` (see `sourceHash` instead). + Etag *string `pulumi:"etag"` + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy *bool `pulumi:"forceDestroy"` + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key *string `pulumi:"key"` + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata map[string]string `pulumi:"metadata"` + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode *string `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"` + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption *string `pulumi:"serverSideEncryption"` + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchive `pulumi:"source"` + // Triggers updates like `etag` but useful to address `etag` encryption limitations. + SourceHash *string `pulumi:"sourceHash"` + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass *string `pulumi:"storageClass"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Unique version ID value for the object, if bucket versioning is enabled. + VersionId *string `pulumi:"versionId"` + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + WebsiteRedirect *string `pulumi:"websiteRedirect"` +} + +type BucketObjectState struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Defaults to `private`. + Acl pulumi.StringPtrInput + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket pulumi.Input + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrInput + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content pulumi.StringPtrInput + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 pulumi.StringPtrInput + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrInput + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrInput + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrInput + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType pulumi.StringPtrInput + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"` (see `sourceHash` instead). + Etag pulumi.StringPtrInput + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrInput + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key pulumi.StringPtrInput + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId pulumi.StringPtrInput + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapInput + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrInput + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrInput + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrInput + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption pulumi.StringPtrInput + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchiveInput + // Triggers updates like `etag` but useful to address `etag` encryption limitations. + SourceHash pulumi.StringPtrInput + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Unique version ID value for the object, if bucket versioning is enabled. + VersionId pulumi.StringPtrInput + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + WebsiteRedirect pulumi.StringPtrInput +} + +func (BucketObjectState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketObjectState)(nil)).Elem() +} + +type bucketObjectArgs struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Defaults to `private`. + Acl *string `pulumi:"acl"` + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket interface{} `pulumi:"bucket"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl *string `pulumi:"cacheControl"` + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content *string `pulumi:"content"` + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 *string `pulumi:"contentBase64"` + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition *string `pulumi:"contentDisposition"` + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding *string `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage *string `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType *string `pulumi:"contentType"` + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"` (see `sourceHash` instead). + Etag *string `pulumi:"etag"` + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy *bool `pulumi:"forceDestroy"` + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key *string `pulumi:"key"` + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata map[string]string `pulumi:"metadata"` + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode *string `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"` + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption *string `pulumi:"serverSideEncryption"` + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchive `pulumi:"source"` + // Triggers updates like `etag` but useful to address `etag` encryption limitations. + SourceHash *string `pulumi:"sourceHash"` + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass *string `pulumi:"storageClass"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + WebsiteRedirect *string `pulumi:"websiteRedirect"` +} + +// The set of arguments for constructing a BucketObject resource. +type BucketObjectArgs struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Defaults to `private`. + Acl pulumi.StringPtrInput + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket pulumi.Input + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrInput + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content pulumi.StringPtrInput + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 pulumi.StringPtrInput + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrInput + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrInput + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrInput + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType pulumi.StringPtrInput + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"` (see `sourceHash` instead). + Etag pulumi.StringPtrInput + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrInput + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key pulumi.StringPtrInput + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId pulumi.StringPtrInput + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapInput + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrInput + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrInput + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrInput + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption pulumi.StringPtrInput + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchiveInput + // Triggers updates like `etag` but useful to address `etag` encryption limitations. + SourceHash pulumi.StringPtrInput + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + WebsiteRedirect pulumi.StringPtrInput +} + +func (BucketObjectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketObjectArgs)(nil)).Elem() +} + +type BucketObjectInput interface { + pulumi.Input + + ToBucketObjectOutput() BucketObjectOutput + ToBucketObjectOutputWithContext(ctx context.Context) BucketObjectOutput +} + +func (*BucketObject) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObject)(nil)).Elem() +} + +func (i *BucketObject) ToBucketObjectOutput() BucketObjectOutput { + return i.ToBucketObjectOutputWithContext(context.Background()) +} + +func (i *BucketObject) ToBucketObjectOutputWithContext(ctx context.Context) BucketObjectOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectOutput) +} + +// BucketObjectArrayInput is an input type that accepts BucketObjectArray and BucketObjectArrayOutput values. +// You can construct a concrete instance of `BucketObjectArrayInput` via: +// +// BucketObjectArray{ BucketObjectArgs{...} } +type BucketObjectArrayInput interface { + pulumi.Input + + ToBucketObjectArrayOutput() BucketObjectArrayOutput + ToBucketObjectArrayOutputWithContext(context.Context) BucketObjectArrayOutput +} + +type BucketObjectArray []BucketObjectInput + +func (BucketObjectArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketObject)(nil)).Elem() +} + +func (i BucketObjectArray) ToBucketObjectArrayOutput() BucketObjectArrayOutput { + return i.ToBucketObjectArrayOutputWithContext(context.Background()) +} + +func (i BucketObjectArray) ToBucketObjectArrayOutputWithContext(ctx context.Context) BucketObjectArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectArrayOutput) +} + +// BucketObjectMapInput is an input type that accepts BucketObjectMap and BucketObjectMapOutput values. +// You can construct a concrete instance of `BucketObjectMapInput` via: +// +// BucketObjectMap{ "key": BucketObjectArgs{...} } +type BucketObjectMapInput interface { + pulumi.Input + + ToBucketObjectMapOutput() BucketObjectMapOutput + ToBucketObjectMapOutputWithContext(context.Context) BucketObjectMapOutput +} + +type BucketObjectMap map[string]BucketObjectInput + +func (BucketObjectMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketObject)(nil)).Elem() +} + +func (i BucketObjectMap) ToBucketObjectMapOutput() BucketObjectMapOutput { + return i.ToBucketObjectMapOutputWithContext(context.Background()) +} + +func (i BucketObjectMap) ToBucketObjectMapOutputWithContext(ctx context.Context) BucketObjectMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectMapOutput) +} + +type BucketObjectOutput struct{ *pulumi.OutputState } + +func (BucketObjectOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObject)(nil)).Elem() +} + +func (o BucketObjectOutput) ToBucketObjectOutput() BucketObjectOutput { + return o +} + +func (o BucketObjectOutput) ToBucketObjectOutputWithContext(ctx context.Context) BucketObjectOutput { + return o +} + +// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Defaults to `private`. +func (o BucketObjectOutput) Acl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.Acl }).(pulumi.StringPtrOutput) +} + +// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. +func (o BucketObjectOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o BucketObjectOutput) BucketKeyEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *BucketObject) pulumi.BoolOutput { return v.BucketKeyEnabled }).(pulumi.BoolOutput) +} + +// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. +func (o BucketObjectOutput) CacheControl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.CacheControl }).(pulumi.StringPtrOutput) +} + +// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. +func (o BucketObjectOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.Content }).(pulumi.StringPtrOutput) +} + +// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. +func (o BucketObjectOutput) ContentBase64() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ContentBase64 }).(pulumi.StringPtrOutput) +} + +// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. +func (o BucketObjectOutput) ContentDisposition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ContentDisposition }).(pulumi.StringPtrOutput) +} + +// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. +func (o BucketObjectOutput) ContentEncoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ContentEncoding }).(pulumi.StringPtrOutput) +} + +// Language the content is in e.g., en-US or en-GB. +func (o BucketObjectOutput) ContentLanguage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ContentLanguage }).(pulumi.StringPtrOutput) +} + +// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. +func (o BucketObjectOutput) ContentType() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.ContentType }).(pulumi.StringOutput) +} + +// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"` (see `sourceHash` instead). +func (o BucketObjectOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. +func (o BucketObjectOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// Name of the object once it is in the bucket. +// +// The following arguments are optional: +func (o BucketObjectOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. +func (o BucketObjectOutput) KmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) +} + +// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). +func (o BucketObjectOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringMapOutput { return v.Metadata }).(pulumi.StringMapOutput) +} + +// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. +func (o BucketObjectOutput) ObjectLockLegalHoldStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ObjectLockLegalHoldStatus }).(pulumi.StringPtrOutput) +} + +// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. +func (o BucketObjectOutput) ObjectLockMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ObjectLockMode }).(pulumi.StringPtrOutput) +} + +// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). +func (o BucketObjectOutput) ObjectLockRetainUntilDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.ObjectLockRetainUntilDate }).(pulumi.StringPtrOutput) +} + +// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". +func (o BucketObjectOutput) ServerSideEncryption() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.ServerSideEncryption }).(pulumi.StringOutput) +} + +// Path to a file that will be read and uploaded as raw bytes for the object content. +func (o BucketObjectOutput) Source() pulumi.AssetOrArchiveOutput { + return o.ApplyT(func(v *BucketObject) pulumi.AssetOrArchiveOutput { return v.Source }).(pulumi.AssetOrArchiveOutput) +} + +// Triggers updates like `etag` but useful to address `etag` encryption limitations. +func (o BucketObjectOutput) SourceHash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.SourceHash }).(pulumi.StringPtrOutput) +} + +// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". +func (o BucketObjectOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.StorageClass }).(pulumi.StringOutput) +} + +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketObjectOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o BucketObjectOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Unique version ID value for the object, if bucket versioning is enabled. +func (o BucketObjectOutput) VersionId() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringOutput { return v.VersionId }).(pulumi.StringOutput) +} + +// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). +// +// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. +func (o BucketObjectOutput) WebsiteRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObject) pulumi.StringPtrOutput { return v.WebsiteRedirect }).(pulumi.StringPtrOutput) +} + +type BucketObjectArrayOutput struct{ *pulumi.OutputState } + +func (BucketObjectArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketObject)(nil)).Elem() +} + +func (o BucketObjectArrayOutput) ToBucketObjectArrayOutput() BucketObjectArrayOutput { + return o +} + +func (o BucketObjectArrayOutput) ToBucketObjectArrayOutputWithContext(ctx context.Context) BucketObjectArrayOutput { + return o +} + +func (o BucketObjectArrayOutput) Index(i pulumi.IntInput) BucketObjectOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketObject { + return vs[0].([]*BucketObject)[vs[1].(int)] + }).(BucketObjectOutput) +} + +type BucketObjectMapOutput struct{ *pulumi.OutputState } + +func (BucketObjectMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketObject)(nil)).Elem() +} + +func (o BucketObjectMapOutput) ToBucketObjectMapOutput() BucketObjectMapOutput { + return o +} + +func (o BucketObjectMapOutput) ToBucketObjectMapOutputWithContext(ctx context.Context) BucketObjectMapOutput { + return o +} + +func (o BucketObjectMapOutput) MapIndex(k pulumi.StringInput) BucketObjectOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketObject { + return vs[0].(map[string]*BucketObject)[vs[1].(string)] + }).(BucketObjectOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectInput)(nil)).Elem(), &BucketObject{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectArrayInput)(nil)).Elem(), BucketObjectArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectMapInput)(nil)).Elem(), BucketObjectMap{}) + pulumi.RegisterOutputType(BucketObjectOutput{}) + pulumi.RegisterOutputType(BucketObjectArrayOutput{}) + pulumi.RegisterOutputType(BucketObjectMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectLockConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectLockConfigurationV2.go new file mode 100644 index 000000000..a39ab2f1b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectLockConfigurationV2.go @@ -0,0 +1,438 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket Object Lock configuration resource. For more information about Object Locking, go to [Using S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) in the Amazon S3 User Guide. +// +// > **NOTE:** This resource **does not enable** Object Lock for **new** buckets. It configures a default retention period for objects placed in the specified bucket. +// Thus, to **enable** Object Lock for a **new** bucket, see the Using object lock configuration section in the `s3.BucketV2` resource or the Object Lock configuration for a new bucket example below. +// If you want to **enable** Object Lock for an **existing** bucket, contact AWS Support and see the Object Lock configuration for an existing bucket example below. +// +// ## Example Usage +// ### Object Lock configuration for a new bucket +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", &s3.BucketV2Args{ +// ObjectLockEnabled: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectLockConfigurationV2(ctx, "exampleBucketObjectLockConfigurationV2", &s3.BucketObjectLockConfigurationV2Args{ +// Bucket: exampleBucketV2.ID(), +// Rule: &s3.BucketObjectLockConfigurationV2RuleArgs{ +// DefaultRetention: &s3.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{ +// Mode: pulumi.String("COMPLIANCE"), +// Days: pulumi.Int(5), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Object Lock configuration for an existing bucket +// +// This is a multistep process that requires AWS Support intervention. +// +// 1. Enable versioning on your S3 bucket, if you have not already done so. +// Doing so will generate an "Object Lock token" in the back-end. +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketVersioningV2(ctx, "exampleBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: exampleBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// 2. Contact AWS Support to provide you with the "Object Lock token" for the specified bucket and use the token (or token ID) within your new `s3.BucketObjectLockConfigurationV2` resource. +// Notice the `objectLockEnabled` argument does not need to be specified as it defaults to `Enabled`. +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketObjectLockConfigurationV2(ctx, "example", &s3.BucketObjectLockConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Example.Id), +// Rule: &s3.BucketObjectLockConfigurationV2RuleArgs{ +// DefaultRetention: &s3.BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{ +// Mode: pulumi.String("COMPLIANCE"), +// Days: pulumi.Int(5), +// }, +// }, +// Token: pulumi.String("NG2MKsfoLqV3A+aquXneSG4LOu/ekrlXkRXwIPFVfERT7XOPos+/k444d7RIH0E3W3p5QU6ml2exS2F/eYCFmMWHJ3hFZGk6al1sIJkmNhUMYmsv0jYVQyTTZNLM+DnfooA6SATt39mM1VW1yJh4E+XljMlWzaBwHKbss3/EjlGDjOmVhaSs4Z6427mMCaFD0RLwsYY7zX49gEc31YfOMJGxbXCXSeyNwAhhM/A8UH7gQf38RmjHjjAFbbbLtl8arsxTPW8F1IYohqwmKIr9DnotLLj8Tg44U2SPwujVaqmlKKP9s41rfgb4UbIm7khSafDBng0LGfxC4pMlT9Ny2w=="), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// import { +// +// to = aws_s3_bucket_object_lock_configuration.example +// +// id = "bucket-name,123456789012" } +// +// __Using `pulumi import` to import__ S3 bucket Object Lock configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketObjectLockConfigurationV2 struct { + pulumi.CustomResourceState + + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Indicates whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`. + ObjectLockEnabled pulumi.StringPtrOutput `pulumi:"objectLockEnabled"` + // Configuration block for specifying the Object Lock rule for the specified object. See below. + Rule BucketObjectLockConfigurationV2RulePtrOutput `pulumi:"rule"` + // Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". + // The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. + Token pulumi.StringPtrOutput `pulumi:"token"` +} + +// NewBucketObjectLockConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketObjectLockConfigurationV2(ctx *pulumi.Context, + name string, args *BucketObjectLockConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketObjectLockConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Token != nil { + args.Token = pulumi.ToSecret(args.Token).(pulumi.StringPtrInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "token", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketObjectLockConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketObjectLockConfigurationV2 gets an existing BucketObjectLockConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketObjectLockConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketObjectLockConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketObjectLockConfigurationV2, error) { + var resource BucketObjectLockConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketObjectLockConfigurationV2 resources. +type bucketObjectLockConfigurationV2State struct { + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Indicates whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`. + ObjectLockEnabled *string `pulumi:"objectLockEnabled"` + // Configuration block for specifying the Object Lock rule for the specified object. See below. + Rule *BucketObjectLockConfigurationV2Rule `pulumi:"rule"` + // Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". + // The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. + Token *string `pulumi:"token"` +} + +type BucketObjectLockConfigurationV2State struct { + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Indicates whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`. + ObjectLockEnabled pulumi.StringPtrInput + // Configuration block for specifying the Object Lock rule for the specified object. See below. + Rule BucketObjectLockConfigurationV2RulePtrInput + // Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". + // The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. + Token pulumi.StringPtrInput +} + +func (BucketObjectLockConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketObjectLockConfigurationV2State)(nil)).Elem() +} + +type bucketObjectLockConfigurationV2Args struct { + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Indicates whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`. + ObjectLockEnabled *string `pulumi:"objectLockEnabled"` + // Configuration block for specifying the Object Lock rule for the specified object. See below. + Rule *BucketObjectLockConfigurationV2Rule `pulumi:"rule"` + // Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". + // The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. + Token *string `pulumi:"token"` +} + +// The set of arguments for constructing a BucketObjectLockConfigurationV2 resource. +type BucketObjectLockConfigurationV2Args struct { + // Name of the bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Indicates whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`. + ObjectLockEnabled pulumi.StringPtrInput + // Configuration block for specifying the Object Lock rule for the specified object. See below. + Rule BucketObjectLockConfigurationV2RulePtrInput + // Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". + // The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. + Token pulumi.StringPtrInput +} + +func (BucketObjectLockConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketObjectLockConfigurationV2Args)(nil)).Elem() +} + +type BucketObjectLockConfigurationV2Input interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2Output() BucketObjectLockConfigurationV2Output + ToBucketObjectLockConfigurationV2OutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2Output +} + +func (*BucketObjectLockConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationV2)(nil)).Elem() +} + +func (i *BucketObjectLockConfigurationV2) ToBucketObjectLockConfigurationV2Output() BucketObjectLockConfigurationV2Output { + return i.ToBucketObjectLockConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketObjectLockConfigurationV2) ToBucketObjectLockConfigurationV2OutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2Output) +} + +// BucketObjectLockConfigurationV2ArrayInput is an input type that accepts BucketObjectLockConfigurationV2Array and BucketObjectLockConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationV2ArrayInput` via: +// +// BucketObjectLockConfigurationV2Array{ BucketObjectLockConfigurationV2Args{...} } +type BucketObjectLockConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2ArrayOutput() BucketObjectLockConfigurationV2ArrayOutput + ToBucketObjectLockConfigurationV2ArrayOutputWithContext(context.Context) BucketObjectLockConfigurationV2ArrayOutput +} + +type BucketObjectLockConfigurationV2Array []BucketObjectLockConfigurationV2Input + +func (BucketObjectLockConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketObjectLockConfigurationV2)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationV2Array) ToBucketObjectLockConfigurationV2ArrayOutput() BucketObjectLockConfigurationV2ArrayOutput { + return i.ToBucketObjectLockConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationV2Array) ToBucketObjectLockConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2ArrayOutput) +} + +// BucketObjectLockConfigurationV2MapInput is an input type that accepts BucketObjectLockConfigurationV2Map and BucketObjectLockConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationV2MapInput` via: +// +// BucketObjectLockConfigurationV2Map{ "key": BucketObjectLockConfigurationV2Args{...} } +type BucketObjectLockConfigurationV2MapInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2MapOutput() BucketObjectLockConfigurationV2MapOutput + ToBucketObjectLockConfigurationV2MapOutputWithContext(context.Context) BucketObjectLockConfigurationV2MapOutput +} + +type BucketObjectLockConfigurationV2Map map[string]BucketObjectLockConfigurationV2Input + +func (BucketObjectLockConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketObjectLockConfigurationV2)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationV2Map) ToBucketObjectLockConfigurationV2MapOutput() BucketObjectLockConfigurationV2MapOutput { + return i.ToBucketObjectLockConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationV2Map) ToBucketObjectLockConfigurationV2MapOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2MapOutput) +} + +type BucketObjectLockConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationV2)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2Output) ToBucketObjectLockConfigurationV2Output() BucketObjectLockConfigurationV2Output { + return o +} + +func (o BucketObjectLockConfigurationV2Output) ToBucketObjectLockConfigurationV2OutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2Output { + return o +} + +// Name of the bucket. +func (o BucketObjectLockConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketObjectLockConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Defaults to `Enabled`. Valid values: `Enabled`. +func (o BucketObjectLockConfigurationV2Output) ObjectLockEnabled() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2) pulumi.StringPtrOutput { return v.ObjectLockEnabled }).(pulumi.StringPtrOutput) +} + +// Configuration block for specifying the Object Lock rule for the specified object. See below. +func (o BucketObjectLockConfigurationV2Output) Rule() BucketObjectLockConfigurationV2RulePtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2) BucketObjectLockConfigurationV2RulePtrOutput { return v.Rule }).(BucketObjectLockConfigurationV2RulePtrOutput) +} + +// Token to allow Object Lock to be enabled for an existing bucket. You must contact AWS support for the bucket's "Object Lock token". +// The token is generated in the back-end when [versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html) is enabled on a bucket. For more details on versioning, see the `s3.BucketVersioningV2` resource. +func (o BucketObjectLockConfigurationV2Output) Token() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2) pulumi.StringPtrOutput { return v.Token }).(pulumi.StringPtrOutput) +} + +type BucketObjectLockConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketObjectLockConfigurationV2)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2ArrayOutput) ToBucketObjectLockConfigurationV2ArrayOutput() BucketObjectLockConfigurationV2ArrayOutput { + return o +} + +func (o BucketObjectLockConfigurationV2ArrayOutput) ToBucketObjectLockConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2ArrayOutput { + return o +} + +func (o BucketObjectLockConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketObjectLockConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketObjectLockConfigurationV2 { + return vs[0].([]*BucketObjectLockConfigurationV2)[vs[1].(int)] + }).(BucketObjectLockConfigurationV2Output) +} + +type BucketObjectLockConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketObjectLockConfigurationV2)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2MapOutput) ToBucketObjectLockConfigurationV2MapOutput() BucketObjectLockConfigurationV2MapOutput { + return o +} + +func (o BucketObjectLockConfigurationV2MapOutput) ToBucketObjectLockConfigurationV2MapOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2MapOutput { + return o +} + +func (o BucketObjectLockConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketObjectLockConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketObjectLockConfigurationV2 { + return vs[0].(map[string]*BucketObjectLockConfigurationV2)[vs[1].(string)] + }).(BucketObjectLockConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2Input)(nil)).Elem(), &BucketObjectLockConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2ArrayInput)(nil)).Elem(), BucketObjectLockConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2MapInput)(nil)).Elem(), BucketObjectLockConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectv2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectv2.go new file mode 100644 index 000000000..11e60d855 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketObjectv2.go @@ -0,0 +1,960 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 object resource. +// +// ## Example Usage +// ### Encrypting with KMS Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplekms, err := kms.NewKey(ctx, "examplekms", &kms.KeyArgs{ +// Description: pulumi.String("KMS key 1"), +// DeletionWindowInDays: pulumi.Int(7), +// }) +// if err != nil { +// return err +// } +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectv2(ctx, "exampleBucketObjectv2", &s3.BucketObjectv2Args{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("index.html"), +// KmsKeyId: examplekms.Arn, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Server Side Encryption with S3 Default Master Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectv2(ctx, "exampleBucketObjectv2", &s3.BucketObjectv2Args{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("index.html"), +// ServerSideEncryption: pulumi.String("aws:kms"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Server Side Encryption with AWS-Managed Key +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectv2(ctx, "exampleBucketObjectv2", &s3.BucketObjectv2Args{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("index.html"), +// ServerSideEncryption: pulumi.String("AES256"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### S3 Object Lock +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", &s3.BucketV2Args{ +// ObjectLockEnabled: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: examplebucket.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// exampleBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "exampleBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: examplebucket.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectv2(ctx, "examplebucketObject", &s3.BucketObjectv2Args{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("important.txt"), +// ObjectLockLegalHoldStatus: pulumi.String("ON"), +// ObjectLockMode: pulumi.String("GOVERNANCE"), +// ObjectLockRetainUntilDate: pulumi.String("2021-12-31T23:59:60Z"), +// ForceDestroy: pulumi.Bool(true), +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleBucketVersioningV2, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Ignoring Provider `defaultTags` +// +// S3 objects support a [maximum of 10 tags](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). +// If the resource's own `tags` and the provider-level `defaultTags` would together lead to more than 10 tags on an S3 object, use the `overrideProvider` configuration block to suppress any provider-level `defaultTags`. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// examplebucket, err := s3.NewBucketV2(ctx, "examplebucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectv2(ctx, "examplebucketObject", &s3.BucketObjectv2Args{ +// Key: pulumi.String("someobject"), +// Bucket: examplebucket.ID(), +// Source: pulumi.NewFileAsset("important.txt"), +// Tags: pulumi.StringMap{ +// "Env": pulumi.String("test"), +// }, +// OverrideProvider: &s3.BucketObjectv2OverrideProviderArgs{ +// DefaultTags: &s3.BucketObjectv2OverrideProviderDefaultTagsArgs{ +// Tags: nil, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Import using S3 URL syntax: +// +// __Using `pulumi import` to import__ objects using the `id` or S3 URL. For example: +// +// Import using the `id`, which is the bucket name and the key together: +// +// ```sh +// +// $ pulumi import aws:s3/bucketObjectv2:BucketObjectv2 example some-bucket-name/some/key.txt +// +// ``` +// +// Import using S3 URL syntax: +// +// ```sh +// +// $ pulumi import aws:s3/bucketObjectv2:BucketObjectv2 example s3://some-bucket-name/some/key.txt +// +// ``` +type BucketObjectv2 struct { + pulumi.CustomResourceState + + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. + Acl pulumi.StringOutput `pulumi:"acl"` + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolOutput `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrOutput `pulumi:"cacheControl"` + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm pulumi.StringPtrOutput `pulumi:"checksumAlgorithm"` + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 pulumi.StringOutput `pulumi:"checksumCrc32"` + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c pulumi.StringOutput `pulumi:"checksumCrc32c"` + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 pulumi.StringOutput `pulumi:"checksumSha1"` + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 pulumi.StringOutput `pulumi:"checksumSha256"` + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content pulumi.StringPtrOutput `pulumi:"content"` + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 pulumi.StringPtrOutput `pulumi:"contentBase64"` + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrOutput `pulumi:"contentDisposition"` + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrOutput `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrOutput `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType pulumi.StringOutput `pulumi:"contentType"` + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead). + Etag pulumi.StringOutput `pulumi:"etag"` + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key pulumi.StringOutput `pulumi:"key"` + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapOutput `pulumi:"metadata"` + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrOutput `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrOutput `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrOutput `pulumi:"objectLockRetainUntilDate"` + // Override provider-level configuration options. See Override Provider below for more details. + OverrideProvider BucketObjectv2OverrideProviderPtrOutput `pulumi:"overrideProvider"` + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption pulumi.StringOutput `pulumi:"serverSideEncryption"` + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchiveOutput `pulumi:"source"` + // Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.) + SourceHash pulumi.StringPtrOutput `pulumi:"sourceHash"` + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass pulumi.StringOutput `pulumi:"storageClass"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Unique version ID value for the object, if bucket versioning is enabled. + VersionId pulumi.StringOutput `pulumi:"versionId"` + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + // + // > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. + WebsiteRedirect pulumi.StringPtrOutput `pulumi:"websiteRedirect"` +} + +// NewBucketObjectv2 registers a new resource with the given unique name, arguments, and options. +func NewBucketObjectv2(ctx *pulumi.Context, + name string, args *BucketObjectv2Args, opts ...pulumi.ResourceOption) (*BucketObjectv2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("aws:s3/BucketObject:BucketObject"), + }, + }) + opts = append(opts, aliases) + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketObjectv2 + err := ctx.RegisterResource("aws:s3/bucketObjectv2:BucketObjectv2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketObjectv2 gets an existing BucketObjectv2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketObjectv2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketObjectv2State, opts ...pulumi.ResourceOption) (*BucketObjectv2, error) { + var resource BucketObjectv2 + err := ctx.ReadResource("aws:s3/bucketObjectv2:BucketObjectv2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketObjectv2 resources. +type bucketObjectv2State struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. + Acl *string `pulumi:"acl"` + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket interface{} `pulumi:"bucket"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl *string `pulumi:"cacheControl"` + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm *string `pulumi:"checksumAlgorithm"` + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 *string `pulumi:"checksumCrc32"` + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c *string `pulumi:"checksumCrc32c"` + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 *string `pulumi:"checksumSha1"` + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 *string `pulumi:"checksumSha256"` + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content *string `pulumi:"content"` + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 *string `pulumi:"contentBase64"` + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition *string `pulumi:"contentDisposition"` + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding *string `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage *string `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType *string `pulumi:"contentType"` + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead). + Etag *string `pulumi:"etag"` + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy *bool `pulumi:"forceDestroy"` + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key *string `pulumi:"key"` + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata map[string]string `pulumi:"metadata"` + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode *string `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"` + // Override provider-level configuration options. See Override Provider below for more details. + OverrideProvider *BucketObjectv2OverrideProvider `pulumi:"overrideProvider"` + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption *string `pulumi:"serverSideEncryption"` + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchive `pulumi:"source"` + // Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.) + SourceHash *string `pulumi:"sourceHash"` + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass *string `pulumi:"storageClass"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Unique version ID value for the object, if bucket versioning is enabled. + VersionId *string `pulumi:"versionId"` + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + // + // > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. + WebsiteRedirect *string `pulumi:"websiteRedirect"` +} + +type BucketObjectv2State struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. + Acl pulumi.StringPtrInput + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket pulumi.Input + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrInput + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm pulumi.StringPtrInput + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 pulumi.StringPtrInput + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c pulumi.StringPtrInput + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 pulumi.StringPtrInput + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 pulumi.StringPtrInput + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content pulumi.StringPtrInput + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 pulumi.StringPtrInput + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrInput + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrInput + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrInput + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType pulumi.StringPtrInput + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead). + Etag pulumi.StringPtrInput + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrInput + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key pulumi.StringPtrInput + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId pulumi.StringPtrInput + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapInput + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrInput + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrInput + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrInput + // Override provider-level configuration options. See Override Provider below for more details. + OverrideProvider BucketObjectv2OverrideProviderPtrInput + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption pulumi.StringPtrInput + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchiveInput + // Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.) + SourceHash pulumi.StringPtrInput + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Unique version ID value for the object, if bucket versioning is enabled. + VersionId pulumi.StringPtrInput + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + // + // > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. + WebsiteRedirect pulumi.StringPtrInput +} + +func (BucketObjectv2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketObjectv2State)(nil)).Elem() +} + +type bucketObjectv2Args struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. + Acl *string `pulumi:"acl"` + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket interface{} `pulumi:"bucket"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl *string `pulumi:"cacheControl"` + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm *string `pulumi:"checksumAlgorithm"` + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content *string `pulumi:"content"` + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 *string `pulumi:"contentBase64"` + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition *string `pulumi:"contentDisposition"` + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding *string `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage *string `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType *string `pulumi:"contentType"` + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead). + Etag *string `pulumi:"etag"` + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy *bool `pulumi:"forceDestroy"` + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key *string `pulumi:"key"` + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId *string `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata map[string]string `pulumi:"metadata"` + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode *string `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"` + // Override provider-level configuration options. See Override Provider below for more details. + OverrideProvider *BucketObjectv2OverrideProvider `pulumi:"overrideProvider"` + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption *string `pulumi:"serverSideEncryption"` + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchive `pulumi:"source"` + // Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.) + SourceHash *string `pulumi:"sourceHash"` + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass *string `pulumi:"storageClass"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + // + // > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. + WebsiteRedirect *string `pulumi:"websiteRedirect"` +} + +// The set of arguments for constructing a BucketObjectv2 resource. +type BucketObjectv2Args struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. + Acl pulumi.StringPtrInput + // Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. + Bucket pulumi.Input + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput + // Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrInput + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm pulumi.StringPtrInput + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. + Content pulumi.StringPtrInput + // Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. + ContentBase64 pulumi.StringPtrInput + // Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrInput + // Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrInput + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrInput + // Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. + ContentType pulumi.StringPtrInput + // Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead). + Etag pulumi.StringPtrInput + // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrInput + // Name of the object once it is in the bucket. + // + // The following arguments are optional: + Key pulumi.StringPtrInput + // ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. + KmsKeyId pulumi.StringPtrInput + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapInput + // [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrInput + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrInput + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrInput + // Override provider-level configuration options. See Override Provider below for more details. + OverrideProvider BucketObjectv2OverrideProviderPtrInput + // Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". + ServerSideEncryption pulumi.StringPtrInput + // Path to a file that will be read and uploaded as raw bytes for the object content. + Source pulumi.AssetOrArchiveInput + // Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.) + SourceHash pulumi.StringPtrInput + // [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". + StorageClass pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // + // If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. + // + // > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. + WebsiteRedirect pulumi.StringPtrInput +} + +func (BucketObjectv2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketObjectv2Args)(nil)).Elem() +} + +type BucketObjectv2Input interface { + pulumi.Input + + ToBucketObjectv2Output() BucketObjectv2Output + ToBucketObjectv2OutputWithContext(ctx context.Context) BucketObjectv2Output +} + +func (*BucketObjectv2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectv2)(nil)).Elem() +} + +func (i *BucketObjectv2) ToBucketObjectv2Output() BucketObjectv2Output { + return i.ToBucketObjectv2OutputWithContext(context.Background()) +} + +func (i *BucketObjectv2) ToBucketObjectv2OutputWithContext(ctx context.Context) BucketObjectv2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2Output) +} + +// BucketObjectv2ArrayInput is an input type that accepts BucketObjectv2Array and BucketObjectv2ArrayOutput values. +// You can construct a concrete instance of `BucketObjectv2ArrayInput` via: +// +// BucketObjectv2Array{ BucketObjectv2Args{...} } +type BucketObjectv2ArrayInput interface { + pulumi.Input + + ToBucketObjectv2ArrayOutput() BucketObjectv2ArrayOutput + ToBucketObjectv2ArrayOutputWithContext(context.Context) BucketObjectv2ArrayOutput +} + +type BucketObjectv2Array []BucketObjectv2Input + +func (BucketObjectv2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketObjectv2)(nil)).Elem() +} + +func (i BucketObjectv2Array) ToBucketObjectv2ArrayOutput() BucketObjectv2ArrayOutput { + return i.ToBucketObjectv2ArrayOutputWithContext(context.Background()) +} + +func (i BucketObjectv2Array) ToBucketObjectv2ArrayOutputWithContext(ctx context.Context) BucketObjectv2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2ArrayOutput) +} + +// BucketObjectv2MapInput is an input type that accepts BucketObjectv2Map and BucketObjectv2MapOutput values. +// You can construct a concrete instance of `BucketObjectv2MapInput` via: +// +// BucketObjectv2Map{ "key": BucketObjectv2Args{...} } +type BucketObjectv2MapInput interface { + pulumi.Input + + ToBucketObjectv2MapOutput() BucketObjectv2MapOutput + ToBucketObjectv2MapOutputWithContext(context.Context) BucketObjectv2MapOutput +} + +type BucketObjectv2Map map[string]BucketObjectv2Input + +func (BucketObjectv2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketObjectv2)(nil)).Elem() +} + +func (i BucketObjectv2Map) ToBucketObjectv2MapOutput() BucketObjectv2MapOutput { + return i.ToBucketObjectv2MapOutputWithContext(context.Background()) +} + +func (i BucketObjectv2Map) ToBucketObjectv2MapOutputWithContext(ctx context.Context) BucketObjectv2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2MapOutput) +} + +type BucketObjectv2Output struct{ *pulumi.OutputState } + +func (BucketObjectv2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectv2)(nil)).Elem() +} + +func (o BucketObjectv2Output) ToBucketObjectv2Output() BucketObjectv2Output { + return o +} + +func (o BucketObjectv2Output) ToBucketObjectv2OutputWithContext(ctx context.Context) BucketObjectv2Output { + return o +} + +// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, `bucket-owner-read`, and `bucket-owner-full-control`. +func (o BucketObjectv2Output) Acl() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Acl }).(pulumi.StringOutput) +} + +// Name of the bucket to put the file in. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified. +func (o BucketObjectv2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o BucketObjectv2Output) BucketKeyEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.BoolOutput { return v.BucketKeyEnabled }).(pulumi.BoolOutput) +} + +// Caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. +func (o BucketObjectv2Output) CacheControl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.CacheControl }).(pulumi.StringPtrOutput) +} + +// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. +func (o BucketObjectv2Output) ChecksumAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ChecksumAlgorithm }).(pulumi.StringPtrOutput) +} + +// The base64-encoded, 32-bit CRC32 checksum of the object. +func (o BucketObjectv2Output) ChecksumCrc32() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumCrc32 }).(pulumi.StringOutput) +} + +// The base64-encoded, 32-bit CRC32C checksum of the object. +func (o BucketObjectv2Output) ChecksumCrc32c() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumCrc32c }).(pulumi.StringOutput) +} + +// The base64-encoded, 160-bit SHA-1 digest of the object. +func (o BucketObjectv2Output) ChecksumSha1() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumSha1 }).(pulumi.StringOutput) +} + +// The base64-encoded, 256-bit SHA-256 digest of the object. +func (o BucketObjectv2Output) ChecksumSha256() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ChecksumSha256 }).(pulumi.StringOutput) +} + +// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. +func (o BucketObjectv2Output) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.Content }).(pulumi.StringPtrOutput) +} + +// Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. +func (o BucketObjectv2Output) ContentBase64() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentBase64 }).(pulumi.StringPtrOutput) +} + +// Presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. +func (o BucketObjectv2Output) ContentDisposition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentDisposition }).(pulumi.StringPtrOutput) +} + +// Content encodings that have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. +func (o BucketObjectv2Output) ContentEncoding() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentEncoding }).(pulumi.StringPtrOutput) +} + +// Language the content is in e.g., en-US or en-GB. +func (o BucketObjectv2Output) ContentLanguage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ContentLanguage }).(pulumi.StringPtrOutput) +} + +// Standard MIME type describing the format of the object data, e.g., application/octet-stream. All Valid MIME Types are valid for this input. +func (o BucketObjectv2Output) ContentType() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ContentType }).(pulumi.StringOutput) +} + +// Triggers updates when the value changes. This attribute is not compatible with KMS encryption, `kmsKeyId` or `serverSideEncryption = "aws:kms"`, also if an object is larger than 16 MB, the AWS Management Console will upload or copy that object as a Multipart Upload, and therefore the ETag will not be an MD5 digest (see `sourceHash` instead). +func (o BucketObjectv2Output) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. +func (o BucketObjectv2Output) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// Name of the object once it is in the bucket. +// +// The following arguments are optional: +func (o BucketObjectv2Output) Key() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// ARN of the KMS Key to use for object encryption. If the S3 Bucket has server-side encryption enabled, that value will automatically be used. If referencing the `kms.Key` resource, use the `arn` attribute. If referencing the `kms.Alias` data source or resource, use the `targetKeyArn` attribute. The provider will only perform drift detection if a configuration value is provided. +func (o BucketObjectv2Output) KmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) +} + +// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). +func (o BucketObjectv2Output) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringMapOutput { return v.Metadata }).(pulumi.StringMapOutput) +} + +// [Legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. +func (o BucketObjectv2Output) ObjectLockLegalHoldStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ObjectLockLegalHoldStatus }).(pulumi.StringPtrOutput) +} + +// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. +func (o BucketObjectv2Output) ObjectLockMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ObjectLockMode }).(pulumi.StringPtrOutput) +} + +// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). +func (o BucketObjectv2Output) ObjectLockRetainUntilDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.ObjectLockRetainUntilDate }).(pulumi.StringPtrOutput) +} + +// Override provider-level configuration options. See Override Provider below for more details. +func (o BucketObjectv2Output) OverrideProvider() BucketObjectv2OverrideProviderPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) BucketObjectv2OverrideProviderPtrOutput { return v.OverrideProvider }).(BucketObjectv2OverrideProviderPtrOutput) +} + +// Server-side encryption of the object in S3. Valid values are "`AES256`" and "`aws:kms`". +func (o BucketObjectv2Output) ServerSideEncryption() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.ServerSideEncryption }).(pulumi.StringOutput) +} + +// Path to a file that will be read and uploaded as raw bytes for the object content. +func (o BucketObjectv2Output) Source() pulumi.AssetOrArchiveOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.AssetOrArchiveOutput { return v.Source }).(pulumi.AssetOrArchiveOutput) +} + +// Triggers updates like `etag` but useful to address `etag` encryption limitations. (The value is only stored in state and not saved by AWS.) +func (o BucketObjectv2Output) SourceHash() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.SourceHash }).(pulumi.StringPtrOutput) +} + +// [Storage Class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#AmazonS3-PutObject-request-header-StorageClass) for the object. Defaults to "`STANDARD`". +func (o BucketObjectv2Output) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.StorageClass }).(pulumi.StringOutput) +} + +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketObjectv2Output) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o BucketObjectv2Output) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Unique version ID value for the object, if bucket versioning is enabled. +func (o BucketObjectv2Output) VersionId() pulumi.StringOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringOutput { return v.VersionId }).(pulumi.StringOutput) +} + +// Target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). +// +// If no content is provided through `source`, `content` or `contentBase64`, then the object will be empty. +// +// > **Note:** The provider ignores all leading `/`s in the object's `key` and treats multiple `/`s in the rest of the object's `key` as a single `/`, so values of `/index.html` and `index.html` correspond to the same S3 object as do `first//second///third//` and `first/second/third/`. +func (o BucketObjectv2Output) WebsiteRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectv2) pulumi.StringPtrOutput { return v.WebsiteRedirect }).(pulumi.StringPtrOutput) +} + +type BucketObjectv2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketObjectv2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketObjectv2)(nil)).Elem() +} + +func (o BucketObjectv2ArrayOutput) ToBucketObjectv2ArrayOutput() BucketObjectv2ArrayOutput { + return o +} + +func (o BucketObjectv2ArrayOutput) ToBucketObjectv2ArrayOutputWithContext(ctx context.Context) BucketObjectv2ArrayOutput { + return o +} + +func (o BucketObjectv2ArrayOutput) Index(i pulumi.IntInput) BucketObjectv2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketObjectv2 { + return vs[0].([]*BucketObjectv2)[vs[1].(int)] + }).(BucketObjectv2Output) +} + +type BucketObjectv2MapOutput struct{ *pulumi.OutputState } + +func (BucketObjectv2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketObjectv2)(nil)).Elem() +} + +func (o BucketObjectv2MapOutput) ToBucketObjectv2MapOutput() BucketObjectv2MapOutput { + return o +} + +func (o BucketObjectv2MapOutput) ToBucketObjectv2MapOutputWithContext(ctx context.Context) BucketObjectv2MapOutput { + return o +} + +func (o BucketObjectv2MapOutput) MapIndex(k pulumi.StringInput) BucketObjectv2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketObjectv2 { + return vs[0].(map[string]*BucketObjectv2)[vs[1].(string)] + }).(BucketObjectv2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2Input)(nil)).Elem(), &BucketObjectv2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2ArrayInput)(nil)).Elem(), BucketObjectv2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2MapInput)(nil)).Elem(), BucketObjectv2Map{}) + pulumi.RegisterOutputType(BucketObjectv2Output{}) + pulumi.RegisterOutputType(BucketObjectv2ArrayOutput{}) + pulumi.RegisterOutputType(BucketObjectv2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketOwnershipControls.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketOwnershipControls.go new file mode 100644 index 000000000..c85655ca1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketOwnershipControls.go @@ -0,0 +1,280 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource to manage S3 Bucket Ownership Controls. For more information, see the [S3 Developer Guide](https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketOwnershipControls(ctx, "exampleBucketOwnershipControls", &s3.BucketOwnershipControlsArgs{ +// Bucket: exampleBucketV2.ID(), +// Rule: &s3.BucketOwnershipControlsRuleArgs{ +// ObjectOwnership: pulumi.String("BucketOwnerPreferred"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 Bucket Ownership Controls using S3 Bucket name. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketOwnershipControls:BucketOwnershipControls example my-bucket +// +// ``` +type BucketOwnershipControls struct { + pulumi.CustomResourceState + + // Name of the bucket that you want to associate this access point with. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Configuration block(s) with Ownership Controls rules. Detailed below. + Rule BucketOwnershipControlsRuleOutput `pulumi:"rule"` +} + +// NewBucketOwnershipControls registers a new resource with the given unique name, arguments, and options. +func NewBucketOwnershipControls(ctx *pulumi.Context, + name string, args *BucketOwnershipControlsArgs, opts ...pulumi.ResourceOption) (*BucketOwnershipControls, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Rule == nil { + return nil, errors.New("invalid value for required argument 'Rule'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketOwnershipControls + err := ctx.RegisterResource("aws:s3/bucketOwnershipControls:BucketOwnershipControls", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketOwnershipControls gets an existing BucketOwnershipControls resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketOwnershipControls(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketOwnershipControlsState, opts ...pulumi.ResourceOption) (*BucketOwnershipControls, error) { + var resource BucketOwnershipControls + err := ctx.ReadResource("aws:s3/bucketOwnershipControls:BucketOwnershipControls", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketOwnershipControls resources. +type bucketOwnershipControlsState struct { + // Name of the bucket that you want to associate this access point with. + Bucket *string `pulumi:"bucket"` + // Configuration block(s) with Ownership Controls rules. Detailed below. + Rule *BucketOwnershipControlsRule `pulumi:"rule"` +} + +type BucketOwnershipControlsState struct { + // Name of the bucket that you want to associate this access point with. + Bucket pulumi.StringPtrInput + // Configuration block(s) with Ownership Controls rules. Detailed below. + Rule BucketOwnershipControlsRulePtrInput +} + +func (BucketOwnershipControlsState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketOwnershipControlsState)(nil)).Elem() +} + +type bucketOwnershipControlsArgs struct { + // Name of the bucket that you want to associate this access point with. + Bucket string `pulumi:"bucket"` + // Configuration block(s) with Ownership Controls rules. Detailed below. + Rule BucketOwnershipControlsRule `pulumi:"rule"` +} + +// The set of arguments for constructing a BucketOwnershipControls resource. +type BucketOwnershipControlsArgs struct { + // Name of the bucket that you want to associate this access point with. + Bucket pulumi.StringInput + // Configuration block(s) with Ownership Controls rules. Detailed below. + Rule BucketOwnershipControlsRuleInput +} + +func (BucketOwnershipControlsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketOwnershipControlsArgs)(nil)).Elem() +} + +type BucketOwnershipControlsInput interface { + pulumi.Input + + ToBucketOwnershipControlsOutput() BucketOwnershipControlsOutput + ToBucketOwnershipControlsOutputWithContext(ctx context.Context) BucketOwnershipControlsOutput +} + +func (*BucketOwnershipControls) ElementType() reflect.Type { + return reflect.TypeOf((**BucketOwnershipControls)(nil)).Elem() +} + +func (i *BucketOwnershipControls) ToBucketOwnershipControlsOutput() BucketOwnershipControlsOutput { + return i.ToBucketOwnershipControlsOutputWithContext(context.Background()) +} + +func (i *BucketOwnershipControls) ToBucketOwnershipControlsOutputWithContext(ctx context.Context) BucketOwnershipControlsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOwnershipControlsOutput) +} + +// BucketOwnershipControlsArrayInput is an input type that accepts BucketOwnershipControlsArray and BucketOwnershipControlsArrayOutput values. +// You can construct a concrete instance of `BucketOwnershipControlsArrayInput` via: +// +// BucketOwnershipControlsArray{ BucketOwnershipControlsArgs{...} } +type BucketOwnershipControlsArrayInput interface { + pulumi.Input + + ToBucketOwnershipControlsArrayOutput() BucketOwnershipControlsArrayOutput + ToBucketOwnershipControlsArrayOutputWithContext(context.Context) BucketOwnershipControlsArrayOutput +} + +type BucketOwnershipControlsArray []BucketOwnershipControlsInput + +func (BucketOwnershipControlsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketOwnershipControls)(nil)).Elem() +} + +func (i BucketOwnershipControlsArray) ToBucketOwnershipControlsArrayOutput() BucketOwnershipControlsArrayOutput { + return i.ToBucketOwnershipControlsArrayOutputWithContext(context.Background()) +} + +func (i BucketOwnershipControlsArray) ToBucketOwnershipControlsArrayOutputWithContext(ctx context.Context) BucketOwnershipControlsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOwnershipControlsArrayOutput) +} + +// BucketOwnershipControlsMapInput is an input type that accepts BucketOwnershipControlsMap and BucketOwnershipControlsMapOutput values. +// You can construct a concrete instance of `BucketOwnershipControlsMapInput` via: +// +// BucketOwnershipControlsMap{ "key": BucketOwnershipControlsArgs{...} } +type BucketOwnershipControlsMapInput interface { + pulumi.Input + + ToBucketOwnershipControlsMapOutput() BucketOwnershipControlsMapOutput + ToBucketOwnershipControlsMapOutputWithContext(context.Context) BucketOwnershipControlsMapOutput +} + +type BucketOwnershipControlsMap map[string]BucketOwnershipControlsInput + +func (BucketOwnershipControlsMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketOwnershipControls)(nil)).Elem() +} + +func (i BucketOwnershipControlsMap) ToBucketOwnershipControlsMapOutput() BucketOwnershipControlsMapOutput { + return i.ToBucketOwnershipControlsMapOutputWithContext(context.Background()) +} + +func (i BucketOwnershipControlsMap) ToBucketOwnershipControlsMapOutputWithContext(ctx context.Context) BucketOwnershipControlsMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOwnershipControlsMapOutput) +} + +type BucketOwnershipControlsOutput struct{ *pulumi.OutputState } + +func (BucketOwnershipControlsOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketOwnershipControls)(nil)).Elem() +} + +func (o BucketOwnershipControlsOutput) ToBucketOwnershipControlsOutput() BucketOwnershipControlsOutput { + return o +} + +func (o BucketOwnershipControlsOutput) ToBucketOwnershipControlsOutputWithContext(ctx context.Context) BucketOwnershipControlsOutput { + return o +} + +// Name of the bucket that you want to associate this access point with. +func (o BucketOwnershipControlsOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketOwnershipControls) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Configuration block(s) with Ownership Controls rules. Detailed below. +func (o BucketOwnershipControlsOutput) Rule() BucketOwnershipControlsRuleOutput { + return o.ApplyT(func(v *BucketOwnershipControls) BucketOwnershipControlsRuleOutput { return v.Rule }).(BucketOwnershipControlsRuleOutput) +} + +type BucketOwnershipControlsArrayOutput struct{ *pulumi.OutputState } + +func (BucketOwnershipControlsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketOwnershipControls)(nil)).Elem() +} + +func (o BucketOwnershipControlsArrayOutput) ToBucketOwnershipControlsArrayOutput() BucketOwnershipControlsArrayOutput { + return o +} + +func (o BucketOwnershipControlsArrayOutput) ToBucketOwnershipControlsArrayOutputWithContext(ctx context.Context) BucketOwnershipControlsArrayOutput { + return o +} + +func (o BucketOwnershipControlsArrayOutput) Index(i pulumi.IntInput) BucketOwnershipControlsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketOwnershipControls { + return vs[0].([]*BucketOwnershipControls)[vs[1].(int)] + }).(BucketOwnershipControlsOutput) +} + +type BucketOwnershipControlsMapOutput struct{ *pulumi.OutputState } + +func (BucketOwnershipControlsMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketOwnershipControls)(nil)).Elem() +} + +func (o BucketOwnershipControlsMapOutput) ToBucketOwnershipControlsMapOutput() BucketOwnershipControlsMapOutput { + return o +} + +func (o BucketOwnershipControlsMapOutput) ToBucketOwnershipControlsMapOutputWithContext(ctx context.Context) BucketOwnershipControlsMapOutput { + return o +} + +func (o BucketOwnershipControlsMapOutput) MapIndex(k pulumi.StringInput) BucketOwnershipControlsOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketOwnershipControls { + return vs[0].(map[string]*BucketOwnershipControls)[vs[1].(string)] + }).(BucketOwnershipControlsOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketOwnershipControlsInput)(nil)).Elem(), &BucketOwnershipControls{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketOwnershipControlsArrayInput)(nil)).Elem(), BucketOwnershipControlsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketOwnershipControlsMapInput)(nil)).Elem(), BucketOwnershipControlsMap{}) + pulumi.RegisterOutputType(BucketOwnershipControlsOutput{}) + pulumi.RegisterOutputType(BucketOwnershipControlsArrayOutput{}) + pulumi.RegisterOutputType(BucketOwnershipControlsMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPolicy.go new file mode 100644 index 000000000..3931457f1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPolicy.go @@ -0,0 +1,308 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Attaches a policy to an S3 bucket resource. +// +// ## Example Usage +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.NewBucketV2(ctx, "example", nil) +// if err != nil { +// return err +// } +// allowAccessFromAnotherAccountPolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Principals: iam.GetPolicyDocumentStatementPrincipalArray{ +// &iam.GetPolicyDocumentStatementPrincipalArgs{ +// Type: pulumi.String("AWS"), +// Identifiers: pulumi.StringArray{ +// pulumi.String("123456789012"), +// }, +// }, +// }, +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetObject"), +// pulumi.String("s3:ListBucket"), +// }, +// Resources: pulumi.StringArray{ +// example.Arn, +// example.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// }, +// }, nil) +// _, err = s3.NewBucketPolicy(ctx, "allowAccessFromAnotherAccountBucketPolicy", &s3.BucketPolicyArgs{ +// Bucket: example.ID(), +// Policy: allowAccessFromAnotherAccountPolicyDocument.ApplyT(func(allowAccessFromAnotherAccountPolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &allowAccessFromAnotherAccountPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket policies using the bucket name. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketPolicy:BucketPolicy allow_access_from_another_account my-tf-test-bucket +// +// ``` +type BucketPolicy struct { + pulumi.CustomResourceState + + // Name of the bucket to which to apply the policy. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam.getPolicyDocument` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. + Policy pulumi.StringOutput `pulumi:"policy"` +} + +// NewBucketPolicy registers a new resource with the given unique name, arguments, and options. +func NewBucketPolicy(ctx *pulumi.Context, + name string, args *BucketPolicyArgs, opts ...pulumi.ResourceOption) (*BucketPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Policy == nil { + return nil, errors.New("invalid value for required argument 'Policy'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketPolicy + err := ctx.RegisterResource("aws:s3/bucketPolicy:BucketPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketPolicy gets an existing BucketPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketPolicyState, opts ...pulumi.ResourceOption) (*BucketPolicy, error) { + var resource BucketPolicy + err := ctx.ReadResource("aws:s3/bucketPolicy:BucketPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketPolicy resources. +type bucketPolicyState struct { + // Name of the bucket to which to apply the policy. + Bucket *string `pulumi:"bucket"` + // Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam.getPolicyDocument` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. + Policy interface{} `pulumi:"policy"` +} + +type BucketPolicyState struct { + // Name of the bucket to which to apply the policy. + Bucket pulumi.StringPtrInput + // Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam.getPolicyDocument` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. + Policy pulumi.Input +} + +func (BucketPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketPolicyState)(nil)).Elem() +} + +type bucketPolicyArgs struct { + // Name of the bucket to which to apply the policy. + Bucket string `pulumi:"bucket"` + // Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam.getPolicyDocument` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. + Policy interface{} `pulumi:"policy"` +} + +// The set of arguments for constructing a BucketPolicy resource. +type BucketPolicyArgs struct { + // Name of the bucket to which to apply the policy. + Bucket pulumi.StringInput + // Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam.getPolicyDocument` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. + Policy pulumi.Input +} + +func (BucketPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketPolicyArgs)(nil)).Elem() +} + +type BucketPolicyInput interface { + pulumi.Input + + ToBucketPolicyOutput() BucketPolicyOutput + ToBucketPolicyOutputWithContext(ctx context.Context) BucketPolicyOutput +} + +func (*BucketPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**BucketPolicy)(nil)).Elem() +} + +func (i *BucketPolicy) ToBucketPolicyOutput() BucketPolicyOutput { + return i.ToBucketPolicyOutputWithContext(context.Background()) +} + +func (i *BucketPolicy) ToBucketPolicyOutputWithContext(ctx context.Context) BucketPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPolicyOutput) +} + +// BucketPolicyArrayInput is an input type that accepts BucketPolicyArray and BucketPolicyArrayOutput values. +// You can construct a concrete instance of `BucketPolicyArrayInput` via: +// +// BucketPolicyArray{ BucketPolicyArgs{...} } +type BucketPolicyArrayInput interface { + pulumi.Input + + ToBucketPolicyArrayOutput() BucketPolicyArrayOutput + ToBucketPolicyArrayOutputWithContext(context.Context) BucketPolicyArrayOutput +} + +type BucketPolicyArray []BucketPolicyInput + +func (BucketPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketPolicy)(nil)).Elem() +} + +func (i BucketPolicyArray) ToBucketPolicyArrayOutput() BucketPolicyArrayOutput { + return i.ToBucketPolicyArrayOutputWithContext(context.Background()) +} + +func (i BucketPolicyArray) ToBucketPolicyArrayOutputWithContext(ctx context.Context) BucketPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPolicyArrayOutput) +} + +// BucketPolicyMapInput is an input type that accepts BucketPolicyMap and BucketPolicyMapOutput values. +// You can construct a concrete instance of `BucketPolicyMapInput` via: +// +// BucketPolicyMap{ "key": BucketPolicyArgs{...} } +type BucketPolicyMapInput interface { + pulumi.Input + + ToBucketPolicyMapOutput() BucketPolicyMapOutput + ToBucketPolicyMapOutputWithContext(context.Context) BucketPolicyMapOutput +} + +type BucketPolicyMap map[string]BucketPolicyInput + +func (BucketPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketPolicy)(nil)).Elem() +} + +func (i BucketPolicyMap) ToBucketPolicyMapOutput() BucketPolicyMapOutput { + return i.ToBucketPolicyMapOutputWithContext(context.Background()) +} + +func (i BucketPolicyMap) ToBucketPolicyMapOutputWithContext(ctx context.Context) BucketPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPolicyMapOutput) +} + +type BucketPolicyOutput struct{ *pulumi.OutputState } + +func (BucketPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketPolicy)(nil)).Elem() +} + +func (o BucketPolicyOutput) ToBucketPolicyOutput() BucketPolicyOutput { + return o +} + +func (o BucketPolicyOutput) ToBucketPolicyOutputWithContext(ctx context.Context) BucketPolicyOutput { + return o +} + +// Name of the bucket to which to apply the policy. +func (o BucketPolicyOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketPolicy) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Text of the policy. Although this is a bucket policy rather than an IAM policy, the `iam.getPolicyDocument` data source may be used, so long as it specifies a principal. For more information about building AWS IAM policy documents, see the AWS IAM Policy Document Guide. Note: Bucket policies are limited to 20 KB in size. +func (o BucketPolicyOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *BucketPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +type BucketPolicyArrayOutput struct{ *pulumi.OutputState } + +func (BucketPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketPolicy)(nil)).Elem() +} + +func (o BucketPolicyArrayOutput) ToBucketPolicyArrayOutput() BucketPolicyArrayOutput { + return o +} + +func (o BucketPolicyArrayOutput) ToBucketPolicyArrayOutputWithContext(ctx context.Context) BucketPolicyArrayOutput { + return o +} + +func (o BucketPolicyArrayOutput) Index(i pulumi.IntInput) BucketPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketPolicy { + return vs[0].([]*BucketPolicy)[vs[1].(int)] + }).(BucketPolicyOutput) +} + +type BucketPolicyMapOutput struct{ *pulumi.OutputState } + +func (BucketPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketPolicy)(nil)).Elem() +} + +func (o BucketPolicyMapOutput) ToBucketPolicyMapOutput() BucketPolicyMapOutput { + return o +} + +func (o BucketPolicyMapOutput) ToBucketPolicyMapOutputWithContext(ctx context.Context) BucketPolicyMapOutput { + return o +} + +func (o BucketPolicyMapOutput) MapIndex(k pulumi.StringInput) BucketPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketPolicy { + return vs[0].(map[string]*BucketPolicy)[vs[1].(string)] + }).(BucketPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketPolicyInput)(nil)).Elem(), &BucketPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketPolicyArrayInput)(nil)).Elem(), BucketPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketPolicyMapInput)(nil)).Elem(), BucketPolicyMap{}) + pulumi.RegisterOutputType(BucketPolicyOutput{}) + pulumi.RegisterOutputType(BucketPolicyArrayOutput{}) + pulumi.RegisterOutputType(BucketPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPublicAccessBlock.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPublicAccessBlock.go new file mode 100644 index 000000000..59e3e00d6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketPublicAccessBlock.go @@ -0,0 +1,353 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages S3 bucket-level Public Access Block configuration. For more information about these settings, see the [AWS S3 Block Public Access documentation](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketPublicAccessBlock(ctx, "exampleBucketPublicAccessBlock", &s3.BucketPublicAccessBlockArgs{ +// Bucket: exampleBucketV2.ID(), +// BlockPublicAcls: pulumi.Bool(true), +// BlockPublicPolicy: pulumi.Bool(true), +// IgnorePublicAcls: pulumi.Bool(true), +// RestrictPublicBuckets: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import `aws_s3_bucket_public_access_block` using the bucket name. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock example my-bucket +// +// ``` +type BucketPublicAccessBlock struct { + pulumi.CustomResourceState + + // Whether Amazon S3 should block public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls will fail if the request includes an object ACL. + BlockPublicAcls pulumi.BoolPtrOutput `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the existing bucket policy. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrOutput `pulumi:"blockPublicPolicy"` + // S3 Bucket to which this Public Access Block configuration should be applied. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Whether Amazon S3 should ignore public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore public ACLs on this bucket and any objects that it contains. + IgnorePublicAcls pulumi.BoolPtrOutput `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access this buckets if it has a public policy. + RestrictPublicBuckets pulumi.BoolPtrOutput `pulumi:"restrictPublicBuckets"` +} + +// NewBucketPublicAccessBlock registers a new resource with the given unique name, arguments, and options. +func NewBucketPublicAccessBlock(ctx *pulumi.Context, + name string, args *BucketPublicAccessBlockArgs, opts ...pulumi.ResourceOption) (*BucketPublicAccessBlock, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketPublicAccessBlock + err := ctx.RegisterResource("aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketPublicAccessBlock gets an existing BucketPublicAccessBlock resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketPublicAccessBlock(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketPublicAccessBlockState, opts ...pulumi.ResourceOption) (*BucketPublicAccessBlock, error) { + var resource BucketPublicAccessBlock + err := ctx.ReadResource("aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketPublicAccessBlock resources. +type bucketPublicAccessBlockState struct { + // Whether Amazon S3 should block public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls will fail if the request includes an object ACL. + BlockPublicAcls *bool `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the existing bucket policy. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy *bool `pulumi:"blockPublicPolicy"` + // S3 Bucket to which this Public Access Block configuration should be applied. + Bucket *string `pulumi:"bucket"` + // Whether Amazon S3 should ignore public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore public ACLs on this bucket and any objects that it contains. + IgnorePublicAcls *bool `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access this buckets if it has a public policy. + RestrictPublicBuckets *bool `pulumi:"restrictPublicBuckets"` +} + +type BucketPublicAccessBlockState struct { + // Whether Amazon S3 should block public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls will fail if the request includes an object ACL. + BlockPublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should block public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the existing bucket policy. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrInput + // S3 Bucket to which this Public Access Block configuration should be applied. + Bucket pulumi.StringPtrInput + // Whether Amazon S3 should ignore public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore public ACLs on this bucket and any objects that it contains. + IgnorePublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access this buckets if it has a public policy. + RestrictPublicBuckets pulumi.BoolPtrInput +} + +func (BucketPublicAccessBlockState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketPublicAccessBlockState)(nil)).Elem() +} + +type bucketPublicAccessBlockArgs struct { + // Whether Amazon S3 should block public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls will fail if the request includes an object ACL. + BlockPublicAcls *bool `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the existing bucket policy. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy *bool `pulumi:"blockPublicPolicy"` + // S3 Bucket to which this Public Access Block configuration should be applied. + Bucket string `pulumi:"bucket"` + // Whether Amazon S3 should ignore public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore public ACLs on this bucket and any objects that it contains. + IgnorePublicAcls *bool `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access this buckets if it has a public policy. + RestrictPublicBuckets *bool `pulumi:"restrictPublicBuckets"` +} + +// The set of arguments for constructing a BucketPublicAccessBlock resource. +type BucketPublicAccessBlockArgs struct { + // Whether Amazon S3 should block public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. + // * PUT Object calls will fail if the request includes an object ACL. + BlockPublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should block public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the existing bucket policy. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrInput + // S3 Bucket to which this Public Access Block configuration should be applied. + Bucket pulumi.StringInput + // Whether Amazon S3 should ignore public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore public ACLs on this bucket and any objects that it contains. + IgnorePublicAcls pulumi.BoolPtrInput + // Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access this buckets if it has a public policy. + RestrictPublicBuckets pulumi.BoolPtrInput +} + +func (BucketPublicAccessBlockArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketPublicAccessBlockArgs)(nil)).Elem() +} + +type BucketPublicAccessBlockInput interface { + pulumi.Input + + ToBucketPublicAccessBlockOutput() BucketPublicAccessBlockOutput + ToBucketPublicAccessBlockOutputWithContext(ctx context.Context) BucketPublicAccessBlockOutput +} + +func (*BucketPublicAccessBlock) ElementType() reflect.Type { + return reflect.TypeOf((**BucketPublicAccessBlock)(nil)).Elem() +} + +func (i *BucketPublicAccessBlock) ToBucketPublicAccessBlockOutput() BucketPublicAccessBlockOutput { + return i.ToBucketPublicAccessBlockOutputWithContext(context.Background()) +} + +func (i *BucketPublicAccessBlock) ToBucketPublicAccessBlockOutputWithContext(ctx context.Context) BucketPublicAccessBlockOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPublicAccessBlockOutput) +} + +// BucketPublicAccessBlockArrayInput is an input type that accepts BucketPublicAccessBlockArray and BucketPublicAccessBlockArrayOutput values. +// You can construct a concrete instance of `BucketPublicAccessBlockArrayInput` via: +// +// BucketPublicAccessBlockArray{ BucketPublicAccessBlockArgs{...} } +type BucketPublicAccessBlockArrayInput interface { + pulumi.Input + + ToBucketPublicAccessBlockArrayOutput() BucketPublicAccessBlockArrayOutput + ToBucketPublicAccessBlockArrayOutputWithContext(context.Context) BucketPublicAccessBlockArrayOutput +} + +type BucketPublicAccessBlockArray []BucketPublicAccessBlockInput + +func (BucketPublicAccessBlockArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketPublicAccessBlock)(nil)).Elem() +} + +func (i BucketPublicAccessBlockArray) ToBucketPublicAccessBlockArrayOutput() BucketPublicAccessBlockArrayOutput { + return i.ToBucketPublicAccessBlockArrayOutputWithContext(context.Background()) +} + +func (i BucketPublicAccessBlockArray) ToBucketPublicAccessBlockArrayOutputWithContext(ctx context.Context) BucketPublicAccessBlockArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPublicAccessBlockArrayOutput) +} + +// BucketPublicAccessBlockMapInput is an input type that accepts BucketPublicAccessBlockMap and BucketPublicAccessBlockMapOutput values. +// You can construct a concrete instance of `BucketPublicAccessBlockMapInput` via: +// +// BucketPublicAccessBlockMap{ "key": BucketPublicAccessBlockArgs{...} } +type BucketPublicAccessBlockMapInput interface { + pulumi.Input + + ToBucketPublicAccessBlockMapOutput() BucketPublicAccessBlockMapOutput + ToBucketPublicAccessBlockMapOutputWithContext(context.Context) BucketPublicAccessBlockMapOutput +} + +type BucketPublicAccessBlockMap map[string]BucketPublicAccessBlockInput + +func (BucketPublicAccessBlockMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketPublicAccessBlock)(nil)).Elem() +} + +func (i BucketPublicAccessBlockMap) ToBucketPublicAccessBlockMapOutput() BucketPublicAccessBlockMapOutput { + return i.ToBucketPublicAccessBlockMapOutputWithContext(context.Background()) +} + +func (i BucketPublicAccessBlockMap) ToBucketPublicAccessBlockMapOutputWithContext(ctx context.Context) BucketPublicAccessBlockMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPublicAccessBlockMapOutput) +} + +type BucketPublicAccessBlockOutput struct{ *pulumi.OutputState } + +func (BucketPublicAccessBlockOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketPublicAccessBlock)(nil)).Elem() +} + +func (o BucketPublicAccessBlockOutput) ToBucketPublicAccessBlockOutput() BucketPublicAccessBlockOutput { + return o +} + +func (o BucketPublicAccessBlockOutput) ToBucketPublicAccessBlockOutputWithContext(ctx context.Context) BucketPublicAccessBlockOutput { + return o +} + +// Whether Amazon S3 should block public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: +// * PUT Bucket acl and PUT Object acl calls will fail if the specified ACL allows public access. +// * PUT Object calls will fail if the request includes an object ACL. +func (o BucketPublicAccessBlockOutput) BlockPublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketPublicAccessBlock) pulumi.BoolPtrOutput { return v.BlockPublicAcls }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should block public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the existing bucket policy. When set to `true` causes Amazon S3 to: +// * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. +func (o BucketPublicAccessBlockOutput) BlockPublicPolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketPublicAccessBlock) pulumi.BoolPtrOutput { return v.BlockPublicPolicy }).(pulumi.BoolPtrOutput) +} + +// S3 Bucket to which this Public Access Block configuration should be applied. +func (o BucketPublicAccessBlockOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketPublicAccessBlock) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Whether Amazon S3 should ignore public ACLs for this bucket. Defaults to `false`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: +// * Ignore public ACLs on this bucket and any objects that it contains. +func (o BucketPublicAccessBlockOutput) IgnorePublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketPublicAccessBlock) pulumi.BoolPtrOutput { return v.IgnorePublicAcls }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should restrict public bucket policies for this bucket. Defaults to `false`. Enabling this setting does not affect the previously stored bucket policy, except that public and cross-account access within the public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: +// * Only the bucket owner and AWS Services can access this buckets if it has a public policy. +func (o BucketPublicAccessBlockOutput) RestrictPublicBuckets() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketPublicAccessBlock) pulumi.BoolPtrOutput { return v.RestrictPublicBuckets }).(pulumi.BoolPtrOutput) +} + +type BucketPublicAccessBlockArrayOutput struct{ *pulumi.OutputState } + +func (BucketPublicAccessBlockArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketPublicAccessBlock)(nil)).Elem() +} + +func (o BucketPublicAccessBlockArrayOutput) ToBucketPublicAccessBlockArrayOutput() BucketPublicAccessBlockArrayOutput { + return o +} + +func (o BucketPublicAccessBlockArrayOutput) ToBucketPublicAccessBlockArrayOutputWithContext(ctx context.Context) BucketPublicAccessBlockArrayOutput { + return o +} + +func (o BucketPublicAccessBlockArrayOutput) Index(i pulumi.IntInput) BucketPublicAccessBlockOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketPublicAccessBlock { + return vs[0].([]*BucketPublicAccessBlock)[vs[1].(int)] + }).(BucketPublicAccessBlockOutput) +} + +type BucketPublicAccessBlockMapOutput struct{ *pulumi.OutputState } + +func (BucketPublicAccessBlockMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketPublicAccessBlock)(nil)).Elem() +} + +func (o BucketPublicAccessBlockMapOutput) ToBucketPublicAccessBlockMapOutput() BucketPublicAccessBlockMapOutput { + return o +} + +func (o BucketPublicAccessBlockMapOutput) ToBucketPublicAccessBlockMapOutputWithContext(ctx context.Context) BucketPublicAccessBlockMapOutput { + return o +} + +func (o BucketPublicAccessBlockMapOutput) MapIndex(k pulumi.StringInput) BucketPublicAccessBlockOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketPublicAccessBlock { + return vs[0].(map[string]*BucketPublicAccessBlock)[vs[1].(string)] + }).(BucketPublicAccessBlockOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketPublicAccessBlockInput)(nil)).Elem(), &BucketPublicAccessBlock{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketPublicAccessBlockArrayInput)(nil)).Elem(), BucketPublicAccessBlockArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketPublicAccessBlockMapInput)(nil)).Elem(), BucketPublicAccessBlockMap{}) + pulumi.RegisterOutputType(BucketPublicAccessBlockOutput{}) + pulumi.RegisterOutputType(BucketPublicAccessBlockArrayOutput{}) + pulumi.RegisterOutputType(BucketPublicAccessBlockMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketReplicationConfig.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketReplicationConfig.go new file mode 100644 index 000000000..748f0301e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketReplicationConfig.go @@ -0,0 +1,552 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an independent configuration resource for S3 bucket [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). +// +// > **NOTE:** S3 Buckets only support a single replication configuration. Declaring multiple `s3.BucketReplicationConfig` resources to the same S3 Bucket will cause a perpetual difference in configuration. +// +// ## Example Usage +// ### Using replication configuration +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := aws.NewProvider(ctx, "central", &aws.ProviderArgs{ +// Region: pulumi.String("eu-central-1"), +// }) +// if err != nil { +// return err +// } +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "s3.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// replicationRole, err := iam.NewRole(ctx, "replicationRole", &iam.RoleArgs{ +// AssumeRolePolicy: *pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// destinationBucketV2, err := s3.NewBucketV2(ctx, "destinationBucketV2", nil) +// if err != nil { +// return err +// } +// sourceBucketV2, err := s3.NewBucketV2(ctx, "sourceBucketV2", nil, pulumi.Provider(aws.Central)) +// if err != nil { +// return err +// } +// replicationPolicyDocument := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetReplicationConfiguration"), +// pulumi.String("s3:ListBucket"), +// }, +// Resources: pulumi.StringArray{ +// sourceBucketV2.Arn, +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetObjectVersionForReplication"), +// pulumi.String("s3:GetObjectVersionAcl"), +// pulumi.String("s3:GetObjectVersionTagging"), +// }, +// Resources: pulumi.StringArray{ +// sourceBucketV2.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:ReplicateObject"), +// pulumi.String("s3:ReplicateDelete"), +// pulumi.String("s3:ReplicateTags"), +// }, +// Resources: pulumi.StringArray{ +// destinationBucketV2.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// }, +// }, nil) +// replicationPolicy, err := iam.NewPolicy(ctx, "replicationPolicy", &iam.PolicyArgs{ +// Policy: replicationPolicyDocument.ApplyT(func(replicationPolicyDocument iam.GetPolicyDocumentResult) (*string, error) { +// return &replicationPolicyDocument.Json, nil +// }).(pulumi.StringPtrOutput), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "replicationRolePolicyAttachment", &iam.RolePolicyAttachmentArgs{ +// Role: replicationRole.Name, +// PolicyArn: replicationPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketVersioningV2(ctx, "destinationBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: destinationBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "sourceBucketAcl", &s3.BucketAclV2Args{ +// Bucket: sourceBucketV2.ID(), +// Acl: pulumi.String("private"), +// }, pulumi.Provider(aws.Central)) +// if err != nil { +// return err +// } +// sourceBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "sourceBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: sourceBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }, pulumi.Provider(aws.Central)) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "replicationBucketReplicationConfig", &s3.BucketReplicationConfigArgs{ +// Role: replicationRole.Arn, +// Bucket: sourceBucketV2.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("foobar"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("foo"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: destinationBucketV2.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.Provider(aws.Central), pulumi.DependsOn([]pulumi.Resource{ +// sourceBucketVersioningV2, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Bi-Directional Replication +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// eastBucketV2, err := s3.NewBucketV2(ctx, "eastBucketV2", nil) +// if err != nil { +// return err +// } +// eastBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "eastBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: eastBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// westBucketV2, err := s3.NewBucketV2(ctx, "westBucketV2", nil, pulumi.Provider(aws.West)) +// if err != nil { +// return err +// } +// westBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "westBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: westBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }, pulumi.Provider(aws.West)) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "eastToWest", &s3.BucketReplicationConfigArgs{ +// Role: pulumi.Any(aws_iam_role.East_replication.Arn), +// Bucket: eastBucketV2.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("foobar"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("foo"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: westBucketV2.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// eastBucketVersioningV2, +// })) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "westToEast", &s3.BucketReplicationConfigArgs{ +// Role: pulumi.Any(aws_iam_role.West_replication.Arn), +// Bucket: westBucketV2.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("foobar"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("foo"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: eastBucketV2.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.Provider(aws.West), pulumi.DependsOn([]pulumi.Resource{ +// westBucketVersioningV2, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket replication configuration using the `bucket`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketReplicationConfig:BucketReplicationConfig replication bucket-name +// +// ``` +type BucketReplicationConfig struct { + pulumi.CustomResourceState + + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role pulumi.StringOutput `pulumi:"role"` + // List of configuration blocks describing the rules managing the replication. See below. + Rules BucketReplicationConfigRuleArrayOutput `pulumi:"rules"` + // Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". + // For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). + Token pulumi.StringPtrOutput `pulumi:"token"` +} + +// NewBucketReplicationConfig registers a new resource with the given unique name, arguments, and options. +func NewBucketReplicationConfig(ctx *pulumi.Context, + name string, args *BucketReplicationConfigArgs, opts ...pulumi.ResourceOption) (*BucketReplicationConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Role == nil { + return nil, errors.New("invalid value for required argument 'Role'") + } + if args.Rules == nil { + return nil, errors.New("invalid value for required argument 'Rules'") + } + if args.Token != nil { + args.Token = pulumi.ToSecret(args.Token).(pulumi.StringPtrInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "token", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketReplicationConfig + err := ctx.RegisterResource("aws:s3/bucketReplicationConfig:BucketReplicationConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketReplicationConfig gets an existing BucketReplicationConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketReplicationConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketReplicationConfigState, opts ...pulumi.ResourceOption) (*BucketReplicationConfig, error) { + var resource BucketReplicationConfig + err := ctx.ReadResource("aws:s3/bucketReplicationConfig:BucketReplicationConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketReplicationConfig resources. +type bucketReplicationConfigState struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket *string `pulumi:"bucket"` + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role *string `pulumi:"role"` + // List of configuration blocks describing the rules managing the replication. See below. + Rules []BucketReplicationConfigRule `pulumi:"rules"` + // Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". + // For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). + Token *string `pulumi:"token"` +} + +type BucketReplicationConfigState struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket pulumi.StringPtrInput + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role pulumi.StringPtrInput + // List of configuration blocks describing the rules managing the replication. See below. + Rules BucketReplicationConfigRuleArrayInput + // Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". + // For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). + Token pulumi.StringPtrInput +} + +func (BucketReplicationConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*bucketReplicationConfigState)(nil)).Elem() +} + +type bucketReplicationConfigArgs struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket string `pulumi:"bucket"` + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role string `pulumi:"role"` + // List of configuration blocks describing the rules managing the replication. See below. + Rules []BucketReplicationConfigRule `pulumi:"rules"` + // Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". + // For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). + Token *string `pulumi:"token"` +} + +// The set of arguments for constructing a BucketReplicationConfig resource. +type BucketReplicationConfigArgs struct { + // Name of the source S3 bucket you want Amazon S3 to monitor. + Bucket pulumi.StringInput + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role pulumi.StringInput + // List of configuration blocks describing the rules managing the replication. See below. + Rules BucketReplicationConfigRuleArrayInput + // Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". + // For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). + Token pulumi.StringPtrInput +} + +func (BucketReplicationConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*bucketReplicationConfigArgs)(nil)).Elem() +} + +type BucketReplicationConfigInput interface { + pulumi.Input + + ToBucketReplicationConfigOutput() BucketReplicationConfigOutput + ToBucketReplicationConfigOutputWithContext(ctx context.Context) BucketReplicationConfigOutput +} + +func (*BucketReplicationConfig) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfig)(nil)).Elem() +} + +func (i *BucketReplicationConfig) ToBucketReplicationConfigOutput() BucketReplicationConfigOutput { + return i.ToBucketReplicationConfigOutputWithContext(context.Background()) +} + +func (i *BucketReplicationConfig) ToBucketReplicationConfigOutputWithContext(ctx context.Context) BucketReplicationConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigOutput) +} + +// BucketReplicationConfigArrayInput is an input type that accepts BucketReplicationConfigArray and BucketReplicationConfigArrayOutput values. +// You can construct a concrete instance of `BucketReplicationConfigArrayInput` via: +// +// BucketReplicationConfigArray{ BucketReplicationConfigArgs{...} } +type BucketReplicationConfigArrayInput interface { + pulumi.Input + + ToBucketReplicationConfigArrayOutput() BucketReplicationConfigArrayOutput + ToBucketReplicationConfigArrayOutputWithContext(context.Context) BucketReplicationConfigArrayOutput +} + +type BucketReplicationConfigArray []BucketReplicationConfigInput + +func (BucketReplicationConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketReplicationConfig)(nil)).Elem() +} + +func (i BucketReplicationConfigArray) ToBucketReplicationConfigArrayOutput() BucketReplicationConfigArrayOutput { + return i.ToBucketReplicationConfigArrayOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigArray) ToBucketReplicationConfigArrayOutputWithContext(ctx context.Context) BucketReplicationConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigArrayOutput) +} + +// BucketReplicationConfigMapInput is an input type that accepts BucketReplicationConfigMap and BucketReplicationConfigMapOutput values. +// You can construct a concrete instance of `BucketReplicationConfigMapInput` via: +// +// BucketReplicationConfigMap{ "key": BucketReplicationConfigArgs{...} } +type BucketReplicationConfigMapInput interface { + pulumi.Input + + ToBucketReplicationConfigMapOutput() BucketReplicationConfigMapOutput + ToBucketReplicationConfigMapOutputWithContext(context.Context) BucketReplicationConfigMapOutput +} + +type BucketReplicationConfigMap map[string]BucketReplicationConfigInput + +func (BucketReplicationConfigMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketReplicationConfig)(nil)).Elem() +} + +func (i BucketReplicationConfigMap) ToBucketReplicationConfigMapOutput() BucketReplicationConfigMapOutput { + return i.ToBucketReplicationConfigMapOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigMap) ToBucketReplicationConfigMapOutputWithContext(ctx context.Context) BucketReplicationConfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigMapOutput) +} + +type BucketReplicationConfigOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfig)(nil)).Elem() +} + +func (o BucketReplicationConfigOutput) ToBucketReplicationConfigOutput() BucketReplicationConfigOutput { + return o +} + +func (o BucketReplicationConfigOutput) ToBucketReplicationConfigOutputWithContext(ctx context.Context) BucketReplicationConfigOutput { + return o +} + +// Name of the source S3 bucket you want Amazon S3 to monitor. +func (o BucketReplicationConfigOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketReplicationConfig) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// ARN of the IAM role for Amazon S3 to assume when replicating the objects. +func (o BucketReplicationConfigOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v *BucketReplicationConfig) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput) +} + +// List of configuration blocks describing the rules managing the replication. See below. +func (o BucketReplicationConfigOutput) Rules() BucketReplicationConfigRuleArrayOutput { + return o.ApplyT(func(v *BucketReplicationConfig) BucketReplicationConfigRuleArrayOutput { return v.Rules }).(BucketReplicationConfigRuleArrayOutput) +} + +// Token to allow replication to be enabled on an Object Lock-enabled bucket. You must contact AWS support for the bucket's "Object Lock token". +// For more details, see [Using S3 Object Lock with replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-replication). +func (o BucketReplicationConfigOutput) Token() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfig) pulumi.StringPtrOutput { return v.Token }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigArrayOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketReplicationConfig)(nil)).Elem() +} + +func (o BucketReplicationConfigArrayOutput) ToBucketReplicationConfigArrayOutput() BucketReplicationConfigArrayOutput { + return o +} + +func (o BucketReplicationConfigArrayOutput) ToBucketReplicationConfigArrayOutputWithContext(ctx context.Context) BucketReplicationConfigArrayOutput { + return o +} + +func (o BucketReplicationConfigArrayOutput) Index(i pulumi.IntInput) BucketReplicationConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketReplicationConfig { + return vs[0].([]*BucketReplicationConfig)[vs[1].(int)] + }).(BucketReplicationConfigOutput) +} + +type BucketReplicationConfigMapOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketReplicationConfig)(nil)).Elem() +} + +func (o BucketReplicationConfigMapOutput) ToBucketReplicationConfigMapOutput() BucketReplicationConfigMapOutput { + return o +} + +func (o BucketReplicationConfigMapOutput) ToBucketReplicationConfigMapOutputWithContext(ctx context.Context) BucketReplicationConfigMapOutput { + return o +} + +func (o BucketReplicationConfigMapOutput) MapIndex(k pulumi.StringInput) BucketReplicationConfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketReplicationConfig { + return vs[0].(map[string]*BucketReplicationConfig)[vs[1].(string)] + }).(BucketReplicationConfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigInput)(nil)).Elem(), &BucketReplicationConfig{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigArrayInput)(nil)).Elem(), BucketReplicationConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigMapInput)(nil)).Elem(), BucketReplicationConfigMap{}) + pulumi.RegisterOutputType(BucketReplicationConfigOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigArrayOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketRequestPaymentConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketRequestPaymentConfigurationV2.go new file mode 100644 index 000000000..7540a9c80 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketRequestPaymentConfigurationV2.go @@ -0,0 +1,303 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket request payment configuration resource. For more information, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). +// +// > **NOTE:** Destroying an `s3.BucketRequestPaymentConfigurationV2` resource resets the bucket's `payer` to the S3 default: the bucket owner. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketRequestPaymentConfigurationV2(ctx, "example", &s3.BucketRequestPaymentConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Example.Id), +// Payer: pulumi.String("Requester"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket request payment configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketRequestPaymentConfigurationV2 struct { + pulumi.CustomResourceState + + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. + Payer pulumi.StringOutput `pulumi:"payer"` +} + +// NewBucketRequestPaymentConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketRequestPaymentConfigurationV2(ctx *pulumi.Context, + name string, args *BucketRequestPaymentConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketRequestPaymentConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Payer == nil { + return nil, errors.New("invalid value for required argument 'Payer'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketRequestPaymentConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketRequestPaymentConfigurationV2 gets an existing BucketRequestPaymentConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketRequestPaymentConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketRequestPaymentConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketRequestPaymentConfigurationV2, error) { + var resource BucketRequestPaymentConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketRequestPaymentConfigurationV2 resources. +type bucketRequestPaymentConfigurationV2State struct { + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. + Payer *string `pulumi:"payer"` +} + +type BucketRequestPaymentConfigurationV2State struct { + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. + Payer pulumi.StringPtrInput +} + +func (BucketRequestPaymentConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketRequestPaymentConfigurationV2State)(nil)).Elem() +} + +type bucketRequestPaymentConfigurationV2Args struct { + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. + Payer string `pulumi:"payer"` +} + +// The set of arguments for constructing a BucketRequestPaymentConfigurationV2 resource. +type BucketRequestPaymentConfigurationV2Args struct { + // Name of the bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. + Payer pulumi.StringInput +} + +func (BucketRequestPaymentConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketRequestPaymentConfigurationV2Args)(nil)).Elem() +} + +type BucketRequestPaymentConfigurationV2Input interface { + pulumi.Input + + ToBucketRequestPaymentConfigurationV2Output() BucketRequestPaymentConfigurationV2Output + ToBucketRequestPaymentConfigurationV2OutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2Output +} + +func (*BucketRequestPaymentConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketRequestPaymentConfigurationV2)(nil)).Elem() +} + +func (i *BucketRequestPaymentConfigurationV2) ToBucketRequestPaymentConfigurationV2Output() BucketRequestPaymentConfigurationV2Output { + return i.ToBucketRequestPaymentConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketRequestPaymentConfigurationV2) ToBucketRequestPaymentConfigurationV2OutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketRequestPaymentConfigurationV2Output) +} + +// BucketRequestPaymentConfigurationV2ArrayInput is an input type that accepts BucketRequestPaymentConfigurationV2Array and BucketRequestPaymentConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketRequestPaymentConfigurationV2ArrayInput` via: +// +// BucketRequestPaymentConfigurationV2Array{ BucketRequestPaymentConfigurationV2Args{...} } +type BucketRequestPaymentConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketRequestPaymentConfigurationV2ArrayOutput() BucketRequestPaymentConfigurationV2ArrayOutput + ToBucketRequestPaymentConfigurationV2ArrayOutputWithContext(context.Context) BucketRequestPaymentConfigurationV2ArrayOutput +} + +type BucketRequestPaymentConfigurationV2Array []BucketRequestPaymentConfigurationV2Input + +func (BucketRequestPaymentConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketRequestPaymentConfigurationV2)(nil)).Elem() +} + +func (i BucketRequestPaymentConfigurationV2Array) ToBucketRequestPaymentConfigurationV2ArrayOutput() BucketRequestPaymentConfigurationV2ArrayOutput { + return i.ToBucketRequestPaymentConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketRequestPaymentConfigurationV2Array) ToBucketRequestPaymentConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketRequestPaymentConfigurationV2ArrayOutput) +} + +// BucketRequestPaymentConfigurationV2MapInput is an input type that accepts BucketRequestPaymentConfigurationV2Map and BucketRequestPaymentConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketRequestPaymentConfigurationV2MapInput` via: +// +// BucketRequestPaymentConfigurationV2Map{ "key": BucketRequestPaymentConfigurationV2Args{...} } +type BucketRequestPaymentConfigurationV2MapInput interface { + pulumi.Input + + ToBucketRequestPaymentConfigurationV2MapOutput() BucketRequestPaymentConfigurationV2MapOutput + ToBucketRequestPaymentConfigurationV2MapOutputWithContext(context.Context) BucketRequestPaymentConfigurationV2MapOutput +} + +type BucketRequestPaymentConfigurationV2Map map[string]BucketRequestPaymentConfigurationV2Input + +func (BucketRequestPaymentConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketRequestPaymentConfigurationV2)(nil)).Elem() +} + +func (i BucketRequestPaymentConfigurationV2Map) ToBucketRequestPaymentConfigurationV2MapOutput() BucketRequestPaymentConfigurationV2MapOutput { + return i.ToBucketRequestPaymentConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketRequestPaymentConfigurationV2Map) ToBucketRequestPaymentConfigurationV2MapOutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketRequestPaymentConfigurationV2MapOutput) +} + +type BucketRequestPaymentConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketRequestPaymentConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketRequestPaymentConfigurationV2)(nil)).Elem() +} + +func (o BucketRequestPaymentConfigurationV2Output) ToBucketRequestPaymentConfigurationV2Output() BucketRequestPaymentConfigurationV2Output { + return o +} + +func (o BucketRequestPaymentConfigurationV2Output) ToBucketRequestPaymentConfigurationV2OutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2Output { + return o +} + +// Name of the bucket. +func (o BucketRequestPaymentConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketRequestPaymentConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketRequestPaymentConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketRequestPaymentConfigurationV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Specifies who pays for the download and request fees. Valid values: `BucketOwner`, `Requester`. +func (o BucketRequestPaymentConfigurationV2Output) Payer() pulumi.StringOutput { + return o.ApplyT(func(v *BucketRequestPaymentConfigurationV2) pulumi.StringOutput { return v.Payer }).(pulumi.StringOutput) +} + +type BucketRequestPaymentConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketRequestPaymentConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketRequestPaymentConfigurationV2)(nil)).Elem() +} + +func (o BucketRequestPaymentConfigurationV2ArrayOutput) ToBucketRequestPaymentConfigurationV2ArrayOutput() BucketRequestPaymentConfigurationV2ArrayOutput { + return o +} + +func (o BucketRequestPaymentConfigurationV2ArrayOutput) ToBucketRequestPaymentConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2ArrayOutput { + return o +} + +func (o BucketRequestPaymentConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketRequestPaymentConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketRequestPaymentConfigurationV2 { + return vs[0].([]*BucketRequestPaymentConfigurationV2)[vs[1].(int)] + }).(BucketRequestPaymentConfigurationV2Output) +} + +type BucketRequestPaymentConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketRequestPaymentConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketRequestPaymentConfigurationV2)(nil)).Elem() +} + +func (o BucketRequestPaymentConfigurationV2MapOutput) ToBucketRequestPaymentConfigurationV2MapOutput() BucketRequestPaymentConfigurationV2MapOutput { + return o +} + +func (o BucketRequestPaymentConfigurationV2MapOutput) ToBucketRequestPaymentConfigurationV2MapOutputWithContext(ctx context.Context) BucketRequestPaymentConfigurationV2MapOutput { + return o +} + +func (o BucketRequestPaymentConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketRequestPaymentConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketRequestPaymentConfigurationV2 { + return vs[0].(map[string]*BucketRequestPaymentConfigurationV2)[vs[1].(string)] + }).(BucketRequestPaymentConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketRequestPaymentConfigurationV2Input)(nil)).Elem(), &BucketRequestPaymentConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketRequestPaymentConfigurationV2ArrayInput)(nil)).Elem(), BucketRequestPaymentConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketRequestPaymentConfigurationV2MapInput)(nil)).Elem(), BucketRequestPaymentConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketRequestPaymentConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketRequestPaymentConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketRequestPaymentConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go new file mode 100644 index 000000000..7aef78c4d --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go @@ -0,0 +1,326 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a S3 bucket server-side encryption configuration resource. +// +// > **NOTE:** Destroying an `s3.BucketServerSideEncryptionConfigurationV2` resource resets the bucket to [Amazon S3 bucket default encryption](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// mykey, err := kms.NewKey(ctx, "mykey", &kms.KeyArgs{ +// Description: pulumi.String("This key is used to encrypt bucket objects"), +// DeletionWindowInDays: pulumi.Int(10), +// }) +// if err != nil { +// return err +// } +// mybucket, err := s3.NewBucketV2(ctx, "mybucket", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketServerSideEncryptionConfigurationV2(ctx, "example", &s3.BucketServerSideEncryptionConfigurationV2Args{ +// Bucket: mybucket.ID(), +// Rules: s3.BucketServerSideEncryptionConfigurationV2RuleArray{ +// &s3.BucketServerSideEncryptionConfigurationV2RuleArgs{ +// ApplyServerSideEncryptionByDefault: &s3.BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs{ +// KmsMasterKeyId: mykey.Arn, +// SseAlgorithm: pulumi.String("aws:kms"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket server-side encryption configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketServerSideEncryptionConfigurationV2 struct { + pulumi.CustomResourceState + + // ID (name) of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. + Rules BucketServerSideEncryptionConfigurationV2RuleArrayOutput `pulumi:"rules"` +} + +// NewBucketServerSideEncryptionConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketServerSideEncryptionConfigurationV2(ctx *pulumi.Context, + name string, args *BucketServerSideEncryptionConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketServerSideEncryptionConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Rules == nil { + return nil, errors.New("invalid value for required argument 'Rules'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketServerSideEncryptionConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketServerSideEncryptionConfigurationV2 gets an existing BucketServerSideEncryptionConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketServerSideEncryptionConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketServerSideEncryptionConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketServerSideEncryptionConfigurationV2, error) { + var resource BucketServerSideEncryptionConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketServerSideEncryptionConfigurationV2 resources. +type bucketServerSideEncryptionConfigurationV2State struct { + // ID (name) of the bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. + Rules []BucketServerSideEncryptionConfigurationV2Rule `pulumi:"rules"` +} + +type BucketServerSideEncryptionConfigurationV2State struct { + // ID (name) of the bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. + Rules BucketServerSideEncryptionConfigurationV2RuleArrayInput +} + +func (BucketServerSideEncryptionConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketServerSideEncryptionConfigurationV2State)(nil)).Elem() +} + +type bucketServerSideEncryptionConfigurationV2Args struct { + // ID (name) of the bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. + Rules []BucketServerSideEncryptionConfigurationV2Rule `pulumi:"rules"` +} + +// The set of arguments for constructing a BucketServerSideEncryptionConfigurationV2 resource. +type BucketServerSideEncryptionConfigurationV2Args struct { + // ID (name) of the bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. + Rules BucketServerSideEncryptionConfigurationV2RuleArrayInput +} + +func (BucketServerSideEncryptionConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketServerSideEncryptionConfigurationV2Args)(nil)).Elem() +} + +type BucketServerSideEncryptionConfigurationV2Input interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2Output() BucketServerSideEncryptionConfigurationV2Output + ToBucketServerSideEncryptionConfigurationV2OutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2Output +} + +func (*BucketServerSideEncryptionConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationV2)(nil)).Elem() +} + +func (i *BucketServerSideEncryptionConfigurationV2) ToBucketServerSideEncryptionConfigurationV2Output() BucketServerSideEncryptionConfigurationV2Output { + return i.ToBucketServerSideEncryptionConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketServerSideEncryptionConfigurationV2) ToBucketServerSideEncryptionConfigurationV2OutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2Output) +} + +// BucketServerSideEncryptionConfigurationV2ArrayInput is an input type that accepts BucketServerSideEncryptionConfigurationV2Array and BucketServerSideEncryptionConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationV2ArrayInput` via: +// +// BucketServerSideEncryptionConfigurationV2Array{ BucketServerSideEncryptionConfigurationV2Args{...} } +type BucketServerSideEncryptionConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2ArrayOutput() BucketServerSideEncryptionConfigurationV2ArrayOutput + ToBucketServerSideEncryptionConfigurationV2ArrayOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationV2ArrayOutput +} + +type BucketServerSideEncryptionConfigurationV2Array []BucketServerSideEncryptionConfigurationV2Input + +func (BucketServerSideEncryptionConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketServerSideEncryptionConfigurationV2)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationV2Array) ToBucketServerSideEncryptionConfigurationV2ArrayOutput() BucketServerSideEncryptionConfigurationV2ArrayOutput { + return i.ToBucketServerSideEncryptionConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationV2Array) ToBucketServerSideEncryptionConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2ArrayOutput) +} + +// BucketServerSideEncryptionConfigurationV2MapInput is an input type that accepts BucketServerSideEncryptionConfigurationV2Map and BucketServerSideEncryptionConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationV2MapInput` via: +// +// BucketServerSideEncryptionConfigurationV2Map{ "key": BucketServerSideEncryptionConfigurationV2Args{...} } +type BucketServerSideEncryptionConfigurationV2MapInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2MapOutput() BucketServerSideEncryptionConfigurationV2MapOutput + ToBucketServerSideEncryptionConfigurationV2MapOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationV2MapOutput +} + +type BucketServerSideEncryptionConfigurationV2Map map[string]BucketServerSideEncryptionConfigurationV2Input + +func (BucketServerSideEncryptionConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketServerSideEncryptionConfigurationV2)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationV2Map) ToBucketServerSideEncryptionConfigurationV2MapOutput() BucketServerSideEncryptionConfigurationV2MapOutput { + return i.ToBucketServerSideEncryptionConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationV2Map) ToBucketServerSideEncryptionConfigurationV2MapOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2MapOutput) +} + +type BucketServerSideEncryptionConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationV2)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2Output) ToBucketServerSideEncryptionConfigurationV2Output() BucketServerSideEncryptionConfigurationV2Output { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2Output) ToBucketServerSideEncryptionConfigurationV2OutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2Output { + return o +} + +// ID (name) of the bucket. +func (o BucketServerSideEncryptionConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketServerSideEncryptionConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationV2) pulumi.StringPtrOutput { + return v.ExpectedBucketOwner + }).(pulumi.StringPtrOutput) +} + +// Set of server-side encryption configuration rules. See below. Currently, only a single rule is supported. +func (o BucketServerSideEncryptionConfigurationV2Output) Rules() BucketServerSideEncryptionConfigurationV2RuleArrayOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationV2) BucketServerSideEncryptionConfigurationV2RuleArrayOutput { + return v.Rules + }).(BucketServerSideEncryptionConfigurationV2RuleArrayOutput) +} + +type BucketServerSideEncryptionConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketServerSideEncryptionConfigurationV2)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2ArrayOutput) ToBucketServerSideEncryptionConfigurationV2ArrayOutput() BucketServerSideEncryptionConfigurationV2ArrayOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2ArrayOutput) ToBucketServerSideEncryptionConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2ArrayOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketServerSideEncryptionConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketServerSideEncryptionConfigurationV2 { + return vs[0].([]*BucketServerSideEncryptionConfigurationV2)[vs[1].(int)] + }).(BucketServerSideEncryptionConfigurationV2Output) +} + +type BucketServerSideEncryptionConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketServerSideEncryptionConfigurationV2)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2MapOutput) ToBucketServerSideEncryptionConfigurationV2MapOutput() BucketServerSideEncryptionConfigurationV2MapOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2MapOutput) ToBucketServerSideEncryptionConfigurationV2MapOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2MapOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketServerSideEncryptionConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketServerSideEncryptionConfigurationV2 { + return vs[0].(map[string]*BucketServerSideEncryptionConfigurationV2)[vs[1].(string)] + }).(BucketServerSideEncryptionConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2Input)(nil)).Elem(), &BucketServerSideEncryptionConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2ArrayInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2MapInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketV2.go new file mode 100644 index 000000000..2f215ec00 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketV2.go @@ -0,0 +1,940 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a S3 bucket resource. +// +// > This functionality is for managing S3 in an AWS Partition. To manage [S3 on Outposts](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html), see the `s3control.Bucket` resource. +// +// > In April 2023, [AWS introduced](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-s3-automatically-enable-block-public-access-disable-access-control-lists-buckets-april-2023/) updated security defaults for new S3 buckets. See this issue for a information on how this affects the `s3.BucketV2` resource. +// +// ## Example Usage +// ### Private Bucket With Tags +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{ +// Tags: pulumi.StringMap{ +// "Environment": pulumi.String("Dev"), +// "Name": pulumi.String("My bucket"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Static Website Hosting +// +// > **NOTE:** The `website` attribute is deprecated. +// See `s3.BucketWebsiteConfigurationV2` for examples with static website hosting configured. +// +// ### CORS Rules +// +// > **NOTE:** The `corsRule` attribute is deprecated. +// See `s3.BucketCorsConfigurationV2` for examples with CORS rules configured. +// +// ### Versioning +// +// > **NOTE:** The `versioning` attribute is deprecated. +// See `s3.BucketVersioningV2` for examples with versioning configured. +// +// ### Logging +// +// > **NOTE:** The `logging` attribute is deprecated. +// See `s3.BucketLoggingV2` for examples with logging enabled. +// +// ### Object Lifecycle Rules +// +// > **NOTE:** The `lifecycleRule` attribute is deprecated. +// See `s3.BucketLifecycleConfigurationV2` for examples with object lifecycle rules. +// +// ### Object Lock Configuration +// +// > **NOTE:** The `objectLockConfiguration` attribute is deprecated. +// See `s3.BucketObjectLockConfigurationV2` for examples with object lock configurations on both new and existing buckets. +// +// ### Replication Configuration +// +// > **NOTE:** The `replicationConfiguration` attribute is deprecated. +// See `s3.BucketReplicationConfig` for examples with replication configured. +// +// ### Enable SSE-KMS Server Side Encryption +// +// > **NOTE:** The `serverSideEncryptionConfiguration` attribute is deprecated. +// See `s3.BucketServerSideEncryptionConfigurationV2` for examples with server side encryption configured. +// +// ### ACL Policy Grants +// +// > **NOTE:** The `acl` and `grant` attributes are deprecated. +// See `s3.BucketAclV2` for examples with ACL grants. +// +// ## Import +// +// Using `pulumi import`, import S3 bucket using the `bucket`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/bucketV2:BucketV2 bucket bucket-name +// +// ``` +type BucketV2 struct { + pulumi.CustomResourceState + + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketAccelerateConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead + AccelerationStatus pulumi.StringOutput `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Acl pulumi.StringOutput `pulumi:"acl"` + // ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn pulumi.StringOutput `pulumi:"arn"` + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName pulumi.StringOutput `pulumi:"bucketDomainName"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringOutput `pulumi:"bucketPrefix"` + // The bucket region-specific domain name. The bucket domain name including the region name. Please refer to the [S3 endpoints reference](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) for format. Note: AWS CloudFront allows specifying an S3 region-specific endpoint when creating an S3 origin. This will prevent redirect issues from CloudFront to the S3 Origin URL. For more information, see the [Virtual Hosted-Style Requests for Other Regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint) section in the AWS S3 User Guide. + BucketRegionalDomainName pulumi.StringOutput `pulumi:"bucketRegionalDomainName"` + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketCorsConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_cors_configuration resource instead + CorsRules BucketV2CorsRuleArrayOutput `pulumi:"corsRules"` + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Grants BucketV2GrantArrayOutput `pulumi:"grants"` + // [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"` + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLifecycleConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead + LifecycleRules BucketV2LifecycleRuleArrayOutput `pulumi:"lifecycleRules"` + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLoggingV2` instead. + // + // Deprecated: Use the aws_s3_bucket_logging resource instead + Loggings BucketV2LoggingArrayOutput `pulumi:"loggings"` + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `objectLockEnabled` parameter and the resource `s3.BucketObjectLockConfigurationV2` instead. + // + // Deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead + ObjectLockConfiguration BucketV2ObjectLockConfigurationOutput `pulumi:"objectLockConfiguration"` + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled pulumi.BoolOutput `pulumi:"objectLockEnabled"` + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketPolicy` instead. + // + // Deprecated: Use the aws_s3_bucket_policy resource instead + Policy pulumi.StringOutput `pulumi:"policy"` + // AWS region this bucket resides in. + Region pulumi.StringOutput `pulumi:"region"` + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketReplicationConfig` instead. + // + // Deprecated: Use the aws_s3_bucket_replication_configuration resource instead + ReplicationConfigurations BucketV2ReplicationConfigurationArrayOutput `pulumi:"replicationConfigurations"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketRequestPaymentConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead + RequestPayer pulumi.StringOutput `pulumi:"requestPayer"` + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketServerSideEncryptionConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead + ServerSideEncryptionConfigurations BucketV2ServerSideEncryptionConfigurationArrayOutput `pulumi:"serverSideEncryptionConfigurations"` + // Map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketVersioningV2` instead. + // + // Deprecated: Use the aws_s3_bucket_versioning resource instead + Versionings BucketV2VersioningArrayOutput `pulumi:"versionings"` + // (**Deprecated**) Domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource + WebsiteDomain pulumi.StringOutput `pulumi:"websiteDomain"` + // (**Deprecated**) Website endpoint, if the bucket is configured with a website. If not, this will be an empty string. Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource + WebsiteEndpoint pulumi.StringOutput `pulumi:"websiteEndpoint"` + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource instead + Websites BucketV2WebsiteArrayOutput `pulumi:"websites"` +} + +// NewBucketV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketV2(ctx *pulumi.Context, + name string, args *BucketV2Args, opts ...pulumi.ResourceOption) (*BucketV2, error) { + if args == nil { + args = &BucketV2Args{} + } + + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("aws:s3/bucket:Bucket"), + }, + }) + opts = append(opts, aliases) + secrets := pulumi.AdditionalSecretOutputs([]string{ + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketV2 + err := ctx.RegisterResource("aws:s3/bucketV2:BucketV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketV2 gets an existing BucketV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketV2State, opts ...pulumi.ResourceOption) (*BucketV2, error) { + var resource BucketV2 + err := ctx.ReadResource("aws:s3/bucketV2:BucketV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketV2 resources. +type bucketV2State struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketAccelerateConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead + AccelerationStatus *string `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Acl *string `pulumi:"acl"` + // ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn *string `pulumi:"arn"` + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket *string `pulumi:"bucket"` + // Bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName *string `pulumi:"bucketDomainName"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix *string `pulumi:"bucketPrefix"` + // The bucket region-specific domain name. The bucket domain name including the region name. Please refer to the [S3 endpoints reference](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) for format. Note: AWS CloudFront allows specifying an S3 region-specific endpoint when creating an S3 origin. This will prevent redirect issues from CloudFront to the S3 Origin URL. For more information, see the [Virtual Hosted-Style Requests for Other Regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint) section in the AWS S3 User Guide. + BucketRegionalDomainName *string `pulumi:"bucketRegionalDomainName"` + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketCorsConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_cors_configuration resource instead + CorsRules []BucketV2CorsRule `pulumi:"corsRules"` + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. + ForceDestroy *bool `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Grants []BucketV2Grant `pulumi:"grants"` + // [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId *string `pulumi:"hostedZoneId"` + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLifecycleConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead + LifecycleRules []BucketV2LifecycleRule `pulumi:"lifecycleRules"` + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLoggingV2` instead. + // + // Deprecated: Use the aws_s3_bucket_logging resource instead + Loggings []BucketV2Logging `pulumi:"loggings"` + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `objectLockEnabled` parameter and the resource `s3.BucketObjectLockConfigurationV2` instead. + // + // Deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead + ObjectLockConfiguration *BucketV2ObjectLockConfiguration `pulumi:"objectLockConfiguration"` + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled *bool `pulumi:"objectLockEnabled"` + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketPolicy` instead. + // + // Deprecated: Use the aws_s3_bucket_policy resource instead + Policy *string `pulumi:"policy"` + // AWS region this bucket resides in. + Region *string `pulumi:"region"` + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketReplicationConfig` instead. + // + // Deprecated: Use the aws_s3_bucket_replication_configuration resource instead + ReplicationConfigurations []BucketV2ReplicationConfiguration `pulumi:"replicationConfigurations"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketRequestPaymentConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead + RequestPayer *string `pulumi:"requestPayer"` + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketServerSideEncryptionConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead + ServerSideEncryptionConfigurations []BucketV2ServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfigurations"` + // Map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketVersioningV2` instead. + // + // Deprecated: Use the aws_s3_bucket_versioning resource instead + Versionings []BucketV2Versioning `pulumi:"versionings"` + // (**Deprecated**) Domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource + WebsiteDomain *string `pulumi:"websiteDomain"` + // (**Deprecated**) Website endpoint, if the bucket is configured with a website. If not, this will be an empty string. Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource + WebsiteEndpoint *string `pulumi:"websiteEndpoint"` + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource instead + Websites []BucketV2Website `pulumi:"websites"` +} + +type BucketV2State struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketAccelerateConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead + AccelerationStatus pulumi.StringPtrInput + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Acl pulumi.StringPtrInput + // ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn pulumi.StringPtrInput + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringPtrInput + // Bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName pulumi.StringPtrInput + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringPtrInput + // The bucket region-specific domain name. The bucket domain name including the region name. Please refer to the [S3 endpoints reference](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) for format. Note: AWS CloudFront allows specifying an S3 region-specific endpoint when creating an S3 origin. This will prevent redirect issues from CloudFront to the S3 Origin URL. For more information, see the [Virtual Hosted-Style Requests for Other Regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint) section in the AWS S3 User Guide. + BucketRegionalDomainName pulumi.StringPtrInput + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketCorsConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_cors_configuration resource instead + CorsRules BucketV2CorsRuleArrayInput + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. + ForceDestroy pulumi.BoolPtrInput + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Grants BucketV2GrantArrayInput + // [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId pulumi.StringPtrInput + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLifecycleConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead + LifecycleRules BucketV2LifecycleRuleArrayInput + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLoggingV2` instead. + // + // Deprecated: Use the aws_s3_bucket_logging resource instead + Loggings BucketV2LoggingArrayInput + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `objectLockEnabled` parameter and the resource `s3.BucketObjectLockConfigurationV2` instead. + // + // Deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead + ObjectLockConfiguration BucketV2ObjectLockConfigurationPtrInput + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled pulumi.BoolPtrInput + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketPolicy` instead. + // + // Deprecated: Use the aws_s3_bucket_policy resource instead + Policy pulumi.StringPtrInput + // AWS region this bucket resides in. + Region pulumi.StringPtrInput + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketReplicationConfig` instead. + // + // Deprecated: Use the aws_s3_bucket_replication_configuration resource instead + ReplicationConfigurations BucketV2ReplicationConfigurationArrayInput + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketRequestPaymentConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead + RequestPayer pulumi.StringPtrInput + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketServerSideEncryptionConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead + ServerSideEncryptionConfigurations BucketV2ServerSideEncryptionConfigurationArrayInput + // Map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketVersioningV2` instead. + // + // Deprecated: Use the aws_s3_bucket_versioning resource instead + Versionings BucketV2VersioningArrayInput + // (**Deprecated**) Domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource + WebsiteDomain pulumi.StringPtrInput + // (**Deprecated**) Website endpoint, if the bucket is configured with a website. If not, this will be an empty string. Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource + WebsiteEndpoint pulumi.StringPtrInput + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource instead + Websites BucketV2WebsiteArrayInput +} + +func (BucketV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketV2State)(nil)).Elem() +} + +type bucketV2Args struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketAccelerateConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead + AccelerationStatus *string `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Acl *string `pulumi:"acl"` + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket *string `pulumi:"bucket"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix *string `pulumi:"bucketPrefix"` + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketCorsConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_cors_configuration resource instead + CorsRules []BucketV2CorsRule `pulumi:"corsRules"` + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. + ForceDestroy *bool `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Grants []BucketV2Grant `pulumi:"grants"` + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLifecycleConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead + LifecycleRules []BucketV2LifecycleRule `pulumi:"lifecycleRules"` + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLoggingV2` instead. + // + // Deprecated: Use the aws_s3_bucket_logging resource instead + Loggings []BucketV2Logging `pulumi:"loggings"` + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `objectLockEnabled` parameter and the resource `s3.BucketObjectLockConfigurationV2` instead. + // + // Deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead + ObjectLockConfiguration *BucketV2ObjectLockConfiguration `pulumi:"objectLockConfiguration"` + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled *bool `pulumi:"objectLockEnabled"` + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketPolicy` instead. + // + // Deprecated: Use the aws_s3_bucket_policy resource instead + Policy *string `pulumi:"policy"` + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketReplicationConfig` instead. + // + // Deprecated: Use the aws_s3_bucket_replication_configuration resource instead + ReplicationConfigurations []BucketV2ReplicationConfiguration `pulumi:"replicationConfigurations"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketRequestPaymentConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead + RequestPayer *string `pulumi:"requestPayer"` + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketServerSideEncryptionConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead + ServerSideEncryptionConfigurations []BucketV2ServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfigurations"` + // Map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: + Tags map[string]string `pulumi:"tags"` + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketVersioningV2` instead. + // + // Deprecated: Use the aws_s3_bucket_versioning resource instead + Versionings []BucketV2Versioning `pulumi:"versionings"` + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource instead + Websites []BucketV2Website `pulumi:"websites"` +} + +// The set of arguments for constructing a BucketV2 resource. +type BucketV2Args struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketAccelerateConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead + AccelerationStatus pulumi.StringPtrInput + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Acl pulumi.StringPtrInput + // Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringPtrInput + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringPtrInput + // Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketCorsConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_cors_configuration resource instead + CorsRules BucketV2CorsRuleArrayInput + // Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. + ForceDestroy pulumi.BoolPtrInput + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. + // + // Deprecated: Use the aws_s3_bucket_acl resource instead + Grants BucketV2GrantArrayInput + // Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLifecycleConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead + LifecycleRules BucketV2LifecycleRuleArrayInput + // Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketLoggingV2` instead. + // + // Deprecated: Use the aws_s3_bucket_logging resource instead + Loggings BucketV2LoggingArrayInput + // Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. + // The provider wil only perform drift detection if a configuration value is provided. + // Use the `objectLockEnabled` parameter and the resource `s3.BucketObjectLockConfigurationV2` instead. + // + // Deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead + ObjectLockConfiguration BucketV2ObjectLockConfigurationPtrInput + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + ObjectLockEnabled pulumi.BoolPtrInput + // Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketPolicy` instead. + // + // Deprecated: Use the aws_s3_bucket_policy resource instead + Policy pulumi.StringPtrInput + // Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketReplicationConfig` instead. + // + // Deprecated: Use the aws_s3_bucket_replication_configuration resource instead + ReplicationConfigurations BucketV2ReplicationConfigurationArrayInput + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. + // See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketRequestPaymentConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead + RequestPayer pulumi.StringPtrInput + // Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. + // The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketServerSideEncryptionConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead + ServerSideEncryptionConfigurations BucketV2ServerSideEncryptionConfigurationArrayInput + // Map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + // + // The following arguments are deprecated, and will be removed in a future major version: + Tags pulumi.StringMapInput + // Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketVersioningV2` instead. + // + // Deprecated: Use the aws_s3_bucket_versioning resource instead + Versionings BucketV2VersioningArrayInput + // Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. + // Use the resource `s3.BucketWebsiteConfigurationV2` instead. + // + // Deprecated: Use the aws_s3_bucket_website_configuration resource instead + Websites BucketV2WebsiteArrayInput +} + +func (BucketV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketV2Args)(nil)).Elem() +} + +type BucketV2Input interface { + pulumi.Input + + ToBucketV2Output() BucketV2Output + ToBucketV2OutputWithContext(ctx context.Context) BucketV2Output +} + +func (*BucketV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketV2)(nil)).Elem() +} + +func (i *BucketV2) ToBucketV2Output() BucketV2Output { + return i.ToBucketV2OutputWithContext(context.Background()) +} + +func (i *BucketV2) ToBucketV2OutputWithContext(ctx context.Context) BucketV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2Output) +} + +// BucketV2ArrayInput is an input type that accepts BucketV2Array and BucketV2ArrayOutput values. +// You can construct a concrete instance of `BucketV2ArrayInput` via: +// +// BucketV2Array{ BucketV2Args{...} } +type BucketV2ArrayInput interface { + pulumi.Input + + ToBucketV2ArrayOutput() BucketV2ArrayOutput + ToBucketV2ArrayOutputWithContext(context.Context) BucketV2ArrayOutput +} + +type BucketV2Array []BucketV2Input + +func (BucketV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketV2)(nil)).Elem() +} + +func (i BucketV2Array) ToBucketV2ArrayOutput() BucketV2ArrayOutput { + return i.ToBucketV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketV2Array) ToBucketV2ArrayOutputWithContext(ctx context.Context) BucketV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ArrayOutput) +} + +// BucketV2MapInput is an input type that accepts BucketV2Map and BucketV2MapOutput values. +// You can construct a concrete instance of `BucketV2MapInput` via: +// +// BucketV2Map{ "key": BucketV2Args{...} } +type BucketV2MapInput interface { + pulumi.Input + + ToBucketV2MapOutput() BucketV2MapOutput + ToBucketV2MapOutputWithContext(context.Context) BucketV2MapOutput +} + +type BucketV2Map map[string]BucketV2Input + +func (BucketV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketV2)(nil)).Elem() +} + +func (i BucketV2Map) ToBucketV2MapOutput() BucketV2MapOutput { + return i.ToBucketV2MapOutputWithContext(context.Background()) +} + +func (i BucketV2Map) ToBucketV2MapOutputWithContext(ctx context.Context) BucketV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2MapOutput) +} + +type BucketV2Output struct{ *pulumi.OutputState } + +func (BucketV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketV2)(nil)).Elem() +} + +func (o BucketV2Output) ToBucketV2Output() BucketV2Output { + return o +} + +func (o BucketV2Output) ToBucketV2OutputWithContext(ctx context.Context) BucketV2Output { + return o +} + +// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. Cannot be used in `cn-north-1` or `us-gov-west-1`. This provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketAccelerateConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_accelerate_configuration resource instead +func (o BucketV2Output) AccelerationStatus() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.AccelerationStatus }).(pulumi.StringOutput) +} + +// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. +// +// Deprecated: Use the aws_s3_bucket_acl resource instead +func (o BucketV2Output) Acl() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.Acl }).(pulumi.StringOutput) +} + +// ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. +func (o BucketV2Output) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Name of the bucket. If omitted, the provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. +func (o BucketV2Output) BucketDomainName() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.BucketDomainName }).(pulumi.StringOutput) +} + +// Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketV2Output) BucketPrefix() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.BucketPrefix }).(pulumi.StringOutput) +} + +// The bucket region-specific domain name. The bucket domain name including the region name. Please refer to the [S3 endpoints reference](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) for format. Note: AWS CloudFront allows specifying an S3 region-specific endpoint when creating an S3 origin. This will prevent redirect issues from CloudFront to the S3 Origin URL. For more information, see the [Virtual Hosted-Style Requests for Other Regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint) section in the AWS S3 User Guide. +func (o BucketV2Output) BucketRegionalDomainName() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.BucketRegionalDomainName }).(pulumi.StringOutput) +} + +// Rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html). See CORS rule below for details. This provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketCorsConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_cors_configuration resource instead +func (o BucketV2Output) CorsRules() BucketV2CorsRuleArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2CorsRuleArrayOutput { return v.CorsRules }).(BucketV2CorsRuleArrayOutput) +} + +// Boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket *when the bucket is destroyed* so that the bucket can be destroyed without error. These objects are *not* recoverable. This only deletes objects when the bucket is destroyed, *not* when setting this parameter to `true`. Once this parameter is set to `true`, there must be a successful `pulumi up` run before a destroy is required to update this value in the resource state. Without a successful `pulumi up` after this parameter is set, this flag will have no effect. If setting this field in the same operation that would require replacing the bucket or destroying the bucket, this flag will not work. Additionally when importing a bucket, a successful `pulumi up` is required to set this value in state before it will take effect on a destroy operation. +func (o BucketV2Output) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketV2) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl). See Grant below for details. Conflicts with `acl`. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketAclV2` instead. +// +// Deprecated: Use the aws_s3_bucket_acl resource instead +func (o BucketV2Output) Grants() BucketV2GrantArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2GrantArrayOutput { return v.Grants }).(BucketV2GrantArrayOutput) +} + +// [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. +func (o BucketV2Output) HostedZoneId() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput) +} + +// Configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). See Lifecycle Rule below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketLifecycleConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_lifecycle_configuration resource instead +func (o BucketV2Output) LifecycleRules() BucketV2LifecycleRuleArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2LifecycleRuleArrayOutput { return v.LifecycleRules }).(BucketV2LifecycleRuleArrayOutput) +} + +// Configuration of [S3 bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) parameters. See Logging below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketLoggingV2` instead. +// +// Deprecated: Use the aws_s3_bucket_logging resource instead +func (o BucketV2Output) Loggings() BucketV2LoggingArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2LoggingArrayOutput { return v.Loggings }).(BucketV2LoggingArrayOutput) +} + +// Configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). See Object Lock Configuration below for details. +// The provider wil only perform drift detection if a configuration value is provided. +// Use the `objectLockEnabled` parameter and the resource `s3.BucketObjectLockConfigurationV2` instead. +// +// Deprecated: Use the top-level parameter object_lock_enabled and the aws_s3_bucket_object_lock_configuration resource instead +func (o BucketV2Output) ObjectLockConfiguration() BucketV2ObjectLockConfigurationOutput { + return o.ApplyT(func(v *BucketV2) BucketV2ObjectLockConfigurationOutput { return v.ObjectLockConfiguration }).(BucketV2ObjectLockConfigurationOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. +func (o BucketV2Output) ObjectLockEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *BucketV2) pulumi.BoolOutput { return v.ObjectLockEnabled }).(pulumi.BoolOutput) +} + +// Valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing. In this case, please make sure you use the verbose/specific version of the policy. For more information about building AWS IAM policy documents with this provider, see the AWS IAM Policy Document Guide. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketPolicy` instead. +// +// Deprecated: Use the aws_s3_bucket_policy resource instead +func (o BucketV2Output) Policy() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) +} + +// AWS region this bucket resides in. +func (o BucketV2Output) Region() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// Configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). See Replication Configuration below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketReplicationConfig` instead. +// +// Deprecated: Use the aws_s3_bucket_replication_configuration resource instead +func (o BucketV2Output) ReplicationConfigurations() BucketV2ReplicationConfigurationArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2ReplicationConfigurationArrayOutput { return v.ReplicationConfigurations }).(BucketV2ReplicationConfigurationArrayOutput) +} + +// Specifies who should bear the cost of Amazon S3 data transfer. +// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur the costs of any data transfer. +// See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) developer guide for more information. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketRequestPaymentConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_request_payment_configuration resource instead +func (o BucketV2Output) RequestPayer() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.RequestPayer }).(pulumi.StringOutput) +} + +// Configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html). See Server Side Encryption Configuration below for details. +// The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketServerSideEncryptionConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_server_side_encryption_configuration resource instead +func (o BucketV2Output) ServerSideEncryptionConfigurations() BucketV2ServerSideEncryptionConfigurationArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2ServerSideEncryptionConfigurationArrayOutput { + return v.ServerSideEncryptionConfigurations + }).(BucketV2ServerSideEncryptionConfigurationArrayOutput) +} + +// Map of tags to assign to the bucket. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +// The following arguments are deprecated, and will be removed in a future major version: +func (o BucketV2Output) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o BucketV2Output) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Configuration of the [S3 bucket versioning state](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html). See Versioning below for details. The provider will only perform drift detection if a configuration value is provided. Use the resource `s3.BucketVersioningV2` instead. +// +// Deprecated: Use the aws_s3_bucket_versioning resource instead +func (o BucketV2Output) Versionings() BucketV2VersioningArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2VersioningArrayOutput { return v.Versionings }).(BucketV2VersioningArrayOutput) +} + +// (**Deprecated**) Domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. Use the resource `s3.BucketWebsiteConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_website_configuration resource +func (o BucketV2Output) WebsiteDomain() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.WebsiteDomain }).(pulumi.StringOutput) +} + +// (**Deprecated**) Website endpoint, if the bucket is configured with a website. If not, this will be an empty string. Use the resource `s3.BucketWebsiteConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_website_configuration resource +func (o BucketV2Output) WebsiteEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *BucketV2) pulumi.StringOutput { return v.WebsiteEndpoint }).(pulumi.StringOutput) +} + +// Configuration of the [S3 bucket website](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html). See Website below for details. The provider will only perform drift detection if a configuration value is provided. +// Use the resource `s3.BucketWebsiteConfigurationV2` instead. +// +// Deprecated: Use the aws_s3_bucket_website_configuration resource instead +func (o BucketV2Output) Websites() BucketV2WebsiteArrayOutput { + return o.ApplyT(func(v *BucketV2) BucketV2WebsiteArrayOutput { return v.Websites }).(BucketV2WebsiteArrayOutput) +} + +type BucketV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketV2)(nil)).Elem() +} + +func (o BucketV2ArrayOutput) ToBucketV2ArrayOutput() BucketV2ArrayOutput { + return o +} + +func (o BucketV2ArrayOutput) ToBucketV2ArrayOutputWithContext(ctx context.Context) BucketV2ArrayOutput { + return o +} + +func (o BucketV2ArrayOutput) Index(i pulumi.IntInput) BucketV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketV2 { + return vs[0].([]*BucketV2)[vs[1].(int)] + }).(BucketV2Output) +} + +type BucketV2MapOutput struct{ *pulumi.OutputState } + +func (BucketV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketV2)(nil)).Elem() +} + +func (o BucketV2MapOutput) ToBucketV2MapOutput() BucketV2MapOutput { + return o +} + +func (o BucketV2MapOutput) ToBucketV2MapOutputWithContext(ctx context.Context) BucketV2MapOutput { + return o +} + +func (o BucketV2MapOutput) MapIndex(k pulumi.StringInput) BucketV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketV2 { + return vs[0].(map[string]*BucketV2)[vs[1].(string)] + }).(BucketV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2Input)(nil)).Elem(), &BucketV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ArrayInput)(nil)).Elem(), BucketV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2MapInput)(nil)).Elem(), BucketV2Map{}) + pulumi.RegisterOutputType(BucketV2Output{}) + pulumi.RegisterOutputType(BucketV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketVersioningV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketVersioningV2.go new file mode 100644 index 000000000..41f2c6b2f --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketVersioningV2.go @@ -0,0 +1,423 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource for controlling versioning on an S3 bucket. +// Deleting this resource will either suspend versioning on the associated S3 bucket or +// simply remove the resource from state if the associated S3 bucket is unversioned. +// +// For more information, see [How S3 versioning works](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html). +// +// > **NOTE:** If you are enabling versioning on the bucket for the first time, AWS recommends that you wait for 15 minutes after enabling versioning before issuing write operations (PUT or DELETE) on objects in the bucket. +// +// ## Example Usage +// ### With Versioning Enabled +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: exampleBucketV2.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketVersioningV2(ctx, "versioningExample", &s3.BucketVersioningV2Args{ +// Bucket: exampleBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### With Versioning Disabled +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAclV2(ctx, "exampleBucketAclV2", &s3.BucketAclV2Args{ +// Bucket: exampleBucketV2.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketVersioningV2(ctx, "versioningExample", &s3.BucketVersioningV2Args{ +// Bucket: exampleBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Disabled"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Object Dependency On Versioning +// +// When you create an object whose `versionId` you need and an `s3.BucketVersioningV2` resource in the same configuration, you are more likely to have success by ensuring the `s3Object` depends either implicitly (see below) or explicitly (i.e., using `dependsOn = [aws_s3_bucket_versioning.example]`) on the `s3.BucketVersioningV2` resource. +// +// > **NOTE:** For critical and/or production S3 objects, do not create a bucket, enable versioning, and create an object in the bucket within the same configuration. Doing so will not allow the AWS-recommended 15 minutes between enabling versioning and writing to the bucket. +// +// This example shows the `aws_s3_object.example` depending implicitly on the versioning resource through the reference to `aws_s3_bucket_versioning.example.bucket` to define `bucket`: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleBucketV2, err := s3.NewBucketV2(ctx, "exampleBucketV2", nil) +// if err != nil { +// return err +// } +// exampleBucketVersioningV2, err := s3.NewBucketVersioningV2(ctx, "exampleBucketVersioningV2", &s3.BucketVersioningV2Args{ +// Bucket: exampleBucketV2.ID(), +// VersioningConfiguration: &s3.BucketVersioningV2VersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketObjectv2(ctx, "exampleBucketObjectv2", &s3.BucketObjectv2Args{ +// Bucket: exampleBucketVersioningV2.ID(), +// Key: pulumi.String("droeloe"), +// Source: pulumi.NewFileAsset("example.txt"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket versioning using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketVersioningV2:BucketVersioningV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketVersioningV2:BucketVersioningV2 example bucket-name,123456789012 +// +// ``` +type BucketVersioningV2 struct { + pulumi.CustomResourceState + + // Name of the S3 bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. + Mfa pulumi.StringPtrOutput `pulumi:"mfa"` + // Configuration block for the versioning parameters. See below. + VersioningConfiguration BucketVersioningV2VersioningConfigurationOutput `pulumi:"versioningConfiguration"` +} + +// NewBucketVersioningV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketVersioningV2(ctx *pulumi.Context, + name string, args *BucketVersioningV2Args, opts ...pulumi.ResourceOption) (*BucketVersioningV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.VersioningConfiguration == nil { + return nil, errors.New("invalid value for required argument 'VersioningConfiguration'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketVersioningV2 + err := ctx.RegisterResource("aws:s3/bucketVersioningV2:BucketVersioningV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketVersioningV2 gets an existing BucketVersioningV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketVersioningV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketVersioningV2State, opts ...pulumi.ResourceOption) (*BucketVersioningV2, error) { + var resource BucketVersioningV2 + err := ctx.ReadResource("aws:s3/bucketVersioningV2:BucketVersioningV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketVersioningV2 resources. +type bucketVersioningV2State struct { + // Name of the S3 bucket. + Bucket *string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. + Mfa *string `pulumi:"mfa"` + // Configuration block for the versioning parameters. See below. + VersioningConfiguration *BucketVersioningV2VersioningConfiguration `pulumi:"versioningConfiguration"` +} + +type BucketVersioningV2State struct { + // Name of the S3 bucket. + Bucket pulumi.StringPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. + Mfa pulumi.StringPtrInput + // Configuration block for the versioning parameters. See below. + VersioningConfiguration BucketVersioningV2VersioningConfigurationPtrInput +} + +func (BucketVersioningV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketVersioningV2State)(nil)).Elem() +} + +type bucketVersioningV2Args struct { + // Name of the S3 bucket. + Bucket string `pulumi:"bucket"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. + Mfa *string `pulumi:"mfa"` + // Configuration block for the versioning parameters. See below. + VersioningConfiguration BucketVersioningV2VersioningConfiguration `pulumi:"versioningConfiguration"` +} + +// The set of arguments for constructing a BucketVersioningV2 resource. +type BucketVersioningV2Args struct { + // Name of the S3 bucket. + Bucket pulumi.StringInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. + Mfa pulumi.StringPtrInput + // Configuration block for the versioning parameters. See below. + VersioningConfiguration BucketVersioningV2VersioningConfigurationInput +} + +func (BucketVersioningV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketVersioningV2Args)(nil)).Elem() +} + +type BucketVersioningV2Input interface { + pulumi.Input + + ToBucketVersioningV2Output() BucketVersioningV2Output + ToBucketVersioningV2OutputWithContext(ctx context.Context) BucketVersioningV2Output +} + +func (*BucketVersioningV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketVersioningV2)(nil)).Elem() +} + +func (i *BucketVersioningV2) ToBucketVersioningV2Output() BucketVersioningV2Output { + return i.ToBucketVersioningV2OutputWithContext(context.Background()) +} + +func (i *BucketVersioningV2) ToBucketVersioningV2OutputWithContext(ctx context.Context) BucketVersioningV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningV2Output) +} + +// BucketVersioningV2ArrayInput is an input type that accepts BucketVersioningV2Array and BucketVersioningV2ArrayOutput values. +// You can construct a concrete instance of `BucketVersioningV2ArrayInput` via: +// +// BucketVersioningV2Array{ BucketVersioningV2Args{...} } +type BucketVersioningV2ArrayInput interface { + pulumi.Input + + ToBucketVersioningV2ArrayOutput() BucketVersioningV2ArrayOutput + ToBucketVersioningV2ArrayOutputWithContext(context.Context) BucketVersioningV2ArrayOutput +} + +type BucketVersioningV2Array []BucketVersioningV2Input + +func (BucketVersioningV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketVersioningV2)(nil)).Elem() +} + +func (i BucketVersioningV2Array) ToBucketVersioningV2ArrayOutput() BucketVersioningV2ArrayOutput { + return i.ToBucketVersioningV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketVersioningV2Array) ToBucketVersioningV2ArrayOutputWithContext(ctx context.Context) BucketVersioningV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningV2ArrayOutput) +} + +// BucketVersioningV2MapInput is an input type that accepts BucketVersioningV2Map and BucketVersioningV2MapOutput values. +// You can construct a concrete instance of `BucketVersioningV2MapInput` via: +// +// BucketVersioningV2Map{ "key": BucketVersioningV2Args{...} } +type BucketVersioningV2MapInput interface { + pulumi.Input + + ToBucketVersioningV2MapOutput() BucketVersioningV2MapOutput + ToBucketVersioningV2MapOutputWithContext(context.Context) BucketVersioningV2MapOutput +} + +type BucketVersioningV2Map map[string]BucketVersioningV2Input + +func (BucketVersioningV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketVersioningV2)(nil)).Elem() +} + +func (i BucketVersioningV2Map) ToBucketVersioningV2MapOutput() BucketVersioningV2MapOutput { + return i.ToBucketVersioningV2MapOutputWithContext(context.Background()) +} + +func (i BucketVersioningV2Map) ToBucketVersioningV2MapOutputWithContext(ctx context.Context) BucketVersioningV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningV2MapOutput) +} + +type BucketVersioningV2Output struct{ *pulumi.OutputState } + +func (BucketVersioningV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketVersioningV2)(nil)).Elem() +} + +func (o BucketVersioningV2Output) ToBucketVersioningV2Output() BucketVersioningV2Output { + return o +} + +func (o BucketVersioningV2Output) ToBucketVersioningV2OutputWithContext(ctx context.Context) BucketVersioningV2Output { + return o +} + +// Name of the S3 bucket. +func (o BucketVersioningV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketVersioningV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketVersioningV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketVersioningV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. +func (o BucketVersioningV2Output) Mfa() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketVersioningV2) pulumi.StringPtrOutput { return v.Mfa }).(pulumi.StringPtrOutput) +} + +// Configuration block for the versioning parameters. See below. +func (o BucketVersioningV2Output) VersioningConfiguration() BucketVersioningV2VersioningConfigurationOutput { + return o.ApplyT(func(v *BucketVersioningV2) BucketVersioningV2VersioningConfigurationOutput { + return v.VersioningConfiguration + }).(BucketVersioningV2VersioningConfigurationOutput) +} + +type BucketVersioningV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketVersioningV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketVersioningV2)(nil)).Elem() +} + +func (o BucketVersioningV2ArrayOutput) ToBucketVersioningV2ArrayOutput() BucketVersioningV2ArrayOutput { + return o +} + +func (o BucketVersioningV2ArrayOutput) ToBucketVersioningV2ArrayOutputWithContext(ctx context.Context) BucketVersioningV2ArrayOutput { + return o +} + +func (o BucketVersioningV2ArrayOutput) Index(i pulumi.IntInput) BucketVersioningV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketVersioningV2 { + return vs[0].([]*BucketVersioningV2)[vs[1].(int)] + }).(BucketVersioningV2Output) +} + +type BucketVersioningV2MapOutput struct{ *pulumi.OutputState } + +func (BucketVersioningV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketVersioningV2)(nil)).Elem() +} + +func (o BucketVersioningV2MapOutput) ToBucketVersioningV2MapOutput() BucketVersioningV2MapOutput { + return o +} + +func (o BucketVersioningV2MapOutput) ToBucketVersioningV2MapOutputWithContext(ctx context.Context) BucketVersioningV2MapOutput { + return o +} + +func (o BucketVersioningV2MapOutput) MapIndex(k pulumi.StringInput) BucketVersioningV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketVersioningV2 { + return vs[0].(map[string]*BucketVersioningV2)[vs[1].(string)] + }).(BucketVersioningV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningV2Input)(nil)).Elem(), &BucketVersioningV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningV2ArrayInput)(nil)).Elem(), BucketVersioningV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningV2MapInput)(nil)).Elem(), BucketVersioningV2Map{}) + pulumi.RegisterOutputType(BucketVersioningV2Output{}) + pulumi.RegisterOutputType(BucketVersioningV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketVersioningV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketWebsiteConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketWebsiteConfigurationV2.go new file mode 100644 index 000000000..d1e54d7ae --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/bucketWebsiteConfigurationV2.go @@ -0,0 +1,452 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an S3 bucket website configuration resource. For more information, see [Hosting Websites on S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). +// +// ## Example Usage +// ### With `routingRule` configured +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketWebsiteConfigurationV2(ctx, "example", &s3.BucketWebsiteConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Example.Id), +// IndexDocument: &s3.BucketWebsiteConfigurationV2IndexDocumentArgs{ +// Suffix: pulumi.String("index.html"), +// }, +// ErrorDocument: &s3.BucketWebsiteConfigurationV2ErrorDocumentArgs{ +// Key: pulumi.String("error.html"), +// }, +// RoutingRules: s3.BucketWebsiteConfigurationV2RoutingRuleArray{ +// &s3.BucketWebsiteConfigurationV2RoutingRuleArgs{ +// Condition: &s3.BucketWebsiteConfigurationV2RoutingRuleConditionArgs{ +// KeyPrefixEquals: pulumi.String("docs/"), +// }, +// Redirect: &s3.BucketWebsiteConfigurationV2RoutingRuleRedirectArgs{ +// ReplaceKeyPrefixWith: pulumi.String("documents/"), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### With `routingRules` configured +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewBucketWebsiteConfigurationV2(ctx, "example", &s3.BucketWebsiteConfigurationV2Args{ +// Bucket: pulumi.Any(aws_s3_bucket.Example.Id), +// IndexDocument: &s3.BucketWebsiteConfigurationV2IndexDocumentArgs{ +// Suffix: pulumi.String("index.html"), +// }, +// ErrorDocument: &s3.BucketWebsiteConfigurationV2ErrorDocumentArgs{ +// Key: pulumi.String("error.html"), +// }, +// RoutingRuleDetails: pulumi.String(`[{ +// "Condition": { +// "KeyPrefixEquals": "docs/" +// }, +// "Redirect": { +// "ReplaceKeyPrefixWith": "" +// } +// }] +// +// `), +// +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// __Using `pulumi import` to import__ S3 bucket website configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: +// +// ```sh +// +// $ pulumi import aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2 example bucket-name +// +// ``` +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// ```sh +// +// $ pulumi import aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2 example bucket-name,123456789012 +// +// ``` +type BucketWebsiteConfigurationV2 struct { + pulumi.CustomResourceState + + // Name of the bucket. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Name of the error document for the website. See below. + ErrorDocument BucketWebsiteConfigurationV2ErrorDocumentPtrOutput `pulumi:"errorDocument"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Name of the index document for the website. See below. + IndexDocument BucketWebsiteConfigurationV2IndexDocumentPtrOutput `pulumi:"indexDocument"` + // Redirect behavior for every request to this bucket's website endpoint. See below. Conflicts with `errorDocument`, `indexDocument`, and `routingRule`. + RedirectAllRequestsTo BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput `pulumi:"redirectAllRequestsTo"` + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. + RoutingRuleDetails pulumi.StringOutput `pulumi:"routingRuleDetails"` + // List of rules that define when a redirect is applied and the redirect behavior. See below. + RoutingRules BucketWebsiteConfigurationV2RoutingRuleArrayOutput `pulumi:"routingRules"` + // Domain of the website endpoint. This is used to create Route 53 alias records. + WebsiteDomain pulumi.StringOutput `pulumi:"websiteDomain"` + // Website endpoint. + WebsiteEndpoint pulumi.StringOutput `pulumi:"websiteEndpoint"` +} + +// NewBucketWebsiteConfigurationV2 registers a new resource with the given unique name, arguments, and options. +func NewBucketWebsiteConfigurationV2(ctx *pulumi.Context, + name string, args *BucketWebsiteConfigurationV2Args, opts ...pulumi.ResourceOption) (*BucketWebsiteConfigurationV2, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BucketWebsiteConfigurationV2 + err := ctx.RegisterResource("aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBucketWebsiteConfigurationV2 gets an existing BucketWebsiteConfigurationV2 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBucketWebsiteConfigurationV2(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BucketWebsiteConfigurationV2State, opts ...pulumi.ResourceOption) (*BucketWebsiteConfigurationV2, error) { + var resource BucketWebsiteConfigurationV2 + err := ctx.ReadResource("aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BucketWebsiteConfigurationV2 resources. +type bucketWebsiteConfigurationV2State struct { + // Name of the bucket. + Bucket *string `pulumi:"bucket"` + // Name of the error document for the website. See below. + ErrorDocument *BucketWebsiteConfigurationV2ErrorDocument `pulumi:"errorDocument"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Name of the index document for the website. See below. + IndexDocument *BucketWebsiteConfigurationV2IndexDocument `pulumi:"indexDocument"` + // Redirect behavior for every request to this bucket's website endpoint. See below. Conflicts with `errorDocument`, `indexDocument`, and `routingRule`. + RedirectAllRequestsTo *BucketWebsiteConfigurationV2RedirectAllRequestsTo `pulumi:"redirectAllRequestsTo"` + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. + RoutingRuleDetails *string `pulumi:"routingRuleDetails"` + // List of rules that define when a redirect is applied and the redirect behavior. See below. + RoutingRules []BucketWebsiteConfigurationV2RoutingRule `pulumi:"routingRules"` + // Domain of the website endpoint. This is used to create Route 53 alias records. + WebsiteDomain *string `pulumi:"websiteDomain"` + // Website endpoint. + WebsiteEndpoint *string `pulumi:"websiteEndpoint"` +} + +type BucketWebsiteConfigurationV2State struct { + // Name of the bucket. + Bucket pulumi.StringPtrInput + // Name of the error document for the website. See below. + ErrorDocument BucketWebsiteConfigurationV2ErrorDocumentPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Name of the index document for the website. See below. + IndexDocument BucketWebsiteConfigurationV2IndexDocumentPtrInput + // Redirect behavior for every request to this bucket's website endpoint. See below. Conflicts with `errorDocument`, `indexDocument`, and `routingRule`. + RedirectAllRequestsTo BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. + RoutingRuleDetails pulumi.StringPtrInput + // List of rules that define when a redirect is applied and the redirect behavior. See below. + RoutingRules BucketWebsiteConfigurationV2RoutingRuleArrayInput + // Domain of the website endpoint. This is used to create Route 53 alias records. + WebsiteDomain pulumi.StringPtrInput + // Website endpoint. + WebsiteEndpoint pulumi.StringPtrInput +} + +func (BucketWebsiteConfigurationV2State) ElementType() reflect.Type { + return reflect.TypeOf((*bucketWebsiteConfigurationV2State)(nil)).Elem() +} + +type bucketWebsiteConfigurationV2Args struct { + // Name of the bucket. + Bucket string `pulumi:"bucket"` + // Name of the error document for the website. See below. + ErrorDocument *BucketWebsiteConfigurationV2ErrorDocument `pulumi:"errorDocument"` + // Account ID of the expected bucket owner. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Name of the index document for the website. See below. + IndexDocument *BucketWebsiteConfigurationV2IndexDocument `pulumi:"indexDocument"` + // Redirect behavior for every request to this bucket's website endpoint. See below. Conflicts with `errorDocument`, `indexDocument`, and `routingRule`. + RedirectAllRequestsTo *BucketWebsiteConfigurationV2RedirectAllRequestsTo `pulumi:"redirectAllRequestsTo"` + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. + RoutingRuleDetails *string `pulumi:"routingRuleDetails"` + // List of rules that define when a redirect is applied and the redirect behavior. See below. + RoutingRules []BucketWebsiteConfigurationV2RoutingRule `pulumi:"routingRules"` +} + +// The set of arguments for constructing a BucketWebsiteConfigurationV2 resource. +type BucketWebsiteConfigurationV2Args struct { + // Name of the bucket. + Bucket pulumi.StringInput + // Name of the error document for the website. See below. + ErrorDocument BucketWebsiteConfigurationV2ErrorDocumentPtrInput + // Account ID of the expected bucket owner. + ExpectedBucketOwner pulumi.StringPtrInput + // Name of the index document for the website. See below. + IndexDocument BucketWebsiteConfigurationV2IndexDocumentPtrInput + // Redirect behavior for every request to this bucket's website endpoint. See below. Conflicts with `errorDocument`, `indexDocument`, and `routingRule`. + RedirectAllRequestsTo BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. + RoutingRuleDetails pulumi.StringPtrInput + // List of rules that define when a redirect is applied and the redirect behavior. See below. + RoutingRules BucketWebsiteConfigurationV2RoutingRuleArrayInput +} + +func (BucketWebsiteConfigurationV2Args) ElementType() reflect.Type { + return reflect.TypeOf((*bucketWebsiteConfigurationV2Args)(nil)).Elem() +} + +type BucketWebsiteConfigurationV2Input interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2Output() BucketWebsiteConfigurationV2Output + ToBucketWebsiteConfigurationV2OutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2Output +} + +func (*BucketWebsiteConfigurationV2) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2)(nil)).Elem() +} + +func (i *BucketWebsiteConfigurationV2) ToBucketWebsiteConfigurationV2Output() BucketWebsiteConfigurationV2Output { + return i.ToBucketWebsiteConfigurationV2OutputWithContext(context.Background()) +} + +func (i *BucketWebsiteConfigurationV2) ToBucketWebsiteConfigurationV2OutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2Output { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2Output) +} + +// BucketWebsiteConfigurationV2ArrayInput is an input type that accepts BucketWebsiteConfigurationV2Array and BucketWebsiteConfigurationV2ArrayOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2ArrayInput` via: +// +// BucketWebsiteConfigurationV2Array{ BucketWebsiteConfigurationV2Args{...} } +type BucketWebsiteConfigurationV2ArrayInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2ArrayOutput() BucketWebsiteConfigurationV2ArrayOutput + ToBucketWebsiteConfigurationV2ArrayOutputWithContext(context.Context) BucketWebsiteConfigurationV2ArrayOutput +} + +type BucketWebsiteConfigurationV2Array []BucketWebsiteConfigurationV2Input + +func (BucketWebsiteConfigurationV2Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketWebsiteConfigurationV2)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2Array) ToBucketWebsiteConfigurationV2ArrayOutput() BucketWebsiteConfigurationV2ArrayOutput { + return i.ToBucketWebsiteConfigurationV2ArrayOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2Array) ToBucketWebsiteConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2ArrayOutput) +} + +// BucketWebsiteConfigurationV2MapInput is an input type that accepts BucketWebsiteConfigurationV2Map and BucketWebsiteConfigurationV2MapOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2MapInput` via: +// +// BucketWebsiteConfigurationV2Map{ "key": BucketWebsiteConfigurationV2Args{...} } +type BucketWebsiteConfigurationV2MapInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2MapOutput() BucketWebsiteConfigurationV2MapOutput + ToBucketWebsiteConfigurationV2MapOutputWithContext(context.Context) BucketWebsiteConfigurationV2MapOutput +} + +type BucketWebsiteConfigurationV2Map map[string]BucketWebsiteConfigurationV2Input + +func (BucketWebsiteConfigurationV2Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketWebsiteConfigurationV2)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2Map) ToBucketWebsiteConfigurationV2MapOutput() BucketWebsiteConfigurationV2MapOutput { + return i.ToBucketWebsiteConfigurationV2MapOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2Map) ToBucketWebsiteConfigurationV2MapOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2MapOutput) +} + +type BucketWebsiteConfigurationV2Output struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2Output) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2Output) ToBucketWebsiteConfigurationV2Output() BucketWebsiteConfigurationV2Output { + return o +} + +func (o BucketWebsiteConfigurationV2Output) ToBucketWebsiteConfigurationV2OutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2Output { + return o +} + +// Name of the bucket. +func (o BucketWebsiteConfigurationV2Output) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Name of the error document for the website. See below. +func (o BucketWebsiteConfigurationV2Output) ErrorDocument() BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return v.ErrorDocument + }).(BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) +} + +// Account ID of the expected bucket owner. +func (o BucketWebsiteConfigurationV2Output) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Name of the index document for the website. See below. +func (o BucketWebsiteConfigurationV2Output) IndexDocument() BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return v.IndexDocument + }).(BucketWebsiteConfigurationV2IndexDocumentPtrOutput) +} + +// Redirect behavior for every request to this bucket's website endpoint. See below. Conflicts with `errorDocument`, `indexDocument`, and `routingRule`. +func (o BucketWebsiteConfigurationV2Output) RedirectAllRequestsTo() BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return v.RedirectAllRequestsTo + }).(BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) +} + +// JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) +// describing redirect behavior and when redirects are applied. Use this parameter when your routing rules contain empty String values (`""`) as seen in the example above. +func (o BucketWebsiteConfigurationV2Output) RoutingRuleDetails() pulumi.StringOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) pulumi.StringOutput { return v.RoutingRuleDetails }).(pulumi.StringOutput) +} + +// List of rules that define when a redirect is applied and the redirect behavior. See below. +func (o BucketWebsiteConfigurationV2Output) RoutingRules() BucketWebsiteConfigurationV2RoutingRuleArrayOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) BucketWebsiteConfigurationV2RoutingRuleArrayOutput { + return v.RoutingRules + }).(BucketWebsiteConfigurationV2RoutingRuleArrayOutput) +} + +// Domain of the website endpoint. This is used to create Route 53 alias records. +func (o BucketWebsiteConfigurationV2Output) WebsiteDomain() pulumi.StringOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) pulumi.StringOutput { return v.WebsiteDomain }).(pulumi.StringOutput) +} + +// Website endpoint. +func (o BucketWebsiteConfigurationV2Output) WebsiteEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2) pulumi.StringOutput { return v.WebsiteEndpoint }).(pulumi.StringOutput) +} + +type BucketWebsiteConfigurationV2ArrayOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BucketWebsiteConfigurationV2)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2ArrayOutput) ToBucketWebsiteConfigurationV2ArrayOutput() BucketWebsiteConfigurationV2ArrayOutput { + return o +} + +func (o BucketWebsiteConfigurationV2ArrayOutput) ToBucketWebsiteConfigurationV2ArrayOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ArrayOutput { + return o +} + +func (o BucketWebsiteConfigurationV2ArrayOutput) Index(i pulumi.IntInput) BucketWebsiteConfigurationV2Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BucketWebsiteConfigurationV2 { + return vs[0].([]*BucketWebsiteConfigurationV2)[vs[1].(int)] + }).(BucketWebsiteConfigurationV2Output) +} + +type BucketWebsiteConfigurationV2MapOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BucketWebsiteConfigurationV2)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2MapOutput) ToBucketWebsiteConfigurationV2MapOutput() BucketWebsiteConfigurationV2MapOutput { + return o +} + +func (o BucketWebsiteConfigurationV2MapOutput) ToBucketWebsiteConfigurationV2MapOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2MapOutput { + return o +} + +func (o BucketWebsiteConfigurationV2MapOutput) MapIndex(k pulumi.StringInput) BucketWebsiteConfigurationV2Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BucketWebsiteConfigurationV2 { + return vs[0].(map[string]*BucketWebsiteConfigurationV2)[vs[1].(string)] + }).(BucketWebsiteConfigurationV2Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2Input)(nil)).Elem(), &BucketWebsiteConfigurationV2{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2ArrayInput)(nil)).Elem(), BucketWebsiteConfigurationV2Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2MapInput)(nil)).Elem(), BucketWebsiteConfigurationV2Map{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2Output{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2ArrayOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2MapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getAccountPublicAccessBlock.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getAccountPublicAccessBlock.go new file mode 100644 index 000000000..ec8269ddb --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getAccountPublicAccessBlock.go @@ -0,0 +1,139 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The S3 account public access block data source returns account-level public access block configuration. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.LookupAccountPublicAccessBlock(ctx, nil, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupAccountPublicAccessBlock(ctx *pulumi.Context, args *LookupAccountPublicAccessBlockArgs, opts ...pulumi.InvokeOption) (*LookupAccountPublicAccessBlockResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAccountPublicAccessBlockResult + err := ctx.Invoke("aws:s3/getAccountPublicAccessBlock:getAccountPublicAccessBlock", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getAccountPublicAccessBlock. +type LookupAccountPublicAccessBlockArgs struct { + // AWS account ID to configure. Defaults to automatically determined account ID of the AWS provider. + AccountId *string `pulumi:"accountId"` +} + +// A collection of values returned by getAccountPublicAccessBlock. +type LookupAccountPublicAccessBlockResult struct { + AccountId *string `pulumi:"accountId"` + // Whether or not Amazon S3 should block public ACLs for buckets in this account is enabled. Returns as `true` or `false`. + BlockPublicAcls bool `pulumi:"blockPublicAcls"` + // Whether or not Amazon S3 should block public bucket policies for buckets in this account is enabled. Returns as `true` or `false`. + BlockPublicPolicy bool `pulumi:"blockPublicPolicy"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Whether or not Amazon S3 should ignore public ACLs for buckets in this account is enabled. Returns as `true` or `false`. + IgnorePublicAcls bool `pulumi:"ignorePublicAcls"` + // Whether or not Amazon S3 should restrict public bucket policies for buckets in this account is enabled. Returns as `true` or `false`. + RestrictPublicBuckets bool `pulumi:"restrictPublicBuckets"` +} + +func LookupAccountPublicAccessBlockOutput(ctx *pulumi.Context, args LookupAccountPublicAccessBlockOutputArgs, opts ...pulumi.InvokeOption) LookupAccountPublicAccessBlockResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupAccountPublicAccessBlockResult, error) { + args := v.(LookupAccountPublicAccessBlockArgs) + r, err := LookupAccountPublicAccessBlock(ctx, &args, opts...) + var s LookupAccountPublicAccessBlockResult + if r != nil { + s = *r + } + return s, err + }).(LookupAccountPublicAccessBlockResultOutput) +} + +// A collection of arguments for invoking getAccountPublicAccessBlock. +type LookupAccountPublicAccessBlockOutputArgs struct { + // AWS account ID to configure. Defaults to automatically determined account ID of the AWS provider. + AccountId pulumi.StringPtrInput `pulumi:"accountId"` +} + +func (LookupAccountPublicAccessBlockOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAccountPublicAccessBlockArgs)(nil)).Elem() +} + +// A collection of values returned by getAccountPublicAccessBlock. +type LookupAccountPublicAccessBlockResultOutput struct{ *pulumi.OutputState } + +func (LookupAccountPublicAccessBlockResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAccountPublicAccessBlockResult)(nil)).Elem() +} + +func (o LookupAccountPublicAccessBlockResultOutput) ToLookupAccountPublicAccessBlockResultOutput() LookupAccountPublicAccessBlockResultOutput { + return o +} + +func (o LookupAccountPublicAccessBlockResultOutput) ToLookupAccountPublicAccessBlockResultOutputWithContext(ctx context.Context) LookupAccountPublicAccessBlockResultOutput { + return o +} + +func (o LookupAccountPublicAccessBlockResultOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAccountPublicAccessBlockResult) *string { return v.AccountId }).(pulumi.StringPtrOutput) +} + +// Whether or not Amazon S3 should block public ACLs for buckets in this account is enabled. Returns as `true` or `false`. +func (o LookupAccountPublicAccessBlockResultOutput) BlockPublicAcls() pulumi.BoolOutput { + return o.ApplyT(func(v LookupAccountPublicAccessBlockResult) bool { return v.BlockPublicAcls }).(pulumi.BoolOutput) +} + +// Whether or not Amazon S3 should block public bucket policies for buckets in this account is enabled. Returns as `true` or `false`. +func (o LookupAccountPublicAccessBlockResultOutput) BlockPublicPolicy() pulumi.BoolOutput { + return o.ApplyT(func(v LookupAccountPublicAccessBlockResult) bool { return v.BlockPublicPolicy }).(pulumi.BoolOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupAccountPublicAccessBlockResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupAccountPublicAccessBlockResult) string { return v.Id }).(pulumi.StringOutput) +} + +// Whether or not Amazon S3 should ignore public ACLs for buckets in this account is enabled. Returns as `true` or `false`. +func (o LookupAccountPublicAccessBlockResultOutput) IgnorePublicAcls() pulumi.BoolOutput { + return o.ApplyT(func(v LookupAccountPublicAccessBlockResult) bool { return v.IgnorePublicAcls }).(pulumi.BoolOutput) +} + +// Whether or not Amazon S3 should restrict public bucket policies for buckets in this account is enabled. Returns as `true` or `false`. +func (o LookupAccountPublicAccessBlockResultOutput) RestrictPublicBuckets() pulumi.BoolOutput { + return o.ApplyT(func(v LookupAccountPublicAccessBlockResult) bool { return v.RestrictPublicBuckets }).(pulumi.BoolOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAccountPublicAccessBlockResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucket.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucket.go new file mode 100644 index 000000000..930ce54c3 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucket.go @@ -0,0 +1,224 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides details about a specific S3 bucket. +// +// This resource may prove useful when setting up a Route53 record, or an origin for a CloudFront +// Distribution. +// +// ## Example Usage +// ### Route53 Record +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// selected, err := s3.LookupBucket(ctx, &s3.LookupBucketArgs{ +// Bucket: "bucket.test.com", +// }, nil) +// if err != nil { +// return err +// } +// testZone, err := route53.LookupZone(ctx, &route53.LookupZoneArgs{ +// Name: pulumi.StringRef("test.com."), +// }, nil) +// if err != nil { +// return err +// } +// _, err = route53.NewRecord(ctx, "example", &route53.RecordArgs{ +// ZoneId: *pulumi.String(testZone.Id), +// Name: pulumi.String("bucket"), +// Type: pulumi.String("A"), +// Aliases: route53.RecordAliasArray{ +// &route53.RecordAliasArgs{ +// Name: *pulumi.String(selected.WebsiteDomain), +// ZoneId: *pulumi.String(selected.HostedZoneId), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### CloudFront Origin +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudfront" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// selected, err := s3.LookupBucket(ctx, &s3.LookupBucketArgs{ +// Bucket: "a-test-bucket", +// }, nil) +// if err != nil { +// return err +// } +// _, err = cloudfront.NewDistribution(ctx, "test", &cloudfront.DistributionArgs{ +// Origins: cloudfront.DistributionOriginArray{ +// &cloudfront.DistributionOriginArgs{ +// DomainName: *pulumi.String(selected.BucketDomainName), +// OriginId: pulumi.String("s3-selected-bucket"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupBucket(ctx *pulumi.Context, args *LookupBucketArgs, opts ...pulumi.InvokeOption) (*LookupBucketResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBucketResult + err := ctx.Invoke("aws:s3/getBucket:getBucket", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getBucket. +type LookupBucketArgs struct { + // Name of the bucket + Bucket string `pulumi:"bucket"` +} + +// A collection of values returned by getBucket. +type LookupBucketResult struct { + // ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn string `pulumi:"arn"` + Bucket string `pulumi:"bucket"` + // Bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. + BucketDomainName string `pulumi:"bucketDomainName"` + // The bucket region-specific domain name. The bucket domain name including the region name. Please refer to the [S3 endpoints reference](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) for format. Note: AWS CloudFront allows specifying an S3 region-specific endpoint when creating an S3 origin. This will prevent redirect issues from CloudFront to the S3 Origin URL. For more information, see the [Virtual Hosted-Style Requests for Other Regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint) section in the AWS S3 User Guide. + BucketRegionalDomainName string `pulumi:"bucketRegionalDomainName"` + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId string `pulumi:"hostedZoneId"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // AWS region this bucket resides in. + Region string `pulumi:"region"` + // Domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain string `pulumi:"websiteDomain"` + // Website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint string `pulumi:"websiteEndpoint"` +} + +func LookupBucketOutput(ctx *pulumi.Context, args LookupBucketOutputArgs, opts ...pulumi.InvokeOption) LookupBucketResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupBucketResult, error) { + args := v.(LookupBucketArgs) + r, err := LookupBucket(ctx, &args, opts...) + var s LookupBucketResult + if r != nil { + s = *r + } + return s, err + }).(LookupBucketResultOutput) +} + +// A collection of arguments for invoking getBucket. +type LookupBucketOutputArgs struct { + // Name of the bucket + Bucket pulumi.StringInput `pulumi:"bucket"` +} + +func (LookupBucketOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBucketArgs)(nil)).Elem() +} + +// A collection of values returned by getBucket. +type LookupBucketResultOutput struct{ *pulumi.OutputState } + +func (LookupBucketResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBucketResult)(nil)).Elem() +} + +func (o LookupBucketResultOutput) ToLookupBucketResultOutput() LookupBucketResultOutput { + return o +} + +func (o LookupBucketResultOutput) ToLookupBucketResultOutputWithContext(ctx context.Context) LookupBucketResultOutput { + return o +} + +// ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. +func (o LookupBucketResultOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o LookupBucketResultOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.Bucket }).(pulumi.StringOutput) +} + +// Bucket domain name. Will be of format `bucketname.s3.amazonaws.com`. +func (o LookupBucketResultOutput) BucketDomainName() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.BucketDomainName }).(pulumi.StringOutput) +} + +// The bucket region-specific domain name. The bucket domain name including the region name. Please refer to the [S3 endpoints reference](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) for format. Note: AWS CloudFront allows specifying an S3 region-specific endpoint when creating an S3 origin. This will prevent redirect issues from CloudFront to the S3 Origin URL. For more information, see the [Virtual Hosted-Style Requests for Other Regions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#deprecated-global-endpoint) section in the AWS S3 User Guide. +func (o LookupBucketResultOutput) BucketRegionalDomainName() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.BucketRegionalDomainName }).(pulumi.StringOutput) +} + +// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. +func (o LookupBucketResultOutput) HostedZoneId() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.HostedZoneId }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupBucketResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.Id }).(pulumi.StringOutput) +} + +// AWS region this bucket resides in. +func (o LookupBucketResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.Region }).(pulumi.StringOutput) +} + +// Domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. +func (o LookupBucketResultOutput) WebsiteDomain() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.WebsiteDomain }).(pulumi.StringOutput) +} + +// Website endpoint, if the bucket is configured with a website. If not, this will be an empty string. +func (o LookupBucketResultOutput) WebsiteEndpoint() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketResult) string { return v.WebsiteEndpoint }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupBucketResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObject.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObject.go new file mode 100644 index 000000000..1403d2f30 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObject.go @@ -0,0 +1,358 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **NOTE:** The `s3.BucketObject` data source is DEPRECATED and will be removed in a future version! Use `s3.BucketObjectv2` instead, where new features and fixes will be added. +// +// The S3 object data source allows access to the metadata and +// _optionally_ (see below) content of an object stored inside S3 bucket. +// +// > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favour of metadata. +// +// ## Example Usage +// +// The following example retrieves a text object (which must have a `Content-Type` +// value starting with `text/`) and uses it as the `userData` for an EC2 instance: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bootstrapScript, err := s3.LookupBucketObject(ctx, &s3.LookupBucketObjectArgs{ +// Bucket: "ourcorp-deploy-config", +// Key: "ec2-bootstrap-script.sh", +// }, nil) +// if err != nil { +// return err +// } +// _, err = ec2.NewInstance(ctx, "example", &ec2.InstanceArgs{ +// InstanceType: pulumi.String("t2.micro"), +// Ami: pulumi.String("ami-2757f631"), +// UserData: *pulumi.String(bootstrapScript.Body), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// The following, more-complex example retrieves only the metadata for a zip +// file stored in S3, which is then used to pass the most recent `versionId` +// to AWS Lambda for use as a function implementation. More information about +// Lambda functions is available in the documentation for +// `lambda.Function`. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// lambda, err := s3.LookupBucketObject(ctx, &s3.LookupBucketObjectArgs{ +// Bucket: "ourcorp-lambda-functions", +// Key: "hello-world.zip", +// }, nil) +// if err != nil { +// return err +// } +// _, err = lambda.NewFunction(ctx, "testLambda", &lambda.FunctionArgs{ +// S3Bucket: *pulumi.String(lambda.Id), +// S3Key: *pulumi.String(lambda.Key), +// S3ObjectVersion: *pulumi.String(lambda.VersionId), +// Role: pulumi.Any(aws_iam_role.Iam_for_lambda.Arn), +// Handler: pulumi.String("exports.test"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupBucketObject(ctx *pulumi.Context, args *LookupBucketObjectArgs, opts ...pulumi.InvokeOption) (*LookupBucketObjectResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBucketObjectResult + err := ctx.Invoke("aws:s3/getBucketObject:getBucketObject", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getBucketObject. +type LookupBucketObjectArgs struct { + // Name of the bucket to read the object from. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + // + // Deprecated: Use the aws_s3_object data source instead + Bucket string `pulumi:"bucket"` + // Full path to the object inside the bucket + Key string `pulumi:"key"` + Range *string `pulumi:"range"` + // Map of tags assigned to the object. + Tags map[string]string `pulumi:"tags"` + // Specific version ID of the object returned (defaults to latest version) + VersionId *string `pulumi:"versionId"` +} + +// A collection of values returned by getBucketObject. +type LookupBucketObjectResult struct { + // Object data (see **limitations above** to understand cases in which this field is actually available) + Body string `pulumi:"body"` + // Deprecated: Use the aws_s3_object data source instead + Bucket string `pulumi:"bucket"` + // (Optional) Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled bool `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain. + CacheControl string `pulumi:"cacheControl"` + // Presentational information for the object. + ContentDisposition string `pulumi:"contentDisposition"` + // What content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. + ContentEncoding string `pulumi:"contentEncoding"` + // Language the content is in. + ContentLanguage string `pulumi:"contentLanguage"` + // Size of the body in bytes. + ContentLength int `pulumi:"contentLength"` + // Standard MIME type describing the format of the object data. + ContentType string `pulumi:"contentType"` + // [ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted) + Etag string `pulumi:"etag"` + // If the object expiration is configured (see [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded. + Expiration string `pulumi:"expiration"` + // Date and time at which the object is no longer cacheable. + Expires string `pulumi:"expires"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Key string `pulumi:"key"` + // Last modified date of the object in RFC1123 format (e.g., `Mon, 02 Jan 2006 15:04:05 MST`) + LastModified string `pulumi:"lastModified"` + // Map of metadata stored with the object in S3. Keys are always returned in lowercase. + Metadata map[string]string `pulumi:"metadata"` + // Indicates whether this object has an active [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds). This field is only returned if you have permission to view an object's legal hold status. + ObjectLockLegalHoldStatus string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) currently in place for this object. + ObjectLockMode string `pulumi:"objectLockMode"` + // The date and time when this object's object lock will expire. + ObjectLockRetainUntilDate string `pulumi:"objectLockRetainUntilDate"` + Range *string `pulumi:"range"` + // If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used. + ServerSideEncryption string `pulumi:"serverSideEncryption"` + // If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object. + SseKmsKeyId string `pulumi:"sseKmsKeyId"` + // [Storage class](http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) information of the object. Available for all objects except for `Standard` storage class objects. + StorageClass string `pulumi:"storageClass"` + // Map of tags assigned to the object. + Tags map[string]string `pulumi:"tags"` + // Latest version ID of the object returned. + VersionId string `pulumi:"versionId"` + // If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. + WebsiteRedirectLocation string `pulumi:"websiteRedirectLocation"` +} + +func LookupBucketObjectOutput(ctx *pulumi.Context, args LookupBucketObjectOutputArgs, opts ...pulumi.InvokeOption) LookupBucketObjectResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupBucketObjectResult, error) { + args := v.(LookupBucketObjectArgs) + r, err := LookupBucketObject(ctx, &args, opts...) + var s LookupBucketObjectResult + if r != nil { + s = *r + } + return s, err + }).(LookupBucketObjectResultOutput) +} + +// A collection of arguments for invoking getBucketObject. +type LookupBucketObjectOutputArgs struct { + // Name of the bucket to read the object from. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + // + // Deprecated: Use the aws_s3_object data source instead + Bucket pulumi.StringInput `pulumi:"bucket"` + // Full path to the object inside the bucket + Key pulumi.StringInput `pulumi:"key"` + Range pulumi.StringPtrInput `pulumi:"range"` + // Map of tags assigned to the object. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Specific version ID of the object returned (defaults to latest version) + VersionId pulumi.StringPtrInput `pulumi:"versionId"` +} + +func (LookupBucketObjectOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBucketObjectArgs)(nil)).Elem() +} + +// A collection of values returned by getBucketObject. +type LookupBucketObjectResultOutput struct{ *pulumi.OutputState } + +func (LookupBucketObjectResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBucketObjectResult)(nil)).Elem() +} + +func (o LookupBucketObjectResultOutput) ToLookupBucketObjectResultOutput() LookupBucketObjectResultOutput { + return o +} + +func (o LookupBucketObjectResultOutput) ToLookupBucketObjectResultOutputWithContext(ctx context.Context) LookupBucketObjectResultOutput { + return o +} + +// Object data (see **limitations above** to understand cases in which this field is actually available) +func (o LookupBucketObjectResultOutput) Body() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Body }).(pulumi.StringOutput) +} + +// Deprecated: Use the aws_s3_object data source instead +func (o LookupBucketObjectResultOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Bucket }).(pulumi.StringOutput) +} + +// (Optional) Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o LookupBucketObjectResultOutput) BucketKeyEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v LookupBucketObjectResult) bool { return v.BucketKeyEnabled }).(pulumi.BoolOutput) +} + +// Caching behavior along the request/reply chain. +func (o LookupBucketObjectResultOutput) CacheControl() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.CacheControl }).(pulumi.StringOutput) +} + +// Presentational information for the object. +func (o LookupBucketObjectResultOutput) ContentDisposition() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ContentDisposition }).(pulumi.StringOutput) +} + +// What content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. +func (o LookupBucketObjectResultOutput) ContentEncoding() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ContentEncoding }).(pulumi.StringOutput) +} + +// Language the content is in. +func (o LookupBucketObjectResultOutput) ContentLanguage() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ContentLanguage }).(pulumi.StringOutput) +} + +// Size of the body in bytes. +func (o LookupBucketObjectResultOutput) ContentLength() pulumi.IntOutput { + return o.ApplyT(func(v LookupBucketObjectResult) int { return v.ContentLength }).(pulumi.IntOutput) +} + +// Standard MIME type describing the format of the object data. +func (o LookupBucketObjectResultOutput) ContentType() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ContentType }).(pulumi.StringOutput) +} + +// [ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted) +func (o LookupBucketObjectResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Etag }).(pulumi.StringOutput) +} + +// If the object expiration is configured (see [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded. +func (o LookupBucketObjectResultOutput) Expiration() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Expiration }).(pulumi.StringOutput) +} + +// Date and time at which the object is no longer cacheable. +func (o LookupBucketObjectResultOutput) Expires() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Expires }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupBucketObjectResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupBucketObjectResultOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.Key }).(pulumi.StringOutput) +} + +// Last modified date of the object in RFC1123 format (e.g., `Mon, 02 Jan 2006 15:04:05 MST`) +func (o LookupBucketObjectResultOutput) LastModified() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.LastModified }).(pulumi.StringOutput) +} + +// Map of metadata stored with the object in S3. Keys are always returned in lowercase. +func (o LookupBucketObjectResultOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupBucketObjectResult) map[string]string { return v.Metadata }).(pulumi.StringMapOutput) +} + +// Indicates whether this object has an active [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds). This field is only returned if you have permission to view an object's legal hold status. +func (o LookupBucketObjectResultOutput) ObjectLockLegalHoldStatus() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ObjectLockLegalHoldStatus }).(pulumi.StringOutput) +} + +// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) currently in place for this object. +func (o LookupBucketObjectResultOutput) ObjectLockMode() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ObjectLockMode }).(pulumi.StringOutput) +} + +// The date and time when this object's object lock will expire. +func (o LookupBucketObjectResultOutput) ObjectLockRetainUntilDate() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ObjectLockRetainUntilDate }).(pulumi.StringOutput) +} + +func (o LookupBucketObjectResultOutput) Range() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupBucketObjectResult) *string { return v.Range }).(pulumi.StringPtrOutput) +} + +// If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used. +func (o LookupBucketObjectResultOutput) ServerSideEncryption() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.ServerSideEncryption }).(pulumi.StringOutput) +} + +// If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object. +func (o LookupBucketObjectResultOutput) SseKmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.SseKmsKeyId }).(pulumi.StringOutput) +} + +// [Storage class](http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) information of the object. Available for all objects except for `Standard` storage class objects. +func (o LookupBucketObjectResultOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.StorageClass }).(pulumi.StringOutput) +} + +// Map of tags assigned to the object. +func (o LookupBucketObjectResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupBucketObjectResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Latest version ID of the object returned. +func (o LookupBucketObjectResultOutput) VersionId() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.VersionId }).(pulumi.StringOutput) +} + +// If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. +func (o LookupBucketObjectResultOutput) WebsiteRedirectLocation() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketObjectResult) string { return v.WebsiteRedirectLocation }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupBucketObjectResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObjects.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObjects.go new file mode 100644 index 000000000..43557a4e2 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketObjects.go @@ -0,0 +1,172 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **NOTE:** The `s3.getBucketObjects` data source is DEPRECATED and will be removed in a future version! Use `s3.getObjects` instead, where new features and fixes will be added. +// +// > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect this provider's performance. +// +// The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket. +func GetBucketObjects(ctx *pulumi.Context, args *GetBucketObjectsArgs, opts ...pulumi.InvokeOption) (*GetBucketObjectsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetBucketObjectsResult + err := ctx.Invoke("aws:s3/getBucketObjects:getBucketObjects", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getBucketObjects. +type GetBucketObjectsArgs struct { + // Lists object keys in this S3 bucket. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + // + // Deprecated: Use the aws_s3_objects data source instead + Bucket string `pulumi:"bucket"` + // Character used to group keys (Default: none) + Delimiter *string `pulumi:"delimiter"` + // Encodes keys using this method (Default: none; besides none, only "url" can be used) + EncodingType *string `pulumi:"encodingType"` + // Boolean specifying whether to populate the owner list (Default: false) + FetchOwner *bool `pulumi:"fetchOwner"` + // Maximum object keys to return (Default: 1000) + MaxKeys *int `pulumi:"maxKeys"` + // Limits results to object keys with this prefix (Default: none) + Prefix *string `pulumi:"prefix"` + // Returns key names lexicographically after a specific object key in your bucket (Default: none; S3 lists object keys in UTF-8 character encoding in lexicographical order) + StartAfter *string `pulumi:"startAfter"` +} + +// A collection of values returned by getBucketObjects. +type GetBucketObjectsResult struct { + // Deprecated: Use the aws_s3_objects data source instead + Bucket string `pulumi:"bucket"` + // List of any keys between `prefix` and the next occurrence of `delimiter` (i.e., similar to subdirectories of the `prefix` "directory"); the list is only returned when you specify `delimiter` + CommonPrefixes []string `pulumi:"commonPrefixes"` + Delimiter *string `pulumi:"delimiter"` + EncodingType *string `pulumi:"encodingType"` + FetchOwner *bool `pulumi:"fetchOwner"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // List of strings representing object keys + Keys []string `pulumi:"keys"` + MaxKeys *int `pulumi:"maxKeys"` + // List of strings representing object owner IDs (see `fetchOwner` above) + Owners []string `pulumi:"owners"` + Prefix *string `pulumi:"prefix"` + StartAfter *string `pulumi:"startAfter"` +} + +func GetBucketObjectsOutput(ctx *pulumi.Context, args GetBucketObjectsOutputArgs, opts ...pulumi.InvokeOption) GetBucketObjectsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetBucketObjectsResult, error) { + args := v.(GetBucketObjectsArgs) + r, err := GetBucketObjects(ctx, &args, opts...) + var s GetBucketObjectsResult + if r != nil { + s = *r + } + return s, err + }).(GetBucketObjectsResultOutput) +} + +// A collection of arguments for invoking getBucketObjects. +type GetBucketObjectsOutputArgs struct { + // Lists object keys in this S3 bucket. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + // + // Deprecated: Use the aws_s3_objects data source instead + Bucket pulumi.StringInput `pulumi:"bucket"` + // Character used to group keys (Default: none) + Delimiter pulumi.StringPtrInput `pulumi:"delimiter"` + // Encodes keys using this method (Default: none; besides none, only "url" can be used) + EncodingType pulumi.StringPtrInput `pulumi:"encodingType"` + // Boolean specifying whether to populate the owner list (Default: false) + FetchOwner pulumi.BoolPtrInput `pulumi:"fetchOwner"` + // Maximum object keys to return (Default: 1000) + MaxKeys pulumi.IntPtrInput `pulumi:"maxKeys"` + // Limits results to object keys with this prefix (Default: none) + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Returns key names lexicographically after a specific object key in your bucket (Default: none; S3 lists object keys in UTF-8 character encoding in lexicographical order) + StartAfter pulumi.StringPtrInput `pulumi:"startAfter"` +} + +func (GetBucketObjectsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBucketObjectsArgs)(nil)).Elem() +} + +// A collection of values returned by getBucketObjects. +type GetBucketObjectsResultOutput struct{ *pulumi.OutputState } + +func (GetBucketObjectsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBucketObjectsResult)(nil)).Elem() +} + +func (o GetBucketObjectsResultOutput) ToGetBucketObjectsResultOutput() GetBucketObjectsResultOutput { + return o +} + +func (o GetBucketObjectsResultOutput) ToGetBucketObjectsResultOutputWithContext(ctx context.Context) GetBucketObjectsResultOutput { + return o +} + +// Deprecated: Use the aws_s3_objects data source instead +func (o GetBucketObjectsResultOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v GetBucketObjectsResult) string { return v.Bucket }).(pulumi.StringOutput) +} + +// List of any keys between `prefix` and the next occurrence of `delimiter` (i.e., similar to subdirectories of the `prefix` "directory"); the list is only returned when you specify `delimiter` +func (o GetBucketObjectsResultOutput) CommonPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetBucketObjectsResult) []string { return v.CommonPrefixes }).(pulumi.StringArrayOutput) +} + +func (o GetBucketObjectsResultOutput) Delimiter() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetBucketObjectsResult) *string { return v.Delimiter }).(pulumi.StringPtrOutput) +} + +func (o GetBucketObjectsResultOutput) EncodingType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetBucketObjectsResult) *string { return v.EncodingType }).(pulumi.StringPtrOutput) +} + +func (o GetBucketObjectsResultOutput) FetchOwner() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetBucketObjectsResult) *bool { return v.FetchOwner }).(pulumi.BoolPtrOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetBucketObjectsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetBucketObjectsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// List of strings representing object keys +func (o GetBucketObjectsResultOutput) Keys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetBucketObjectsResult) []string { return v.Keys }).(pulumi.StringArrayOutput) +} + +func (o GetBucketObjectsResultOutput) MaxKeys() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetBucketObjectsResult) *int { return v.MaxKeys }).(pulumi.IntPtrOutput) +} + +// List of strings representing object owner IDs (see `fetchOwner` above) +func (o GetBucketObjectsResultOutput) Owners() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetBucketObjectsResult) []string { return v.Owners }).(pulumi.StringArrayOutput) +} + +func (o GetBucketObjectsResultOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetBucketObjectsResult) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +func (o GetBucketObjectsResultOutput) StartAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetBucketObjectsResult) *string { return v.StartAfter }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetBucketObjectsResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketPolicy.go new file mode 100644 index 000000000..063673b24 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getBucketPolicy.go @@ -0,0 +1,123 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The bucket policy data source returns IAM policy of an S3 bucket. +// +// ## Example Usage +// +// The following example retrieves IAM policy of a specified S3 bucket. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := s3.LookupBucketPolicy(ctx, &s3.LookupBucketPolicyArgs{ +// Bucket: "example-bucket-name", +// }, nil) +// if err != nil { +// return err +// } +// ctx.Export("foo", example.Policy) +// return nil +// }) +// } +// +// ``` +func LookupBucketPolicy(ctx *pulumi.Context, args *LookupBucketPolicyArgs, opts ...pulumi.InvokeOption) (*LookupBucketPolicyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupBucketPolicyResult + err := ctx.Invoke("aws:s3/getBucketPolicy:getBucketPolicy", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getBucketPolicy. +type LookupBucketPolicyArgs struct { + // Bucket name. + Bucket string `pulumi:"bucket"` +} + +// A collection of values returned by getBucketPolicy. +type LookupBucketPolicyResult struct { + Bucket string `pulumi:"bucket"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // IAM bucket policy. + Policy string `pulumi:"policy"` +} + +func LookupBucketPolicyOutput(ctx *pulumi.Context, args LookupBucketPolicyOutputArgs, opts ...pulumi.InvokeOption) LookupBucketPolicyResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupBucketPolicyResult, error) { + args := v.(LookupBucketPolicyArgs) + r, err := LookupBucketPolicy(ctx, &args, opts...) + var s LookupBucketPolicyResult + if r != nil { + s = *r + } + return s, err + }).(LookupBucketPolicyResultOutput) +} + +// A collection of arguments for invoking getBucketPolicy. +type LookupBucketPolicyOutputArgs struct { + // Bucket name. + Bucket pulumi.StringInput `pulumi:"bucket"` +} + +func (LookupBucketPolicyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBucketPolicyArgs)(nil)).Elem() +} + +// A collection of values returned by getBucketPolicy. +type LookupBucketPolicyResultOutput struct{ *pulumi.OutputState } + +func (LookupBucketPolicyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupBucketPolicyResult)(nil)).Elem() +} + +func (o LookupBucketPolicyResultOutput) ToLookupBucketPolicyResultOutput() LookupBucketPolicyResultOutput { + return o +} + +func (o LookupBucketPolicyResultOutput) ToLookupBucketPolicyResultOutputWithContext(ctx context.Context) LookupBucketPolicyResultOutput { + return o +} + +func (o LookupBucketPolicyResultOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketPolicyResult) string { return v.Bucket }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupBucketPolicyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketPolicyResult) string { return v.Id }).(pulumi.StringOutput) +} + +// IAM bucket policy. +func (o LookupBucketPolicyResultOutput) Policy() pulumi.StringOutput { + return o.ApplyT(func(v LookupBucketPolicyResult) string { return v.Policy }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupBucketPolicyResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getCanonicalUserId.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getCanonicalUserId.go new file mode 100644 index 000000000..22a82b8c6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getCanonicalUserId.go @@ -0,0 +1,99 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The Canonical User ID data source allows access to the [canonical user ID](http://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html) +// for the effective account in which this provider is working. +// +// > **NOTE:** To use this data source, you must have the `s3:ListAllMyBuckets` permission. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := s3.GetCanonicalUserId(ctx, nil, nil) +// if err != nil { +// return err +// } +// ctx.Export("canonicalUserId", current.Id) +// return nil +// }) +// } +// +// ``` +func GetCanonicalUserId(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetCanonicalUserIdResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetCanonicalUserIdResult + err := ctx.Invoke("aws:s3/getCanonicalUserId:getCanonicalUserId", nil, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of values returned by getCanonicalUserId. +type GetCanonicalUserIdResult struct { + // Human-friendly name linked to the canonical user ID. The bucket owner's display name. **NOTE:** [This value](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html) is only included in the response in the US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), EU (Ireland), and South America (São Paulo) regions. + DisplayName string `pulumi:"displayName"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` +} + +func GetCanonicalUserIdOutput(ctx *pulumi.Context, opts ...pulumi.InvokeOption) GetCanonicalUserIdResultOutput { + return pulumi.ToOutput(0).ApplyT(func(int) (GetCanonicalUserIdResult, error) { + r, err := GetCanonicalUserId(ctx, opts...) + var s GetCanonicalUserIdResult + if r != nil { + s = *r + } + return s, err + }).(GetCanonicalUserIdResultOutput) +} + +// A collection of values returned by getCanonicalUserId. +type GetCanonicalUserIdResultOutput struct{ *pulumi.OutputState } + +func (GetCanonicalUserIdResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetCanonicalUserIdResult)(nil)).Elem() +} + +func (o GetCanonicalUserIdResultOutput) ToGetCanonicalUserIdResultOutput() GetCanonicalUserIdResultOutput { + return o +} + +func (o GetCanonicalUserIdResultOutput) ToGetCanonicalUserIdResultOutputWithContext(ctx context.Context) GetCanonicalUserIdResultOutput { + return o +} + +// Human-friendly name linked to the canonical user ID. The bucket owner's display name. **NOTE:** [This value](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceGET.html) is only included in the response in the US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), EU (Ireland), and South America (São Paulo) regions. +func (o GetCanonicalUserIdResultOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v GetCanonicalUserIdResult) string { return v.DisplayName }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetCanonicalUserIdResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetCanonicalUserIdResult) string { return v.Id }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetCanonicalUserIdResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObject.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObject.go new file mode 100644 index 000000000..86d2bc376 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObject.go @@ -0,0 +1,387 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The S3 object data source allows access to the metadata and +// _optionally_ (see below) content of an object stored inside S3 bucket. +// +// > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially downloading large amount of data which would be thrown away in favour of metadata. +// +// ## Example Usage +// +// The following example retrieves a text object (which must have a `Content-Type` +// value starting with `text/`) and uses it as the `userData` for an EC2 instance: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// bootstrapScript, err := s3.GetObject(ctx, &s3.GetObjectArgs{ +// Bucket: "ourcorp-deploy-config", +// Key: "ec2-bootstrap-script.sh", +// }, nil) +// if err != nil { +// return err +// } +// _, err = ec2.NewInstance(ctx, "example", &ec2.InstanceArgs{ +// InstanceType: pulumi.String("t2.micro"), +// Ami: pulumi.String("ami-2757f631"), +// UserData: *pulumi.String(bootstrapScript.Body), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// The following, more-complex example retrieves only the metadata for a zip +// file stored in S3, which is then used to pass the most recent `versionId` +// to AWS Lambda for use as a function implementation. More information about +// Lambda functions is available in the documentation for +// `lambda.Function`. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda" +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// lambda, err := s3.GetObject(ctx, &s3.GetObjectArgs{ +// Bucket: "ourcorp-lambda-functions", +// Key: "hello-world.zip", +// }, nil) +// if err != nil { +// return err +// } +// _, err = lambda.NewFunction(ctx, "testLambda", &lambda.FunctionArgs{ +// S3Bucket: *pulumi.String(lambda.Bucket), +// S3Key: *pulumi.String(lambda.Key), +// S3ObjectVersion: *pulumi.String(lambda.VersionId), +// Role: pulumi.Any(aws_iam_role.Iam_for_lambda.Arn), +// Handler: pulumi.String("exports.test"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func GetObject(ctx *pulumi.Context, args *GetObjectArgs, opts ...pulumi.InvokeOption) (*GetObjectResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetObjectResult + err := ctx.Invoke("aws:s3/getObject:getObject", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getObject. +type GetObjectArgs struct { + // Name of the bucket to read the object from. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + Bucket string `pulumi:"bucket"` + // To retrieve the object's checksum, this argument must be `ENABLED`. If you enable `checksumMode` and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `ENABLED` + ChecksumMode *string `pulumi:"checksumMode"` + // Full path to the object inside the bucket + Key string `pulumi:"key"` + Range *string `pulumi:"range"` + // Map of tags assigned to the object. + Tags map[string]string `pulumi:"tags"` + // Specific version ID of the object returned (defaults to latest version) + VersionId *string `pulumi:"versionId"` +} + +// A collection of values returned by getObject. +type GetObjectResult struct { + // Object data (see **limitations above** to understand cases in which this field is actually available) + Body string `pulumi:"body"` + Bucket string `pulumi:"bucket"` + // (Optional) Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled bool `pulumi:"bucketKeyEnabled"` + // Caching behavior along the request/reply chain. + CacheControl string `pulumi:"cacheControl"` + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 string `pulumi:"checksumCrc32"` + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c string `pulumi:"checksumCrc32c"` + ChecksumMode *string `pulumi:"checksumMode"` + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 string `pulumi:"checksumSha1"` + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 string `pulumi:"checksumSha256"` + // Presentational information for the object. + ContentDisposition string `pulumi:"contentDisposition"` + // What content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. + ContentEncoding string `pulumi:"contentEncoding"` + // Language the content is in. + ContentLanguage string `pulumi:"contentLanguage"` + // Size of the body in bytes. + ContentLength int `pulumi:"contentLength"` + // Standard MIME type describing the format of the object data. + ContentType string `pulumi:"contentType"` + // [ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted) + Etag string `pulumi:"etag"` + // If the object expiration is configured (see [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded. + Expiration string `pulumi:"expiration"` + // Date and time at which the object is no longer cacheable. + Expires string `pulumi:"expires"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Key string `pulumi:"key"` + // Last modified date of the object in RFC1123 format (e.g., `Mon, 02 Jan 2006 15:04:05 MST`) + LastModified string `pulumi:"lastModified"` + // Map of metadata stored with the object in S3. Keys are always returned in lowercase. + Metadata map[string]string `pulumi:"metadata"` + // Indicates whether this object has an active [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds). This field is only returned if you have permission to view an object's legal hold status. + ObjectLockLegalHoldStatus string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) currently in place for this object. + ObjectLockMode string `pulumi:"objectLockMode"` + // The date and time when this object's object lock will expire. + ObjectLockRetainUntilDate string `pulumi:"objectLockRetainUntilDate"` + Range *string `pulumi:"range"` + // If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used. + ServerSideEncryption string `pulumi:"serverSideEncryption"` + // If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object. + SseKmsKeyId string `pulumi:"sseKmsKeyId"` + // [Storage class](http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) information of the object. Available for all objects except for `Standard` storage class objects. + StorageClass string `pulumi:"storageClass"` + // Map of tags assigned to the object. + Tags map[string]string `pulumi:"tags"` + // Latest version ID of the object returned. + VersionId string `pulumi:"versionId"` + // If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. + WebsiteRedirectLocation string `pulumi:"websiteRedirectLocation"` +} + +func GetObjectOutput(ctx *pulumi.Context, args GetObjectOutputArgs, opts ...pulumi.InvokeOption) GetObjectResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetObjectResult, error) { + args := v.(GetObjectArgs) + r, err := GetObject(ctx, &args, opts...) + var s GetObjectResult + if r != nil { + s = *r + } + return s, err + }).(GetObjectResultOutput) +} + +// A collection of arguments for invoking getObject. +type GetObjectOutputArgs struct { + // Name of the bucket to read the object from. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + Bucket pulumi.StringInput `pulumi:"bucket"` + // To retrieve the object's checksum, this argument must be `ENABLED`. If you enable `checksumMode` and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `ENABLED` + ChecksumMode pulumi.StringPtrInput `pulumi:"checksumMode"` + // Full path to the object inside the bucket + Key pulumi.StringInput `pulumi:"key"` + Range pulumi.StringPtrInput `pulumi:"range"` + // Map of tags assigned to the object. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Specific version ID of the object returned (defaults to latest version) + VersionId pulumi.StringPtrInput `pulumi:"versionId"` +} + +func (GetObjectOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetObjectArgs)(nil)).Elem() +} + +// A collection of values returned by getObject. +type GetObjectResultOutput struct{ *pulumi.OutputState } + +func (GetObjectResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetObjectResult)(nil)).Elem() +} + +func (o GetObjectResultOutput) ToGetObjectResultOutput() GetObjectResultOutput { + return o +} + +func (o GetObjectResultOutput) ToGetObjectResultOutputWithContext(ctx context.Context) GetObjectResultOutput { + return o +} + +// Object data (see **limitations above** to understand cases in which this field is actually available) +func (o GetObjectResultOutput) Body() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Body }).(pulumi.StringOutput) +} + +func (o GetObjectResultOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Bucket }).(pulumi.StringOutput) +} + +// (Optional) Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o GetObjectResultOutput) BucketKeyEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetObjectResult) bool { return v.BucketKeyEnabled }).(pulumi.BoolOutput) +} + +// Caching behavior along the request/reply chain. +func (o GetObjectResultOutput) CacheControl() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.CacheControl }).(pulumi.StringOutput) +} + +// The base64-encoded, 32-bit CRC32 checksum of the object. +func (o GetObjectResultOutput) ChecksumCrc32() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ChecksumCrc32 }).(pulumi.StringOutput) +} + +// The base64-encoded, 32-bit CRC32C checksum of the object. +func (o GetObjectResultOutput) ChecksumCrc32c() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ChecksumCrc32c }).(pulumi.StringOutput) +} + +func (o GetObjectResultOutput) ChecksumMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectResult) *string { return v.ChecksumMode }).(pulumi.StringPtrOutput) +} + +// The base64-encoded, 160-bit SHA-1 digest of the object. +func (o GetObjectResultOutput) ChecksumSha1() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ChecksumSha1 }).(pulumi.StringOutput) +} + +// The base64-encoded, 256-bit SHA-256 digest of the object. +func (o GetObjectResultOutput) ChecksumSha256() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ChecksumSha256 }).(pulumi.StringOutput) +} + +// Presentational information for the object. +func (o GetObjectResultOutput) ContentDisposition() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ContentDisposition }).(pulumi.StringOutput) +} + +// What content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. +func (o GetObjectResultOutput) ContentEncoding() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ContentEncoding }).(pulumi.StringOutput) +} + +// Language the content is in. +func (o GetObjectResultOutput) ContentLanguage() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ContentLanguage }).(pulumi.StringOutput) +} + +// Size of the body in bytes. +func (o GetObjectResultOutput) ContentLength() pulumi.IntOutput { + return o.ApplyT(func(v GetObjectResult) int { return v.ContentLength }).(pulumi.IntOutput) +} + +// Standard MIME type describing the format of the object data. +func (o GetObjectResultOutput) ContentType() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ContentType }).(pulumi.StringOutput) +} + +// [ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted) +func (o GetObjectResultOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Etag }).(pulumi.StringOutput) +} + +// If the object expiration is configured (see [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded. +func (o GetObjectResultOutput) Expiration() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Expiration }).(pulumi.StringOutput) +} + +// Date and time at which the object is no longer cacheable. +func (o GetObjectResultOutput) Expires() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Expires }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetObjectResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetObjectResultOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.Key }).(pulumi.StringOutput) +} + +// Last modified date of the object in RFC1123 format (e.g., `Mon, 02 Jan 2006 15:04:05 MST`) +func (o GetObjectResultOutput) LastModified() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.LastModified }).(pulumi.StringOutput) +} + +// Map of metadata stored with the object in S3. Keys are always returned in lowercase. +func (o GetObjectResultOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v GetObjectResult) map[string]string { return v.Metadata }).(pulumi.StringMapOutput) +} + +// Indicates whether this object has an active [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds). This field is only returned if you have permission to view an object's legal hold status. +func (o GetObjectResultOutput) ObjectLockLegalHoldStatus() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ObjectLockLegalHoldStatus }).(pulumi.StringOutput) +} + +// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) currently in place for this object. +func (o GetObjectResultOutput) ObjectLockMode() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ObjectLockMode }).(pulumi.StringOutput) +} + +// The date and time when this object's object lock will expire. +func (o GetObjectResultOutput) ObjectLockRetainUntilDate() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ObjectLockRetainUntilDate }).(pulumi.StringOutput) +} + +func (o GetObjectResultOutput) Range() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectResult) *string { return v.Range }).(pulumi.StringPtrOutput) +} + +// If the object is stored using server-side encryption (KMS or Amazon S3-managed encryption key), this field includes the chosen encryption and algorithm used. +func (o GetObjectResultOutput) ServerSideEncryption() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.ServerSideEncryption }).(pulumi.StringOutput) +} + +// If present, specifies the ID of the Key Management Service (KMS) master encryption key that was used for the object. +func (o GetObjectResultOutput) SseKmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.SseKmsKeyId }).(pulumi.StringOutput) +} + +// [Storage class](http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) information of the object. Available for all objects except for `Standard` storage class objects. +func (o GetObjectResultOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.StorageClass }).(pulumi.StringOutput) +} + +// Map of tags assigned to the object. +func (o GetObjectResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v GetObjectResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Latest version ID of the object returned. +func (o GetObjectResultOutput) VersionId() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.VersionId }).(pulumi.StringOutput) +} + +// If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. +func (o GetObjectResultOutput) WebsiteRedirectLocation() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectResult) string { return v.WebsiteRedirectLocation }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetObjectResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObjects.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObjects.go new file mode 100644 index 000000000..486786ff6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/getObjects.go @@ -0,0 +1,180 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// > **NOTE on `maxKeys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. +// +// The objects data source returns keys (i.e., file names) and other metadata about objects in an S3 bucket. +func GetObjects(ctx *pulumi.Context, args *GetObjectsArgs, opts ...pulumi.InvokeOption) (*GetObjectsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetObjectsResult + err := ctx.Invoke("aws:s3/getObjects:getObjects", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getObjects. +type GetObjectsArgs struct { + // Lists object keys in this S3 bucket. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + Bucket string `pulumi:"bucket"` + // Character used to group keys (Default: none) + Delimiter *string `pulumi:"delimiter"` + // Encodes keys using this method (Default: none; besides none, only "url" can be used) + EncodingType *string `pulumi:"encodingType"` + // Boolean specifying whether to populate the owner list (Default: false) + FetchOwner *bool `pulumi:"fetchOwner"` + // Maximum object keys to return (Default: 1000) + MaxKeys *int `pulumi:"maxKeys"` + // Limits results to object keys with this prefix (Default: none) + Prefix *string `pulumi:"prefix"` + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If included, the only valid value is `requester`. + RequestPayer *string `pulumi:"requestPayer"` + // Returns key names lexicographically after a specific object key in your bucket (Default: none; S3 lists object keys in UTF-8 character encoding in lexicographical order) + StartAfter *string `pulumi:"startAfter"` +} + +// A collection of values returned by getObjects. +type GetObjectsResult struct { + Bucket string `pulumi:"bucket"` + // List of any keys between `prefix` and the next occurrence of `delimiter` (i.e., similar to subdirectories of the `prefix` "directory"); the list is only returned when you specify `delimiter` + CommonPrefixes []string `pulumi:"commonPrefixes"` + Delimiter *string `pulumi:"delimiter"` + EncodingType *string `pulumi:"encodingType"` + FetchOwner *bool `pulumi:"fetchOwner"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // List of strings representing object keys + Keys []string `pulumi:"keys"` + MaxKeys *int `pulumi:"maxKeys"` + // List of strings representing object owner IDs (see `fetchOwner` above) + Owners []string `pulumi:"owners"` + Prefix *string `pulumi:"prefix"` + // If present, indicates that the requester was successfully charged for the request. + RequestCharged string `pulumi:"requestCharged"` + RequestPayer *string `pulumi:"requestPayer"` + StartAfter *string `pulumi:"startAfter"` +} + +func GetObjectsOutput(ctx *pulumi.Context, args GetObjectsOutputArgs, opts ...pulumi.InvokeOption) GetObjectsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetObjectsResult, error) { + args := v.(GetObjectsArgs) + r, err := GetObjects(ctx, &args, opts...) + var s GetObjectsResult + if r != nil { + s = *r + } + return s, err + }).(GetObjectsResultOutput) +} + +// A collection of arguments for invoking getObjects. +type GetObjectsOutputArgs struct { + // Lists object keys in this S3 bucket. Alternatively, an [S3 access point](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) ARN can be specified + Bucket pulumi.StringInput `pulumi:"bucket"` + // Character used to group keys (Default: none) + Delimiter pulumi.StringPtrInput `pulumi:"delimiter"` + // Encodes keys using this method (Default: none; besides none, only "url" can be used) + EncodingType pulumi.StringPtrInput `pulumi:"encodingType"` + // Boolean specifying whether to populate the owner list (Default: false) + FetchOwner pulumi.BoolPtrInput `pulumi:"fetchOwner"` + // Maximum object keys to return (Default: 1000) + MaxKeys pulumi.IntPtrInput `pulumi:"maxKeys"` + // Limits results to object keys with this prefix (Default: none) + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If included, the only valid value is `requester`. + RequestPayer pulumi.StringPtrInput `pulumi:"requestPayer"` + // Returns key names lexicographically after a specific object key in your bucket (Default: none; S3 lists object keys in UTF-8 character encoding in lexicographical order) + StartAfter pulumi.StringPtrInput `pulumi:"startAfter"` +} + +func (GetObjectsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetObjectsArgs)(nil)).Elem() +} + +// A collection of values returned by getObjects. +type GetObjectsResultOutput struct{ *pulumi.OutputState } + +func (GetObjectsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetObjectsResult)(nil)).Elem() +} + +func (o GetObjectsResultOutput) ToGetObjectsResultOutput() GetObjectsResultOutput { + return o +} + +func (o GetObjectsResultOutput) ToGetObjectsResultOutputWithContext(ctx context.Context) GetObjectsResultOutput { + return o +} + +func (o GetObjectsResultOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectsResult) string { return v.Bucket }).(pulumi.StringOutput) +} + +// List of any keys between `prefix` and the next occurrence of `delimiter` (i.e., similar to subdirectories of the `prefix` "directory"); the list is only returned when you specify `delimiter` +func (o GetObjectsResultOutput) CommonPrefixes() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetObjectsResult) []string { return v.CommonPrefixes }).(pulumi.StringArrayOutput) +} + +func (o GetObjectsResultOutput) Delimiter() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *string { return v.Delimiter }).(pulumi.StringPtrOutput) +} + +func (o GetObjectsResultOutput) EncodingType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *string { return v.EncodingType }).(pulumi.StringPtrOutput) +} + +func (o GetObjectsResultOutput) FetchOwner() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *bool { return v.FetchOwner }).(pulumi.BoolPtrOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetObjectsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// List of strings representing object keys +func (o GetObjectsResultOutput) Keys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetObjectsResult) []string { return v.Keys }).(pulumi.StringArrayOutput) +} + +func (o GetObjectsResultOutput) MaxKeys() pulumi.IntPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *int { return v.MaxKeys }).(pulumi.IntPtrOutput) +} + +// List of strings representing object owner IDs (see `fetchOwner` above) +func (o GetObjectsResultOutput) Owners() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetObjectsResult) []string { return v.Owners }).(pulumi.StringArrayOutput) +} + +func (o GetObjectsResultOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// If present, indicates that the requester was successfully charged for the request. +func (o GetObjectsResultOutput) RequestCharged() pulumi.StringOutput { + return o.ApplyT(func(v GetObjectsResult) string { return v.RequestCharged }).(pulumi.StringOutput) +} + +func (o GetObjectsResultOutput) RequestPayer() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *string { return v.RequestPayer }).(pulumi.StringPtrOutput) +} + +func (o GetObjectsResultOutput) StartAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetObjectsResult) *string { return v.StartAfter }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetObjectsResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/init.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/init.go new file mode 100644 index 000000000..0dcc8fd23 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/init.go @@ -0,0 +1,219 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:s3/accessPoint:AccessPoint": + r = &AccessPoint{} + case "aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock": + r = &AccountPublicAccessBlock{} + case "aws:s3/analyticsConfiguration:AnalyticsConfiguration": + r = &AnalyticsConfiguration{} + case "aws:s3/bucket:Bucket": + r = &Bucket{} + case "aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2": + r = &BucketAccelerateConfigurationV2{} + case "aws:s3/bucketAclV2:BucketAclV2": + r = &BucketAclV2{} + case "aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2": + r = &BucketCorsConfigurationV2{} + case "aws:s3/bucketIntelligentTieringConfiguration:BucketIntelligentTieringConfiguration": + r = &BucketIntelligentTieringConfiguration{} + case "aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2": + r = &BucketLifecycleConfigurationV2{} + case "aws:s3/bucketLoggingV2:BucketLoggingV2": + r = &BucketLoggingV2{} + case "aws:s3/bucketMetric:BucketMetric": + r = &BucketMetric{} + case "aws:s3/bucketNotification:BucketNotification": + r = &BucketNotification{} + case "aws:s3/bucketObject:BucketObject": + r = &BucketObject{} + case "aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2": + r = &BucketObjectLockConfigurationV2{} + case "aws:s3/bucketObjectv2:BucketObjectv2": + r = &BucketObjectv2{} + case "aws:s3/bucketOwnershipControls:BucketOwnershipControls": + r = &BucketOwnershipControls{} + case "aws:s3/bucketPolicy:BucketPolicy": + r = &BucketPolicy{} + case "aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock": + r = &BucketPublicAccessBlock{} + case "aws:s3/bucketReplicationConfig:BucketReplicationConfig": + r = &BucketReplicationConfig{} + case "aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2": + r = &BucketRequestPaymentConfigurationV2{} + case "aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2": + r = &BucketServerSideEncryptionConfigurationV2{} + case "aws:s3/bucketV2:BucketV2": + r = &BucketV2{} + case "aws:s3/bucketVersioningV2:BucketVersioningV2": + r = &BucketVersioningV2{} + case "aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2": + r = &BucketWebsiteConfigurationV2{} + case "aws:s3/inventory:Inventory": + r = &Inventory{} + case "aws:s3/objectCopy:ObjectCopy": + r = &ObjectCopy{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws", + "s3/accessPoint", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/accountPublicAccessBlock", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/analyticsConfiguration", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucket", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketAccelerateConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketAclV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketCorsConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketIntelligentTieringConfiguration", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketLifecycleConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketLoggingV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketMetric", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketNotification", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketObject", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketObjectLockConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketObjectv2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketOwnershipControls", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketPublicAccessBlock", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketReplicationConfig", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketRequestPaymentConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketServerSideEncryptionConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketVersioningV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/bucketWebsiteConfigurationV2", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/inventory", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "s3/objectCopy", + &module{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/inventory.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/inventory.go new file mode 100644 index 000000000..91694049c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/inventory.go @@ -0,0 +1,435 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a S3 bucket [inventory configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html) resource. +// +// ## Example Usage +// ### Add inventory configuration +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// testBucketV2, err := s3.NewBucketV2(ctx, "testBucketV2", nil) +// if err != nil { +// return err +// } +// inventory, err := s3.NewBucketV2(ctx, "inventory", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewInventory(ctx, "testInventory", &s3.InventoryArgs{ +// Bucket: testBucketV2.ID(), +// IncludedObjectVersions: pulumi.String("All"), +// Schedule: &s3.InventoryScheduleArgs{ +// Frequency: pulumi.String("Daily"), +// }, +// Destination: &s3.InventoryDestinationArgs{ +// Bucket: &s3.InventoryDestinationBucketArgs{ +// Format: pulumi.String("ORC"), +// BucketArn: inventory.Arn, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Add inventory configuration with S3 object prefix +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// test, err := s3.NewBucketV2(ctx, "test", nil) +// if err != nil { +// return err +// } +// inventory, err := s3.NewBucketV2(ctx, "inventory", nil) +// if err != nil { +// return err +// } +// _, err = s3.NewInventory(ctx, "test-prefix", &s3.InventoryArgs{ +// Bucket: test.ID(), +// IncludedObjectVersions: pulumi.String("All"), +// Schedule: &s3.InventoryScheduleArgs{ +// Frequency: pulumi.String("Daily"), +// }, +// Filter: &s3.InventoryFilterArgs{ +// Prefix: pulumi.String("documents/"), +// }, +// Destination: &s3.InventoryDestinationArgs{ +// Bucket: &s3.InventoryDestinationBucketArgs{ +// Format: pulumi.String("ORC"), +// BucketArn: inventory.Arn, +// Prefix: pulumi.String("inventory"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Using `pulumi import`, import S3 bucket inventory configurations using `bucket:inventory`. For example: +// +// ```sh +// +// $ pulumi import aws:s3/inventory:Inventory my-bucket-entire-bucket my-bucket:EntireBucket +// +// ``` +type Inventory struct { + pulumi.CustomResourceState + + // Name of the source bucket that inventory lists the objects for. + Bucket pulumi.StringOutput `pulumi:"bucket"` + // Contains information about where to publish the inventory results (documented below). + Destination InventoryDestinationOutput `pulumi:"destination"` + // Specifies whether the inventory is enabled or disabled. + Enabled pulumi.BoolPtrOutput `pulumi:"enabled"` + // Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria (documented below). + Filter InventoryFilterPtrOutput `pulumi:"filter"` + // Object versions to include in the inventory list. Valid values: `All`, `Current`. + IncludedObjectVersions pulumi.StringOutput `pulumi:"includedObjectVersions"` + // Unique identifier of the inventory configuration for the bucket. + Name pulumi.StringOutput `pulumi:"name"` + // List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. + OptionalFields pulumi.StringArrayOutput `pulumi:"optionalFields"` + // Specifies the schedule for generating inventory results (documented below). + Schedule InventoryScheduleOutput `pulumi:"schedule"` +} + +// NewInventory registers a new resource with the given unique name, arguments, and options. +func NewInventory(ctx *pulumi.Context, + name string, args *InventoryArgs, opts ...pulumi.ResourceOption) (*Inventory, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Destination == nil { + return nil, errors.New("invalid value for required argument 'Destination'") + } + if args.IncludedObjectVersions == nil { + return nil, errors.New("invalid value for required argument 'IncludedObjectVersions'") + } + if args.Schedule == nil { + return nil, errors.New("invalid value for required argument 'Schedule'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Inventory + err := ctx.RegisterResource("aws:s3/inventory:Inventory", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetInventory gets an existing Inventory resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetInventory(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *InventoryState, opts ...pulumi.ResourceOption) (*Inventory, error) { + var resource Inventory + err := ctx.ReadResource("aws:s3/inventory:Inventory", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Inventory resources. +type inventoryState struct { + // Name of the source bucket that inventory lists the objects for. + Bucket *string `pulumi:"bucket"` + // Contains information about where to publish the inventory results (documented below). + Destination *InventoryDestination `pulumi:"destination"` + // Specifies whether the inventory is enabled or disabled. + Enabled *bool `pulumi:"enabled"` + // Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria (documented below). + Filter *InventoryFilter `pulumi:"filter"` + // Object versions to include in the inventory list. Valid values: `All`, `Current`. + IncludedObjectVersions *string `pulumi:"includedObjectVersions"` + // Unique identifier of the inventory configuration for the bucket. + Name *string `pulumi:"name"` + // List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. + OptionalFields []string `pulumi:"optionalFields"` + // Specifies the schedule for generating inventory results (documented below). + Schedule *InventorySchedule `pulumi:"schedule"` +} + +type InventoryState struct { + // Name of the source bucket that inventory lists the objects for. + Bucket pulumi.StringPtrInput + // Contains information about where to publish the inventory results (documented below). + Destination InventoryDestinationPtrInput + // Specifies whether the inventory is enabled or disabled. + Enabled pulumi.BoolPtrInput + // Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria (documented below). + Filter InventoryFilterPtrInput + // Object versions to include in the inventory list. Valid values: `All`, `Current`. + IncludedObjectVersions pulumi.StringPtrInput + // Unique identifier of the inventory configuration for the bucket. + Name pulumi.StringPtrInput + // List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. + OptionalFields pulumi.StringArrayInput + // Specifies the schedule for generating inventory results (documented below). + Schedule InventorySchedulePtrInput +} + +func (InventoryState) ElementType() reflect.Type { + return reflect.TypeOf((*inventoryState)(nil)).Elem() +} + +type inventoryArgs struct { + // Name of the source bucket that inventory lists the objects for. + Bucket string `pulumi:"bucket"` + // Contains information about where to publish the inventory results (documented below). + Destination InventoryDestination `pulumi:"destination"` + // Specifies whether the inventory is enabled or disabled. + Enabled *bool `pulumi:"enabled"` + // Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria (documented below). + Filter *InventoryFilter `pulumi:"filter"` + // Object versions to include in the inventory list. Valid values: `All`, `Current`. + IncludedObjectVersions string `pulumi:"includedObjectVersions"` + // Unique identifier of the inventory configuration for the bucket. + Name *string `pulumi:"name"` + // List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. + OptionalFields []string `pulumi:"optionalFields"` + // Specifies the schedule for generating inventory results (documented below). + Schedule InventorySchedule `pulumi:"schedule"` +} + +// The set of arguments for constructing a Inventory resource. +type InventoryArgs struct { + // Name of the source bucket that inventory lists the objects for. + Bucket pulumi.StringInput + // Contains information about where to publish the inventory results (documented below). + Destination InventoryDestinationInput + // Specifies whether the inventory is enabled or disabled. + Enabled pulumi.BoolPtrInput + // Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria (documented below). + Filter InventoryFilterPtrInput + // Object versions to include in the inventory list. Valid values: `All`, `Current`. + IncludedObjectVersions pulumi.StringInput + // Unique identifier of the inventory configuration for the bucket. + Name pulumi.StringPtrInput + // List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. + OptionalFields pulumi.StringArrayInput + // Specifies the schedule for generating inventory results (documented below). + Schedule InventoryScheduleInput +} + +func (InventoryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*inventoryArgs)(nil)).Elem() +} + +type InventoryInput interface { + pulumi.Input + + ToInventoryOutput() InventoryOutput + ToInventoryOutputWithContext(ctx context.Context) InventoryOutput +} + +func (*Inventory) ElementType() reflect.Type { + return reflect.TypeOf((**Inventory)(nil)).Elem() +} + +func (i *Inventory) ToInventoryOutput() InventoryOutput { + return i.ToInventoryOutputWithContext(context.Background()) +} + +func (i *Inventory) ToInventoryOutputWithContext(ctx context.Context) InventoryOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryOutput) +} + +// InventoryArrayInput is an input type that accepts InventoryArray and InventoryArrayOutput values. +// You can construct a concrete instance of `InventoryArrayInput` via: +// +// InventoryArray{ InventoryArgs{...} } +type InventoryArrayInput interface { + pulumi.Input + + ToInventoryArrayOutput() InventoryArrayOutput + ToInventoryArrayOutputWithContext(context.Context) InventoryArrayOutput +} + +type InventoryArray []InventoryInput + +func (InventoryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Inventory)(nil)).Elem() +} + +func (i InventoryArray) ToInventoryArrayOutput() InventoryArrayOutput { + return i.ToInventoryArrayOutputWithContext(context.Background()) +} + +func (i InventoryArray) ToInventoryArrayOutputWithContext(ctx context.Context) InventoryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryArrayOutput) +} + +// InventoryMapInput is an input type that accepts InventoryMap and InventoryMapOutput values. +// You can construct a concrete instance of `InventoryMapInput` via: +// +// InventoryMap{ "key": InventoryArgs{...} } +type InventoryMapInput interface { + pulumi.Input + + ToInventoryMapOutput() InventoryMapOutput + ToInventoryMapOutputWithContext(context.Context) InventoryMapOutput +} + +type InventoryMap map[string]InventoryInput + +func (InventoryMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Inventory)(nil)).Elem() +} + +func (i InventoryMap) ToInventoryMapOutput() InventoryMapOutput { + return i.ToInventoryMapOutputWithContext(context.Background()) +} + +func (i InventoryMap) ToInventoryMapOutputWithContext(ctx context.Context) InventoryMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryMapOutput) +} + +type InventoryOutput struct{ *pulumi.OutputState } + +func (InventoryOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Inventory)(nil)).Elem() +} + +func (o InventoryOutput) ToInventoryOutput() InventoryOutput { + return o +} + +func (o InventoryOutput) ToInventoryOutputWithContext(ctx context.Context) InventoryOutput { + return o +} + +// Name of the source bucket that inventory lists the objects for. +func (o InventoryOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *Inventory) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +// Contains information about where to publish the inventory results (documented below). +func (o InventoryOutput) Destination() InventoryDestinationOutput { + return o.ApplyT(func(v *Inventory) InventoryDestinationOutput { return v.Destination }).(InventoryDestinationOutput) +} + +// Specifies whether the inventory is enabled or disabled. +func (o InventoryOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Inventory) pulumi.BoolPtrOutput { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria (documented below). +func (o InventoryOutput) Filter() InventoryFilterPtrOutput { + return o.ApplyT(func(v *Inventory) InventoryFilterPtrOutput { return v.Filter }).(InventoryFilterPtrOutput) +} + +// Object versions to include in the inventory list. Valid values: `All`, `Current`. +func (o InventoryOutput) IncludedObjectVersions() pulumi.StringOutput { + return o.ApplyT(func(v *Inventory) pulumi.StringOutput { return v.IncludedObjectVersions }).(pulumi.StringOutput) +} + +// Unique identifier of the inventory configuration for the bucket. +func (o InventoryOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Inventory) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// List of optional fields that are included in the inventory results. Please refer to the S3 [documentation](https://docs.aws.amazon.com/AmazonS3/latest/API/API_InventoryConfiguration.html#AmazonS3-Type-InventoryConfiguration-OptionalFields) for more details. +func (o InventoryOutput) OptionalFields() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Inventory) pulumi.StringArrayOutput { return v.OptionalFields }).(pulumi.StringArrayOutput) +} + +// Specifies the schedule for generating inventory results (documented below). +func (o InventoryOutput) Schedule() InventoryScheduleOutput { + return o.ApplyT(func(v *Inventory) InventoryScheduleOutput { return v.Schedule }).(InventoryScheduleOutput) +} + +type InventoryArrayOutput struct{ *pulumi.OutputState } + +func (InventoryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Inventory)(nil)).Elem() +} + +func (o InventoryArrayOutput) ToInventoryArrayOutput() InventoryArrayOutput { + return o +} + +func (o InventoryArrayOutput) ToInventoryArrayOutputWithContext(ctx context.Context) InventoryArrayOutput { + return o +} + +func (o InventoryArrayOutput) Index(i pulumi.IntInput) InventoryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Inventory { + return vs[0].([]*Inventory)[vs[1].(int)] + }).(InventoryOutput) +} + +type InventoryMapOutput struct{ *pulumi.OutputState } + +func (InventoryMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Inventory)(nil)).Elem() +} + +func (o InventoryMapOutput) ToInventoryMapOutput() InventoryMapOutput { + return o +} + +func (o InventoryMapOutput) ToInventoryMapOutputWithContext(ctx context.Context) InventoryMapOutput { + return o +} + +func (o InventoryMapOutput) MapIndex(k pulumi.StringInput) InventoryOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Inventory { + return vs[0].(map[string]*Inventory)[vs[1].(string)] + }).(InventoryOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*InventoryInput)(nil)).Elem(), &Inventory{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryArrayInput)(nil)).Elem(), InventoryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryMapInput)(nil)).Elem(), InventoryMap{}) + pulumi.RegisterOutputType(InventoryOutput{}) + pulumi.RegisterOutputType(InventoryArrayOutput{}) + pulumi.RegisterOutputType(InventoryMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/objectCopy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/objectCopy.go new file mode 100644 index 000000000..895f898a6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/objectCopy.go @@ -0,0 +1,987 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a resource for copying an S3 object. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := s3.NewObjectCopy(ctx, "test", &s3.ObjectCopyArgs{ +// Bucket: pulumi.String("destination_bucket"), +// Grants: s3.ObjectCopyGrantArray{ +// &s3.ObjectCopyGrantArgs{ +// Permissions: pulumi.StringArray{ +// pulumi.String("READ"), +// }, +// Type: pulumi.String("Group"), +// Uri: pulumi.String("http://acs.amazonaws.com/groups/global/AllUsers"), +// }, +// }, +// Key: pulumi.String("destination_key"), +// Source: pulumi.String("source_bucket/source_key"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type ObjectCopy struct { + pulumi.CustomResourceState + + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Conflicts with `grant`. + Acl pulumi.StringOutput `pulumi:"acl"` + // Name of the bucket to put the file in. + Bucket pulumi.StringOutput `pulumi:"bucket"` + BucketKeyEnabled pulumi.BoolOutput `pulumi:"bucketKeyEnabled"` + // Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringOutput `pulumi:"cacheControl"` + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm pulumi.StringPtrOutput `pulumi:"checksumAlgorithm"` + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 pulumi.StringOutput `pulumi:"checksumCrc32"` + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c pulumi.StringOutput `pulumi:"checksumCrc32c"` + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 pulumi.StringOutput `pulumi:"checksumSha1"` + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 pulumi.StringOutput `pulumi:"checksumSha256"` + // Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringOutput `pulumi:"contentDisposition"` + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringOutput `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringOutput `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., `application/octet-stream`. All Valid MIME Types are valid for this input. + ContentType pulumi.StringOutput `pulumi:"contentType"` + // Copies the object if its entity tag (ETag) matches the specified tag. + CopyIfMatch pulumi.StringPtrOutput `pulumi:"copyIfMatch"` + // Copies the object if it has been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfModifiedSince pulumi.StringPtrOutput `pulumi:"copyIfModifiedSince"` + // Copies the object if its entity tag (ETag) is different than the specified ETag. + CopyIfNoneMatch pulumi.StringPtrOutput `pulumi:"copyIfNoneMatch"` + // Copies the object if it hasn't been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfUnmodifiedSince pulumi.StringPtrOutput `pulumi:"copyIfUnmodifiedSince"` + // Specifies the algorithm to use to when encrypting the object (for example, AES256). + CustomerAlgorithm pulumi.StringOutput `pulumi:"customerAlgorithm"` + // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. + CustomerKey pulumi.StringPtrOutput `pulumi:"customerKey"` + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + CustomerKeyMd5 pulumi.StringOutput `pulumi:"customerKeyMd5"` + // ETag generated for the object (an MD5 sum of the object content). For plaintext objects or objects encrypted with an AWS-managed key, the hash is an MD5 digest of the object data. For objects encrypted with a KMS key or objects created by either the Multipart Upload or Part Copy operation, the hash is not an MD5 digest, regardless of the method of encryption. More information on possible values can be found on [Common Response Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html). + Etag pulumi.StringOutput `pulumi:"etag"` + // Account id of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner pulumi.StringPtrOutput `pulumi:"expectedBucketOwner"` + // Account id of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedSourceBucketOwner pulumi.StringPtrOutput `pulumi:"expectedSourceBucketOwner"` + // If the object expiration is configured, this attribute will be set. + Expiration pulumi.StringOutput `pulumi:"expiration"` + // Date and time at which the object is no longer cacheable, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + Expires pulumi.StringPtrOutput `pulumi:"expires"` + // Allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // Configuration block for header grants. Documented below. Conflicts with `acl`. + Grants ObjectCopyGrantArrayOutput `pulumi:"grants"` + // Name of the object once it is in the bucket. + Key pulumi.StringOutput `pulumi:"key"` + // Specifies the AWS KMS Encryption Context to use for object encryption. The value is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. + KmsEncryptionContext pulumi.StringOutput `pulumi:"kmsEncryptionContext"` + // Specifies the AWS KMS Key ARN to use for object encryption. This value is a fully qualified **ARN** of the KMS Key. If using `kms.Key`, use the exported `arn` attribute: `kmsKeyId = aws_kms_key.foo.arn` + KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"` + // Returns the date that the object was last modified, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + LastModified pulumi.StringOutput `pulumi:"lastModified"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapOutput `pulumi:"metadata"` + // Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. Valid values are `COPY` and `REPLACE`. + MetadataDirective pulumi.StringPtrOutput `pulumi:"metadataDirective"` + // The [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringOutput `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringOutput `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringOutput `pulumi:"objectLockRetainUntilDate"` + // If present, indicates that the requester was successfully charged for the request. + RequestCharged pulumi.BoolOutput `pulumi:"requestCharged"` + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) in the Amazon S3 Developer Guide. If included, the only valid value is `requester`. + RequestPayer pulumi.StringPtrOutput `pulumi:"requestPayer"` + // Specifies server-side encryption of the object in S3. Valid values are `AES256` and `aws:kms`. + ServerSideEncryption pulumi.StringOutput `pulumi:"serverSideEncryption"` + // Specifies the source object for the copy operation. You specify the value in one of two formats. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (`/`). For example, `testbucket/test1.json`. For objects accessed through access points, specify the ARN of the object as accessed through the access point, in the format `arn:aws:s3:::accesspoint//object/`. For example, `arn:aws:s3:us-west-2:9999912999:accesspoint/my-access-point/object/testbucket/test1.json`. + // + // The following arguments are optional: + Source pulumi.StringOutput `pulumi:"source"` + // Specifies the algorithm to use when decrypting the source object (for example, AES256). + SourceCustomerAlgorithm pulumi.StringPtrOutput `pulumi:"sourceCustomerAlgorithm"` + // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created. + SourceCustomerKey pulumi.StringPtrOutput `pulumi:"sourceCustomerKey"` + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + SourceCustomerKeyMd5 pulumi.StringPtrOutput `pulumi:"sourceCustomerKeyMd5"` + // Version of the copied object in the source bucket. + SourceVersionId pulumi.StringOutput `pulumi:"sourceVersionId"` + // Specifies the desired [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#AmazonS3-CopyObject-request-header-StorageClass) for the object. Defaults to `STANDARD`. + StorageClass pulumi.StringOutput `pulumi:"storageClass"` + // Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request. Valid values are `COPY` and `REPLACE`. + TaggingDirective pulumi.StringPtrOutput `pulumi:"taggingDirective"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Version ID of the newly created copy. + VersionId pulumi.StringOutput `pulumi:"versionId"` + // Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + WebsiteRedirect pulumi.StringOutput `pulumi:"websiteRedirect"` +} + +// NewObjectCopy registers a new resource with the given unique name, arguments, and options. +func NewObjectCopy(ctx *pulumi.Context, + name string, args *ObjectCopyArgs, opts ...pulumi.ResourceOption) (*ObjectCopy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Bucket == nil { + return nil, errors.New("invalid value for required argument 'Bucket'") + } + if args.Key == nil { + return nil, errors.New("invalid value for required argument 'Key'") + } + if args.Source == nil { + return nil, errors.New("invalid value for required argument 'Source'") + } + if args.CustomerKey != nil { + args.CustomerKey = pulumi.ToSecret(args.CustomerKey).(pulumi.StringPtrInput) + } + if args.KmsEncryptionContext != nil { + args.KmsEncryptionContext = pulumi.ToSecret(args.KmsEncryptionContext).(pulumi.StringPtrInput) + } + if args.KmsKeyId != nil { + args.KmsKeyId = pulumi.ToSecret(args.KmsKeyId).(pulumi.StringPtrInput) + } + if args.SourceCustomerKey != nil { + args.SourceCustomerKey = pulumi.ToSecret(args.SourceCustomerKey).(pulumi.StringPtrInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "customerKey", + "kmsEncryptionContext", + "kmsKeyId", + "sourceCustomerKey", + "tagsAll", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource ObjectCopy + err := ctx.RegisterResource("aws:s3/objectCopy:ObjectCopy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetObjectCopy gets an existing ObjectCopy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetObjectCopy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ObjectCopyState, opts ...pulumi.ResourceOption) (*ObjectCopy, error) { + var resource ObjectCopy + err := ctx.ReadResource("aws:s3/objectCopy:ObjectCopy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ObjectCopy resources. +type objectCopyState struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Conflicts with `grant`. + Acl *string `pulumi:"acl"` + // Name of the bucket to put the file in. + Bucket *string `pulumi:"bucket"` + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` + // Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl *string `pulumi:"cacheControl"` + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm *string `pulumi:"checksumAlgorithm"` + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 *string `pulumi:"checksumCrc32"` + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c *string `pulumi:"checksumCrc32c"` + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 *string `pulumi:"checksumSha1"` + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 *string `pulumi:"checksumSha256"` + // Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition *string `pulumi:"contentDisposition"` + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding *string `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage *string `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., `application/octet-stream`. All Valid MIME Types are valid for this input. + ContentType *string `pulumi:"contentType"` + // Copies the object if its entity tag (ETag) matches the specified tag. + CopyIfMatch *string `pulumi:"copyIfMatch"` + // Copies the object if it has been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfModifiedSince *string `pulumi:"copyIfModifiedSince"` + // Copies the object if its entity tag (ETag) is different than the specified ETag. + CopyIfNoneMatch *string `pulumi:"copyIfNoneMatch"` + // Copies the object if it hasn't been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfUnmodifiedSince *string `pulumi:"copyIfUnmodifiedSince"` + // Specifies the algorithm to use to when encrypting the object (for example, AES256). + CustomerAlgorithm *string `pulumi:"customerAlgorithm"` + // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. + CustomerKey *string `pulumi:"customerKey"` + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + CustomerKeyMd5 *string `pulumi:"customerKeyMd5"` + // ETag generated for the object (an MD5 sum of the object content). For plaintext objects or objects encrypted with an AWS-managed key, the hash is an MD5 digest of the object data. For objects encrypted with a KMS key or objects created by either the Multipart Upload or Part Copy operation, the hash is not an MD5 digest, regardless of the method of encryption. More information on possible values can be found on [Common Response Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html). + Etag *string `pulumi:"etag"` + // Account id of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Account id of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedSourceBucketOwner *string `pulumi:"expectedSourceBucketOwner"` + // If the object expiration is configured, this attribute will be set. + Expiration *string `pulumi:"expiration"` + // Date and time at which the object is no longer cacheable, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + Expires *string `pulumi:"expires"` + // Allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy *bool `pulumi:"forceDestroy"` + // Configuration block for header grants. Documented below. Conflicts with `acl`. + Grants []ObjectCopyGrant `pulumi:"grants"` + // Name of the object once it is in the bucket. + Key *string `pulumi:"key"` + // Specifies the AWS KMS Encryption Context to use for object encryption. The value is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. + KmsEncryptionContext *string `pulumi:"kmsEncryptionContext"` + // Specifies the AWS KMS Key ARN to use for object encryption. This value is a fully qualified **ARN** of the KMS Key. If using `kms.Key`, use the exported `arn` attribute: `kmsKeyId = aws_kms_key.foo.arn` + KmsKeyId *string `pulumi:"kmsKeyId"` + // Returns the date that the object was last modified, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + LastModified *string `pulumi:"lastModified"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata map[string]string `pulumi:"metadata"` + // Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. Valid values are `COPY` and `REPLACE`. + MetadataDirective *string `pulumi:"metadataDirective"` + // The [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode *string `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"` + // If present, indicates that the requester was successfully charged for the request. + RequestCharged *bool `pulumi:"requestCharged"` + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) in the Amazon S3 Developer Guide. If included, the only valid value is `requester`. + RequestPayer *string `pulumi:"requestPayer"` + // Specifies server-side encryption of the object in S3. Valid values are `AES256` and `aws:kms`. + ServerSideEncryption *string `pulumi:"serverSideEncryption"` + // Specifies the source object for the copy operation. You specify the value in one of two formats. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (`/`). For example, `testbucket/test1.json`. For objects accessed through access points, specify the ARN of the object as accessed through the access point, in the format `arn:aws:s3:::accesspoint//object/`. For example, `arn:aws:s3:us-west-2:9999912999:accesspoint/my-access-point/object/testbucket/test1.json`. + // + // The following arguments are optional: + Source *string `pulumi:"source"` + // Specifies the algorithm to use when decrypting the source object (for example, AES256). + SourceCustomerAlgorithm *string `pulumi:"sourceCustomerAlgorithm"` + // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created. + SourceCustomerKey *string `pulumi:"sourceCustomerKey"` + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + SourceCustomerKeyMd5 *string `pulumi:"sourceCustomerKeyMd5"` + // Version of the copied object in the source bucket. + SourceVersionId *string `pulumi:"sourceVersionId"` + // Specifies the desired [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#AmazonS3-CopyObject-request-header-StorageClass) for the object. Defaults to `STANDARD`. + StorageClass *string `pulumi:"storageClass"` + // Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request. Valid values are `COPY` and `REPLACE`. + TaggingDirective *string `pulumi:"taggingDirective"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll map[string]string `pulumi:"tagsAll"` + // Version ID of the newly created copy. + VersionId *string `pulumi:"versionId"` + // Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + WebsiteRedirect *string `pulumi:"websiteRedirect"` +} + +type ObjectCopyState struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Conflicts with `grant`. + Acl pulumi.StringPtrInput + // Name of the bucket to put the file in. + Bucket pulumi.StringPtrInput + BucketKeyEnabled pulumi.BoolPtrInput + // Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrInput + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm pulumi.StringPtrInput + // The base64-encoded, 32-bit CRC32 checksum of the object. + ChecksumCrc32 pulumi.StringPtrInput + // The base64-encoded, 32-bit CRC32C checksum of the object. + ChecksumCrc32c pulumi.StringPtrInput + // The base64-encoded, 160-bit SHA-1 digest of the object. + ChecksumSha1 pulumi.StringPtrInput + // The base64-encoded, 256-bit SHA-256 digest of the object. + ChecksumSha256 pulumi.StringPtrInput + // Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrInput + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrInput + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrInput + // Standard MIME type describing the format of the object data, e.g., `application/octet-stream`. All Valid MIME Types are valid for this input. + ContentType pulumi.StringPtrInput + // Copies the object if its entity tag (ETag) matches the specified tag. + CopyIfMatch pulumi.StringPtrInput + // Copies the object if it has been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfModifiedSince pulumi.StringPtrInput + // Copies the object if its entity tag (ETag) is different than the specified ETag. + CopyIfNoneMatch pulumi.StringPtrInput + // Copies the object if it hasn't been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfUnmodifiedSince pulumi.StringPtrInput + // Specifies the algorithm to use to when encrypting the object (for example, AES256). + CustomerAlgorithm pulumi.StringPtrInput + // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. + CustomerKey pulumi.StringPtrInput + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + CustomerKeyMd5 pulumi.StringPtrInput + // ETag generated for the object (an MD5 sum of the object content). For plaintext objects or objects encrypted with an AWS-managed key, the hash is an MD5 digest of the object data. For objects encrypted with a KMS key or objects created by either the Multipart Upload or Part Copy operation, the hash is not an MD5 digest, regardless of the method of encryption. More information on possible values can be found on [Common Response Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html). + Etag pulumi.StringPtrInput + // Account id of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner pulumi.StringPtrInput + // Account id of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedSourceBucketOwner pulumi.StringPtrInput + // If the object expiration is configured, this attribute will be set. + Expiration pulumi.StringPtrInput + // Date and time at which the object is no longer cacheable, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + Expires pulumi.StringPtrInput + // Allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrInput + // Configuration block for header grants. Documented below. Conflicts with `acl`. + Grants ObjectCopyGrantArrayInput + // Name of the object once it is in the bucket. + Key pulumi.StringPtrInput + // Specifies the AWS KMS Encryption Context to use for object encryption. The value is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. + KmsEncryptionContext pulumi.StringPtrInput + // Specifies the AWS KMS Key ARN to use for object encryption. This value is a fully qualified **ARN** of the KMS Key. If using `kms.Key`, use the exported `arn` attribute: `kmsKeyId = aws_kms_key.foo.arn` + KmsKeyId pulumi.StringPtrInput + // Returns the date that the object was last modified, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + LastModified pulumi.StringPtrInput + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapInput + // Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. Valid values are `COPY` and `REPLACE`. + MetadataDirective pulumi.StringPtrInput + // The [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrInput + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrInput + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrInput + // If present, indicates that the requester was successfully charged for the request. + RequestCharged pulumi.BoolPtrInput + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) in the Amazon S3 Developer Guide. If included, the only valid value is `requester`. + RequestPayer pulumi.StringPtrInput + // Specifies server-side encryption of the object in S3. Valid values are `AES256` and `aws:kms`. + ServerSideEncryption pulumi.StringPtrInput + // Specifies the source object for the copy operation. You specify the value in one of two formats. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (`/`). For example, `testbucket/test1.json`. For objects accessed through access points, specify the ARN of the object as accessed through the access point, in the format `arn:aws:s3:::accesspoint//object/`. For example, `arn:aws:s3:us-west-2:9999912999:accesspoint/my-access-point/object/testbucket/test1.json`. + // + // The following arguments are optional: + Source pulumi.StringPtrInput + // Specifies the algorithm to use when decrypting the source object (for example, AES256). + SourceCustomerAlgorithm pulumi.StringPtrInput + // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created. + SourceCustomerKey pulumi.StringPtrInput + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + SourceCustomerKeyMd5 pulumi.StringPtrInput + // Version of the copied object in the source bucket. + SourceVersionId pulumi.StringPtrInput + // Specifies the desired [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#AmazonS3-CopyObject-request-header-StorageClass) for the object. Defaults to `STANDARD`. + StorageClass pulumi.StringPtrInput + // Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request. Valid values are `COPY` and `REPLACE`. + TaggingDirective pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + // + // Deprecated: Please use `tags` instead. + TagsAll pulumi.StringMapInput + // Version ID of the newly created copy. + VersionId pulumi.StringPtrInput + // Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + WebsiteRedirect pulumi.StringPtrInput +} + +func (ObjectCopyState) ElementType() reflect.Type { + return reflect.TypeOf((*objectCopyState)(nil)).Elem() +} + +type objectCopyArgs struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Conflicts with `grant`. + Acl *string `pulumi:"acl"` + // Name of the bucket to put the file in. + Bucket string `pulumi:"bucket"` + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` + // Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl *string `pulumi:"cacheControl"` + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm *string `pulumi:"checksumAlgorithm"` + // Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition *string `pulumi:"contentDisposition"` + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding *string `pulumi:"contentEncoding"` + // Language the content is in e.g., en-US or en-GB. + ContentLanguage *string `pulumi:"contentLanguage"` + // Standard MIME type describing the format of the object data, e.g., `application/octet-stream`. All Valid MIME Types are valid for this input. + ContentType *string `pulumi:"contentType"` + // Copies the object if its entity tag (ETag) matches the specified tag. + CopyIfMatch *string `pulumi:"copyIfMatch"` + // Copies the object if it has been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfModifiedSince *string `pulumi:"copyIfModifiedSince"` + // Copies the object if its entity tag (ETag) is different than the specified ETag. + CopyIfNoneMatch *string `pulumi:"copyIfNoneMatch"` + // Copies the object if it hasn't been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfUnmodifiedSince *string `pulumi:"copyIfUnmodifiedSince"` + // Specifies the algorithm to use to when encrypting the object (for example, AES256). + CustomerAlgorithm *string `pulumi:"customerAlgorithm"` + // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. + CustomerKey *string `pulumi:"customerKey"` + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + CustomerKeyMd5 *string `pulumi:"customerKeyMd5"` + // Account id of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner *string `pulumi:"expectedBucketOwner"` + // Account id of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedSourceBucketOwner *string `pulumi:"expectedSourceBucketOwner"` + // Date and time at which the object is no longer cacheable, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + Expires *string `pulumi:"expires"` + // Allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy *bool `pulumi:"forceDestroy"` + // Configuration block for header grants. Documented below. Conflicts with `acl`. + Grants []ObjectCopyGrant `pulumi:"grants"` + // Name of the object once it is in the bucket. + Key string `pulumi:"key"` + // Specifies the AWS KMS Encryption Context to use for object encryption. The value is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. + KmsEncryptionContext *string `pulumi:"kmsEncryptionContext"` + // Specifies the AWS KMS Key ARN to use for object encryption. This value is a fully qualified **ARN** of the KMS Key. If using `kms.Key`, use the exported `arn` attribute: `kmsKeyId = aws_kms_key.foo.arn` + KmsKeyId *string `pulumi:"kmsKeyId"` + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata map[string]string `pulumi:"metadata"` + // Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. Valid values are `COPY` and `REPLACE`. + MetadataDirective *string `pulumi:"metadataDirective"` + // The [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus *string `pulumi:"objectLockLegalHoldStatus"` + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode *string `pulumi:"objectLockMode"` + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate *string `pulumi:"objectLockRetainUntilDate"` + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) in the Amazon S3 Developer Guide. If included, the only valid value is `requester`. + RequestPayer *string `pulumi:"requestPayer"` + // Specifies server-side encryption of the object in S3. Valid values are `AES256` and `aws:kms`. + ServerSideEncryption *string `pulumi:"serverSideEncryption"` + // Specifies the source object for the copy operation. You specify the value in one of two formats. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (`/`). For example, `testbucket/test1.json`. For objects accessed through access points, specify the ARN of the object as accessed through the access point, in the format `arn:aws:s3:::accesspoint//object/`. For example, `arn:aws:s3:us-west-2:9999912999:accesspoint/my-access-point/object/testbucket/test1.json`. + // + // The following arguments are optional: + Source string `pulumi:"source"` + // Specifies the algorithm to use when decrypting the source object (for example, AES256). + SourceCustomerAlgorithm *string `pulumi:"sourceCustomerAlgorithm"` + // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created. + SourceCustomerKey *string `pulumi:"sourceCustomerKey"` + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + SourceCustomerKeyMd5 *string `pulumi:"sourceCustomerKeyMd5"` + // Specifies the desired [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#AmazonS3-CopyObject-request-header-StorageClass) for the object. Defaults to `STANDARD`. + StorageClass *string `pulumi:"storageClass"` + // Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request. Valid values are `COPY` and `REPLACE`. + TaggingDirective *string `pulumi:"taggingDirective"` + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + WebsiteRedirect *string `pulumi:"websiteRedirect"` +} + +// The set of arguments for constructing a ObjectCopy resource. +type ObjectCopyArgs struct { + // [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Conflicts with `grant`. + Acl pulumi.StringPtrInput + // Name of the bucket to put the file in. + Bucket pulumi.StringInput + BucketKeyEnabled pulumi.BoolPtrInput + // Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. + CacheControl pulumi.StringPtrInput + // Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. + ChecksumAlgorithm pulumi.StringPtrInput + // Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. + ContentDisposition pulumi.StringPtrInput + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. + ContentEncoding pulumi.StringPtrInput + // Language the content is in e.g., en-US or en-GB. + ContentLanguage pulumi.StringPtrInput + // Standard MIME type describing the format of the object data, e.g., `application/octet-stream`. All Valid MIME Types are valid for this input. + ContentType pulumi.StringPtrInput + // Copies the object if its entity tag (ETag) matches the specified tag. + CopyIfMatch pulumi.StringPtrInput + // Copies the object if it has been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfModifiedSince pulumi.StringPtrInput + // Copies the object if its entity tag (ETag) is different than the specified ETag. + CopyIfNoneMatch pulumi.StringPtrInput + // Copies the object if it hasn't been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + CopyIfUnmodifiedSince pulumi.StringPtrInput + // Specifies the algorithm to use to when encrypting the object (for example, AES256). + CustomerAlgorithm pulumi.StringPtrInput + // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. + CustomerKey pulumi.StringPtrInput + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + CustomerKeyMd5 pulumi.StringPtrInput + // Account id of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedBucketOwner pulumi.StringPtrInput + // Account id of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. + ExpectedSourceBucketOwner pulumi.StringPtrInput + // Date and time at which the object is no longer cacheable, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). + Expires pulumi.StringPtrInput + // Allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. + ForceDestroy pulumi.BoolPtrInput + // Configuration block for header grants. Documented below. Conflicts with `acl`. + Grants ObjectCopyGrantArrayInput + // Name of the object once it is in the bucket. + Key pulumi.StringInput + // Specifies the AWS KMS Encryption Context to use for object encryption. The value is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. + KmsEncryptionContext pulumi.StringPtrInput + // Specifies the AWS KMS Key ARN to use for object encryption. This value is a fully qualified **ARN** of the KMS Key. If using `kms.Key`, use the exported `arn` attribute: `kmsKeyId = aws_kms_key.foo.arn` + KmsKeyId pulumi.StringPtrInput + // Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). + Metadata pulumi.StringMapInput + // Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. Valid values are `COPY` and `REPLACE`. + MetadataDirective pulumi.StringPtrInput + // The [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. + ObjectLockLegalHoldStatus pulumi.StringPtrInput + // Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. + ObjectLockMode pulumi.StringPtrInput + // Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). + ObjectLockRetainUntilDate pulumi.StringPtrInput + // Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) in the Amazon S3 Developer Guide. If included, the only valid value is `requester`. + RequestPayer pulumi.StringPtrInput + // Specifies server-side encryption of the object in S3. Valid values are `AES256` and `aws:kms`. + ServerSideEncryption pulumi.StringPtrInput + // Specifies the source object for the copy operation. You specify the value in one of two formats. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (`/`). For example, `testbucket/test1.json`. For objects accessed through access points, specify the ARN of the object as accessed through the access point, in the format `arn:aws:s3:::accesspoint//object/`. For example, `arn:aws:s3:us-west-2:9999912999:accesspoint/my-access-point/object/testbucket/test1.json`. + // + // The following arguments are optional: + Source pulumi.StringInput + // Specifies the algorithm to use when decrypting the source object (for example, AES256). + SourceCustomerAlgorithm pulumi.StringPtrInput + // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created. + SourceCustomerKey pulumi.StringPtrInput + // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. + SourceCustomerKeyMd5 pulumi.StringPtrInput + // Specifies the desired [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#AmazonS3-CopyObject-request-header-StorageClass) for the object. Defaults to `STANDARD`. + StorageClass pulumi.StringPtrInput + // Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request. Valid values are `COPY` and `REPLACE`. + TaggingDirective pulumi.StringPtrInput + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + WebsiteRedirect pulumi.StringPtrInput +} + +func (ObjectCopyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*objectCopyArgs)(nil)).Elem() +} + +type ObjectCopyInput interface { + pulumi.Input + + ToObjectCopyOutput() ObjectCopyOutput + ToObjectCopyOutputWithContext(ctx context.Context) ObjectCopyOutput +} + +func (*ObjectCopy) ElementType() reflect.Type { + return reflect.TypeOf((**ObjectCopy)(nil)).Elem() +} + +func (i *ObjectCopy) ToObjectCopyOutput() ObjectCopyOutput { + return i.ToObjectCopyOutputWithContext(context.Background()) +} + +func (i *ObjectCopy) ToObjectCopyOutputWithContext(ctx context.Context) ObjectCopyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectCopyOutput) +} + +// ObjectCopyArrayInput is an input type that accepts ObjectCopyArray and ObjectCopyArrayOutput values. +// You can construct a concrete instance of `ObjectCopyArrayInput` via: +// +// ObjectCopyArray{ ObjectCopyArgs{...} } +type ObjectCopyArrayInput interface { + pulumi.Input + + ToObjectCopyArrayOutput() ObjectCopyArrayOutput + ToObjectCopyArrayOutputWithContext(context.Context) ObjectCopyArrayOutput +} + +type ObjectCopyArray []ObjectCopyInput + +func (ObjectCopyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ObjectCopy)(nil)).Elem() +} + +func (i ObjectCopyArray) ToObjectCopyArrayOutput() ObjectCopyArrayOutput { + return i.ToObjectCopyArrayOutputWithContext(context.Background()) +} + +func (i ObjectCopyArray) ToObjectCopyArrayOutputWithContext(ctx context.Context) ObjectCopyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectCopyArrayOutput) +} + +// ObjectCopyMapInput is an input type that accepts ObjectCopyMap and ObjectCopyMapOutput values. +// You can construct a concrete instance of `ObjectCopyMapInput` via: +// +// ObjectCopyMap{ "key": ObjectCopyArgs{...} } +type ObjectCopyMapInput interface { + pulumi.Input + + ToObjectCopyMapOutput() ObjectCopyMapOutput + ToObjectCopyMapOutputWithContext(context.Context) ObjectCopyMapOutput +} + +type ObjectCopyMap map[string]ObjectCopyInput + +func (ObjectCopyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ObjectCopy)(nil)).Elem() +} + +func (i ObjectCopyMap) ToObjectCopyMapOutput() ObjectCopyMapOutput { + return i.ToObjectCopyMapOutputWithContext(context.Background()) +} + +func (i ObjectCopyMap) ToObjectCopyMapOutputWithContext(ctx context.Context) ObjectCopyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectCopyMapOutput) +} + +type ObjectCopyOutput struct{ *pulumi.OutputState } + +func (ObjectCopyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ObjectCopy)(nil)).Elem() +} + +func (o ObjectCopyOutput) ToObjectCopyOutput() ObjectCopyOutput { + return o +} + +func (o ObjectCopyOutput) ToObjectCopyOutputWithContext(ctx context.Context) ObjectCopyOutput { + return o +} + +// [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `authenticated-read`, `aws-exec-read`, `bucket-owner-read`, and `bucket-owner-full-control`. Conflicts with `grant`. +func (o ObjectCopyOutput) Acl() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.Acl }).(pulumi.StringOutput) +} + +// Name of the bucket to put the file in. +func (o ObjectCopyOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.Bucket }).(pulumi.StringOutput) +} + +func (o ObjectCopyOutput) BucketKeyEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.BoolOutput { return v.BucketKeyEnabled }).(pulumi.BoolOutput) +} + +// Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. +func (o ObjectCopyOutput) CacheControl() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.CacheControl }).(pulumi.StringOutput) +} + +// Indicates the algorithm used to create the checksum for the object. If a value is specified and the object is encrypted with KMS, you must have permission to use the `kms:Decrypt` action. Valid values: `CRC32`, `CRC32C`, `SHA1`, `SHA256`. +func (o ObjectCopyOutput) ChecksumAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.ChecksumAlgorithm }).(pulumi.StringPtrOutput) +} + +// The base64-encoded, 32-bit CRC32 checksum of the object. +func (o ObjectCopyOutput) ChecksumCrc32() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ChecksumCrc32 }).(pulumi.StringOutput) +} + +// The base64-encoded, 32-bit CRC32C checksum of the object. +func (o ObjectCopyOutput) ChecksumCrc32c() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ChecksumCrc32c }).(pulumi.StringOutput) +} + +// The base64-encoded, 160-bit SHA-1 digest of the object. +func (o ObjectCopyOutput) ChecksumSha1() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ChecksumSha1 }).(pulumi.StringOutput) +} + +// The base64-encoded, 256-bit SHA-256 digest of the object. +func (o ObjectCopyOutput) ChecksumSha256() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ChecksumSha256 }).(pulumi.StringOutput) +} + +// Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. +func (o ObjectCopyOutput) ContentDisposition() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ContentDisposition }).(pulumi.StringOutput) +} + +// Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. +func (o ObjectCopyOutput) ContentEncoding() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ContentEncoding }).(pulumi.StringOutput) +} + +// Language the content is in e.g., en-US or en-GB. +func (o ObjectCopyOutput) ContentLanguage() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ContentLanguage }).(pulumi.StringOutput) +} + +// Standard MIME type describing the format of the object data, e.g., `application/octet-stream`. All Valid MIME Types are valid for this input. +func (o ObjectCopyOutput) ContentType() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ContentType }).(pulumi.StringOutput) +} + +// Copies the object if its entity tag (ETag) matches the specified tag. +func (o ObjectCopyOutput) CopyIfMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.CopyIfMatch }).(pulumi.StringPtrOutput) +} + +// Copies the object if it has been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). +func (o ObjectCopyOutput) CopyIfModifiedSince() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.CopyIfModifiedSince }).(pulumi.StringPtrOutput) +} + +// Copies the object if its entity tag (ETag) is different than the specified ETag. +func (o ObjectCopyOutput) CopyIfNoneMatch() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.CopyIfNoneMatch }).(pulumi.StringPtrOutput) +} + +// Copies the object if it hasn't been modified since the specified time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). +func (o ObjectCopyOutput) CopyIfUnmodifiedSince() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.CopyIfUnmodifiedSince }).(pulumi.StringPtrOutput) +} + +// Specifies the algorithm to use to when encrypting the object (for example, AES256). +func (o ObjectCopyOutput) CustomerAlgorithm() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.CustomerAlgorithm }).(pulumi.StringOutput) +} + +// Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. +func (o ObjectCopyOutput) CustomerKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.CustomerKey }).(pulumi.StringPtrOutput) +} + +// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. +func (o ObjectCopyOutput) CustomerKeyMd5() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.CustomerKeyMd5 }).(pulumi.StringOutput) +} + +// ETag generated for the object (an MD5 sum of the object content). For plaintext objects or objects encrypted with an AWS-managed key, the hash is an MD5 digest of the object data. For objects encrypted with a KMS key or objects created by either the Multipart Upload or Part Copy operation, the hash is not an MD5 digest, regardless of the method of encryption. More information on possible values can be found on [Common Response Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html). +func (o ObjectCopyOutput) Etag() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.Etag }).(pulumi.StringOutput) +} + +// Account id of the expected destination bucket owner. If the destination bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. +func (o ObjectCopyOutput) ExpectedBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.ExpectedBucketOwner }).(pulumi.StringPtrOutput) +} + +// Account id of the expected source bucket owner. If the source bucket is owned by a different account, the request will fail with an HTTP 403 (Access Denied) error. +func (o ObjectCopyOutput) ExpectedSourceBucketOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.ExpectedSourceBucketOwner }).(pulumi.StringPtrOutput) +} + +// If the object expiration is configured, this attribute will be set. +func (o ObjectCopyOutput) Expiration() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.Expiration }).(pulumi.StringOutput) +} + +// Date and time at which the object is no longer cacheable, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). +func (o ObjectCopyOutput) Expires() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.Expires }).(pulumi.StringPtrOutput) +} + +// Allow the object to be deleted by removing any legal hold on any object version. Default is `false`. This value should be set to `true` only if the bucket has S3 object lock enabled. +func (o ObjectCopyOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// Configuration block for header grants. Documented below. Conflicts with `acl`. +func (o ObjectCopyOutput) Grants() ObjectCopyGrantArrayOutput { + return o.ApplyT(func(v *ObjectCopy) ObjectCopyGrantArrayOutput { return v.Grants }).(ObjectCopyGrantArrayOutput) +} + +// Name of the object once it is in the bucket. +func (o ObjectCopyOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.Key }).(pulumi.StringOutput) +} + +// Specifies the AWS KMS Encryption Context to use for object encryption. The value is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. +func (o ObjectCopyOutput) KmsEncryptionContext() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.KmsEncryptionContext }).(pulumi.StringOutput) +} + +// Specifies the AWS KMS Key ARN to use for object encryption. This value is a fully qualified **ARN** of the KMS Key. If using `kms.Key`, use the exported `arn` attribute: `kmsKeyId = aws_kms_key.foo.arn` +func (o ObjectCopyOutput) KmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput) +} + +// Returns the date that the object was last modified, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). +func (o ObjectCopyOutput) LastModified() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.LastModified }).(pulumi.StringOutput) +} + +// Map of keys/values to provision metadata (will be automatically prefixed by `x-amz-meta-`, note that only lowercase label are currently supported by the AWS Go API). +func (o ObjectCopyOutput) Metadata() pulumi.StringMapOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringMapOutput { return v.Metadata }).(pulumi.StringMapOutput) +} + +// Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request. Valid values are `COPY` and `REPLACE`. +func (o ObjectCopyOutput) MetadataDirective() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.MetadataDirective }).(pulumi.StringPtrOutput) +} + +// The [legal hold](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-legal-holds) status that you want to apply to the specified object. Valid values are `ON` and `OFF`. +func (o ObjectCopyOutput) ObjectLockLegalHoldStatus() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ObjectLockLegalHoldStatus }).(pulumi.StringOutput) +} + +// Object lock [retention mode](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes) that you want to apply to this object. Valid values are `GOVERNANCE` and `COMPLIANCE`. +func (o ObjectCopyOutput) ObjectLockMode() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ObjectLockMode }).(pulumi.StringOutput) +} + +// Date and time, in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), when this object's object lock will [expire](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-periods). +func (o ObjectCopyOutput) ObjectLockRetainUntilDate() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ObjectLockRetainUntilDate }).(pulumi.StringOutput) +} + +// If present, indicates that the requester was successfully charged for the request. +func (o ObjectCopyOutput) RequestCharged() pulumi.BoolOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.BoolOutput { return v.RequestCharged }).(pulumi.BoolOutput) +} + +// Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from requester pays buckets, see Downloading Objects in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) in the Amazon S3 Developer Guide. If included, the only valid value is `requester`. +func (o ObjectCopyOutput) RequestPayer() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.RequestPayer }).(pulumi.StringPtrOutput) +} + +// Specifies server-side encryption of the object in S3. Valid values are `AES256` and `aws:kms`. +func (o ObjectCopyOutput) ServerSideEncryption() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.ServerSideEncryption }).(pulumi.StringOutput) +} + +// Specifies the source object for the copy operation. You specify the value in one of two formats. For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (`/`). For example, `testbucket/test1.json`. For objects accessed through access points, specify the ARN of the object as accessed through the access point, in the format `arn:aws:s3:::accesspoint//object/`. For example, `arn:aws:s3:us-west-2:9999912999:accesspoint/my-access-point/object/testbucket/test1.json`. +// +// The following arguments are optional: +func (o ObjectCopyOutput) Source() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.Source }).(pulumi.StringOutput) +} + +// Specifies the algorithm to use when decrypting the source object (for example, AES256). +func (o ObjectCopyOutput) SourceCustomerAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.SourceCustomerAlgorithm }).(pulumi.StringPtrOutput) +} + +// Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created. +func (o ObjectCopyOutput) SourceCustomerKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.SourceCustomerKey }).(pulumi.StringPtrOutput) +} + +// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error. +func (o ObjectCopyOutput) SourceCustomerKeyMd5() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.SourceCustomerKeyMd5 }).(pulumi.StringPtrOutput) +} + +// Version of the copied object in the source bucket. +func (o ObjectCopyOutput) SourceVersionId() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.SourceVersionId }).(pulumi.StringOutput) +} + +// Specifies the desired [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html#AmazonS3-CopyObject-request-header-StorageClass) for the object. Defaults to `STANDARD`. +func (o ObjectCopyOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.StorageClass }).(pulumi.StringOutput) +} + +// Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request. Valid values are `COPY` and `REPLACE`. +func (o ObjectCopyOutput) TaggingDirective() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringPtrOutput { return v.TaggingDirective }).(pulumi.StringPtrOutput) +} + +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o ObjectCopyOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +// +// Deprecated: Please use `tags` instead. +func (o ObjectCopyOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +// Version ID of the newly created copy. +func (o ObjectCopyOutput) VersionId() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.VersionId }).(pulumi.StringOutput) +} + +// Specifies a target URL for [website redirect](http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). +func (o ObjectCopyOutput) WebsiteRedirect() pulumi.StringOutput { + return o.ApplyT(func(v *ObjectCopy) pulumi.StringOutput { return v.WebsiteRedirect }).(pulumi.StringOutput) +} + +type ObjectCopyArrayOutput struct{ *pulumi.OutputState } + +func (ObjectCopyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ObjectCopy)(nil)).Elem() +} + +func (o ObjectCopyArrayOutput) ToObjectCopyArrayOutput() ObjectCopyArrayOutput { + return o +} + +func (o ObjectCopyArrayOutput) ToObjectCopyArrayOutputWithContext(ctx context.Context) ObjectCopyArrayOutput { + return o +} + +func (o ObjectCopyArrayOutput) Index(i pulumi.IntInput) ObjectCopyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ObjectCopy { + return vs[0].([]*ObjectCopy)[vs[1].(int)] + }).(ObjectCopyOutput) +} + +type ObjectCopyMapOutput struct{ *pulumi.OutputState } + +func (ObjectCopyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ObjectCopy)(nil)).Elem() +} + +func (o ObjectCopyMapOutput) ToObjectCopyMapOutput() ObjectCopyMapOutput { + return o +} + +func (o ObjectCopyMapOutput) ToObjectCopyMapOutputWithContext(ctx context.Context) ObjectCopyMapOutput { + return o +} + +func (o ObjectCopyMapOutput) MapIndex(k pulumi.StringInput) ObjectCopyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ObjectCopy { + return vs[0].(map[string]*ObjectCopy)[vs[1].(string)] + }).(ObjectCopyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ObjectCopyInput)(nil)).Elem(), &ObjectCopy{}) + pulumi.RegisterInputType(reflect.TypeOf((*ObjectCopyArrayInput)(nil)).Elem(), ObjectCopyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ObjectCopyMapInput)(nil)).Elem(), ObjectCopyMap{}) + pulumi.RegisterOutputType(ObjectCopyOutput{}) + pulumi.RegisterOutputType(ObjectCopyArrayOutput{}) + pulumi.RegisterOutputType(ObjectCopyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiEnums.go new file mode 100644 index 000000000..794adf546 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiEnums.go @@ -0,0 +1,196 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// See https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl +type CannedAcl string + +const ( + CannedAclPrivate = CannedAcl("private") + CannedAclPublicRead = CannedAcl("public-read") + CannedAclPublicReadWrite = CannedAcl("public-read-write") + CannedAclAwsExecRead = CannedAcl("aws-exec-read") + CannedAclAuthenticatedRead = CannedAcl("authenticated-read") + CannedAclBucketOwnerRead = CannedAcl("bucket-owner-read") + CannedAclBucketOwnerFullControl = CannedAcl("bucket-owner-full-control") + CannedAclLogDeliveryWrite = CannedAcl("log-delivery-write") +) + +func (CannedAcl) ElementType() reflect.Type { + return reflect.TypeOf((*CannedAcl)(nil)).Elem() +} + +func (e CannedAcl) ToCannedAclOutput() CannedAclOutput { + return pulumi.ToOutput(e).(CannedAclOutput) +} + +func (e CannedAcl) ToCannedAclOutputWithContext(ctx context.Context) CannedAclOutput { + return pulumi.ToOutputWithContext(ctx, e).(CannedAclOutput) +} + +func (e CannedAcl) ToCannedAclPtrOutput() CannedAclPtrOutput { + return e.ToCannedAclPtrOutputWithContext(context.Background()) +} + +func (e CannedAcl) ToCannedAclPtrOutputWithContext(ctx context.Context) CannedAclPtrOutput { + return CannedAcl(e).ToCannedAclOutputWithContext(ctx).ToCannedAclPtrOutputWithContext(ctx) +} + +func (e CannedAcl) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CannedAcl) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CannedAcl) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e CannedAcl) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type CannedAclOutput struct{ *pulumi.OutputState } + +func (CannedAclOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CannedAcl)(nil)).Elem() +} + +func (o CannedAclOutput) ToCannedAclOutput() CannedAclOutput { + return o +} + +func (o CannedAclOutput) ToCannedAclOutputWithContext(ctx context.Context) CannedAclOutput { + return o +} + +func (o CannedAclOutput) ToCannedAclPtrOutput() CannedAclPtrOutput { + return o.ToCannedAclPtrOutputWithContext(context.Background()) +} + +func (o CannedAclOutput) ToCannedAclPtrOutputWithContext(ctx context.Context) CannedAclPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CannedAcl) *CannedAcl { + return &v + }).(CannedAclPtrOutput) +} + +func (o CannedAclOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o CannedAclOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CannedAcl) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o CannedAclOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CannedAclOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CannedAcl) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type CannedAclPtrOutput struct{ *pulumi.OutputState } + +func (CannedAclPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CannedAcl)(nil)).Elem() +} + +func (o CannedAclPtrOutput) ToCannedAclPtrOutput() CannedAclPtrOutput { + return o +} + +func (o CannedAclPtrOutput) ToCannedAclPtrOutputWithContext(ctx context.Context) CannedAclPtrOutput { + return o +} + +func (o CannedAclPtrOutput) Elem() CannedAclOutput { + return o.ApplyT(func(v *CannedAcl) CannedAcl { + if v != nil { + return *v + } + var ret CannedAcl + return ret + }).(CannedAclOutput) +} + +func (o CannedAclPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CannedAclPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *CannedAcl) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// CannedAclInput is an input type that accepts CannedAclArgs and CannedAclOutput values. +// You can construct a concrete instance of `CannedAclInput` via: +// +// CannedAclArgs{...} +type CannedAclInput interface { + pulumi.Input + + ToCannedAclOutput() CannedAclOutput + ToCannedAclOutputWithContext(context.Context) CannedAclOutput +} + +var cannedAclPtrType = reflect.TypeOf((**CannedAcl)(nil)).Elem() + +type CannedAclPtrInput interface { + pulumi.Input + + ToCannedAclPtrOutput() CannedAclPtrOutput + ToCannedAclPtrOutputWithContext(context.Context) CannedAclPtrOutput +} + +type cannedAclPtr string + +func CannedAclPtr(v string) CannedAclPtrInput { + return (*cannedAclPtr)(&v) +} + +func (*cannedAclPtr) ElementType() reflect.Type { + return cannedAclPtrType +} + +func (in *cannedAclPtr) ToCannedAclPtrOutput() CannedAclPtrOutput { + return pulumi.ToOutput(in).(CannedAclPtrOutput) +} + +func (in *cannedAclPtr) ToCannedAclPtrOutputWithContext(ctx context.Context) CannedAclPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(CannedAclPtrOutput) +} + +func (in *cannedAclPtr) ToOutput(ctx context.Context) pulumix.Output[*CannedAcl] { + return pulumix.Output[*CannedAcl]{ + OutputState: in.ToCannedAclPtrOutputWithContext(ctx).OutputState, + } +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CannedAclInput)(nil)).Elem(), CannedAcl("private")) + pulumi.RegisterInputType(reflect.TypeOf((*CannedAclPtrInput)(nil)).Elem(), CannedAcl("private")) + pulumi.RegisterOutputType(CannedAclOutput{}) + pulumi.RegisterOutputType(CannedAclPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiTypes.go new file mode 100644 index 000000000..bd5b76a99 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3/pulumiTypes.go @@ -0,0 +1,17023 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package s3 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type AccessPointPublicAccessBlockConfiguration struct { + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. + // * PUT Object calls fail if the request includes a public ACL. + // * PUT Bucket calls fail if the request includes a public ACL. + BlockPublicAcls *bool `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy *bool `pulumi:"blockPublicPolicy"` + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls *bool `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets *bool `pulumi:"restrictPublicBuckets"` +} + +// AccessPointPublicAccessBlockConfigurationInput is an input type that accepts AccessPointPublicAccessBlockConfigurationArgs and AccessPointPublicAccessBlockConfigurationOutput values. +// You can construct a concrete instance of `AccessPointPublicAccessBlockConfigurationInput` via: +// +// AccessPointPublicAccessBlockConfigurationArgs{...} +type AccessPointPublicAccessBlockConfigurationInput interface { + pulumi.Input + + ToAccessPointPublicAccessBlockConfigurationOutput() AccessPointPublicAccessBlockConfigurationOutput + ToAccessPointPublicAccessBlockConfigurationOutputWithContext(context.Context) AccessPointPublicAccessBlockConfigurationOutput +} + +type AccessPointPublicAccessBlockConfigurationArgs struct { + // Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: + // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. + // * PUT Object calls fail if the request includes a public ACL. + // * PUT Bucket calls fail if the request includes a public ACL. + BlockPublicAcls pulumi.BoolPtrInput `pulumi:"blockPublicAcls"` + // Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: + // * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. + BlockPublicPolicy pulumi.BoolPtrInput `pulumi:"blockPublicPolicy"` + // Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: + // * Ignore all public ACLs on buckets in this account and any objects that they contain. + IgnorePublicAcls pulumi.BoolPtrInput `pulumi:"ignorePublicAcls"` + // Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: + // * Only the bucket owner and AWS Services can access buckets with public policies. + RestrictPublicBuckets pulumi.BoolPtrInput `pulumi:"restrictPublicBuckets"` +} + +func (AccessPointPublicAccessBlockConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPointPublicAccessBlockConfiguration)(nil)).Elem() +} + +func (i AccessPointPublicAccessBlockConfigurationArgs) ToAccessPointPublicAccessBlockConfigurationOutput() AccessPointPublicAccessBlockConfigurationOutput { + return i.ToAccessPointPublicAccessBlockConfigurationOutputWithContext(context.Background()) +} + +func (i AccessPointPublicAccessBlockConfigurationArgs) ToAccessPointPublicAccessBlockConfigurationOutputWithContext(ctx context.Context) AccessPointPublicAccessBlockConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointPublicAccessBlockConfigurationOutput) +} + +func (i AccessPointPublicAccessBlockConfigurationArgs) ToAccessPointPublicAccessBlockConfigurationPtrOutput() AccessPointPublicAccessBlockConfigurationPtrOutput { + return i.ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(context.Background()) +} + +func (i AccessPointPublicAccessBlockConfigurationArgs) ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(ctx context.Context) AccessPointPublicAccessBlockConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointPublicAccessBlockConfigurationOutput).ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(ctx) +} + +// AccessPointPublicAccessBlockConfigurationPtrInput is an input type that accepts AccessPointPublicAccessBlockConfigurationArgs, AccessPointPublicAccessBlockConfigurationPtr and AccessPointPublicAccessBlockConfigurationPtrOutput values. +// You can construct a concrete instance of `AccessPointPublicAccessBlockConfigurationPtrInput` via: +// +// AccessPointPublicAccessBlockConfigurationArgs{...} +// +// or: +// +// nil +type AccessPointPublicAccessBlockConfigurationPtrInput interface { + pulumi.Input + + ToAccessPointPublicAccessBlockConfigurationPtrOutput() AccessPointPublicAccessBlockConfigurationPtrOutput + ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(context.Context) AccessPointPublicAccessBlockConfigurationPtrOutput +} + +type accessPointPublicAccessBlockConfigurationPtrType AccessPointPublicAccessBlockConfigurationArgs + +func AccessPointPublicAccessBlockConfigurationPtr(v *AccessPointPublicAccessBlockConfigurationArgs) AccessPointPublicAccessBlockConfigurationPtrInput { + return (*accessPointPublicAccessBlockConfigurationPtrType)(v) +} + +func (*accessPointPublicAccessBlockConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPointPublicAccessBlockConfiguration)(nil)).Elem() +} + +func (i *accessPointPublicAccessBlockConfigurationPtrType) ToAccessPointPublicAccessBlockConfigurationPtrOutput() AccessPointPublicAccessBlockConfigurationPtrOutput { + return i.ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *accessPointPublicAccessBlockConfigurationPtrType) ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(ctx context.Context) AccessPointPublicAccessBlockConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointPublicAccessBlockConfigurationPtrOutput) +} + +type AccessPointPublicAccessBlockConfigurationOutput struct{ *pulumi.OutputState } + +func (AccessPointPublicAccessBlockConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPointPublicAccessBlockConfiguration)(nil)).Elem() +} + +func (o AccessPointPublicAccessBlockConfigurationOutput) ToAccessPointPublicAccessBlockConfigurationOutput() AccessPointPublicAccessBlockConfigurationOutput { + return o +} + +func (o AccessPointPublicAccessBlockConfigurationOutput) ToAccessPointPublicAccessBlockConfigurationOutputWithContext(ctx context.Context) AccessPointPublicAccessBlockConfigurationOutput { + return o +} + +func (o AccessPointPublicAccessBlockConfigurationOutput) ToAccessPointPublicAccessBlockConfigurationPtrOutput() AccessPointPublicAccessBlockConfigurationPtrOutput { + return o.ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(context.Background()) +} + +func (o AccessPointPublicAccessBlockConfigurationOutput) ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(ctx context.Context) AccessPointPublicAccessBlockConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessPointPublicAccessBlockConfiguration) *AccessPointPublicAccessBlockConfiguration { + return &v + }).(AccessPointPublicAccessBlockConfigurationPtrOutput) +} + +// Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: +// * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. +// * PUT Object calls fail if the request includes a public ACL. +// * PUT Bucket calls fail if the request includes a public ACL. +func (o AccessPointPublicAccessBlockConfigurationOutput) BlockPublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessPointPublicAccessBlockConfiguration) *bool { return v.BlockPublicAcls }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: +// * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. +func (o AccessPointPublicAccessBlockConfigurationOutput) BlockPublicPolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessPointPublicAccessBlockConfiguration) *bool { return v.BlockPublicPolicy }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: +// * Ignore all public ACLs on buckets in this account and any objects that they contain. +func (o AccessPointPublicAccessBlockConfigurationOutput) IgnorePublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessPointPublicAccessBlockConfiguration) *bool { return v.IgnorePublicAcls }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: +// * Only the bucket owner and AWS Services can access buckets with public policies. +func (o AccessPointPublicAccessBlockConfigurationOutput) RestrictPublicBuckets() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AccessPointPublicAccessBlockConfiguration) *bool { return v.RestrictPublicBuckets }).(pulumi.BoolPtrOutput) +} + +type AccessPointPublicAccessBlockConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (AccessPointPublicAccessBlockConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPointPublicAccessBlockConfiguration)(nil)).Elem() +} + +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) ToAccessPointPublicAccessBlockConfigurationPtrOutput() AccessPointPublicAccessBlockConfigurationPtrOutput { + return o +} + +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) ToAccessPointPublicAccessBlockConfigurationPtrOutputWithContext(ctx context.Context) AccessPointPublicAccessBlockConfigurationPtrOutput { + return o +} + +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) Elem() AccessPointPublicAccessBlockConfigurationOutput { + return o.ApplyT(func(v *AccessPointPublicAccessBlockConfiguration) AccessPointPublicAccessBlockConfiguration { + if v != nil { + return *v + } + var ret AccessPointPublicAccessBlockConfiguration + return ret + }).(AccessPointPublicAccessBlockConfigurationOutput) +} + +// Whether Amazon S3 should block public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing policies or ACLs. When set to `true` causes the following behavior: +// * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. +// * PUT Object calls fail if the request includes a public ACL. +// * PUT Bucket calls fail if the request includes a public ACL. +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) BlockPublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessPointPublicAccessBlockConfiguration) *bool { + if v == nil { + return nil + } + return v.BlockPublicAcls + }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should block public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect existing bucket policies. When set to `true` causes Amazon S3 to: +// * Reject calls to PUT Bucket policy if the specified bucket policy allows public access. +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) BlockPublicPolicy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessPointPublicAccessBlockConfiguration) *bool { + if v == nil { + return nil + } + return v.BlockPublicPolicy + }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should ignore public ACLs for buckets in this account. Defaults to `true`. Enabling this setting does not affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. When set to `true` causes Amazon S3 to: +// * Ignore all public ACLs on buckets in this account and any objects that they contain. +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) IgnorePublicAcls() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessPointPublicAccessBlockConfiguration) *bool { + if v == nil { + return nil + } + return v.IgnorePublicAcls + }).(pulumi.BoolPtrOutput) +} + +// Whether Amazon S3 should restrict public bucket policies for buckets in this account. Defaults to `true`. Enabling this setting does not affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. When set to `true`: +// * Only the bucket owner and AWS Services can access buckets with public policies. +func (o AccessPointPublicAccessBlockConfigurationPtrOutput) RestrictPublicBuckets() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AccessPointPublicAccessBlockConfiguration) *bool { + if v == nil { + return nil + } + return v.RestrictPublicBuckets + }).(pulumi.BoolPtrOutput) +} + +type AccessPointVpcConfiguration struct { + // This access point will only allow connections from the specified VPC ID. + VpcId string `pulumi:"vpcId"` +} + +// AccessPointVpcConfigurationInput is an input type that accepts AccessPointVpcConfigurationArgs and AccessPointVpcConfigurationOutput values. +// You can construct a concrete instance of `AccessPointVpcConfigurationInput` via: +// +// AccessPointVpcConfigurationArgs{...} +type AccessPointVpcConfigurationInput interface { + pulumi.Input + + ToAccessPointVpcConfigurationOutput() AccessPointVpcConfigurationOutput + ToAccessPointVpcConfigurationOutputWithContext(context.Context) AccessPointVpcConfigurationOutput +} + +type AccessPointVpcConfigurationArgs struct { + // This access point will only allow connections from the specified VPC ID. + VpcId pulumi.StringInput `pulumi:"vpcId"` +} + +func (AccessPointVpcConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPointVpcConfiguration)(nil)).Elem() +} + +func (i AccessPointVpcConfigurationArgs) ToAccessPointVpcConfigurationOutput() AccessPointVpcConfigurationOutput { + return i.ToAccessPointVpcConfigurationOutputWithContext(context.Background()) +} + +func (i AccessPointVpcConfigurationArgs) ToAccessPointVpcConfigurationOutputWithContext(ctx context.Context) AccessPointVpcConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointVpcConfigurationOutput) +} + +func (i AccessPointVpcConfigurationArgs) ToAccessPointVpcConfigurationPtrOutput() AccessPointVpcConfigurationPtrOutput { + return i.ToAccessPointVpcConfigurationPtrOutputWithContext(context.Background()) +} + +func (i AccessPointVpcConfigurationArgs) ToAccessPointVpcConfigurationPtrOutputWithContext(ctx context.Context) AccessPointVpcConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointVpcConfigurationOutput).ToAccessPointVpcConfigurationPtrOutputWithContext(ctx) +} + +// AccessPointVpcConfigurationPtrInput is an input type that accepts AccessPointVpcConfigurationArgs, AccessPointVpcConfigurationPtr and AccessPointVpcConfigurationPtrOutput values. +// You can construct a concrete instance of `AccessPointVpcConfigurationPtrInput` via: +// +// AccessPointVpcConfigurationArgs{...} +// +// or: +// +// nil +type AccessPointVpcConfigurationPtrInput interface { + pulumi.Input + + ToAccessPointVpcConfigurationPtrOutput() AccessPointVpcConfigurationPtrOutput + ToAccessPointVpcConfigurationPtrOutputWithContext(context.Context) AccessPointVpcConfigurationPtrOutput +} + +type accessPointVpcConfigurationPtrType AccessPointVpcConfigurationArgs + +func AccessPointVpcConfigurationPtr(v *AccessPointVpcConfigurationArgs) AccessPointVpcConfigurationPtrInput { + return (*accessPointVpcConfigurationPtrType)(v) +} + +func (*accessPointVpcConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPointVpcConfiguration)(nil)).Elem() +} + +func (i *accessPointVpcConfigurationPtrType) ToAccessPointVpcConfigurationPtrOutput() AccessPointVpcConfigurationPtrOutput { + return i.ToAccessPointVpcConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *accessPointVpcConfigurationPtrType) ToAccessPointVpcConfigurationPtrOutputWithContext(ctx context.Context) AccessPointVpcConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccessPointVpcConfigurationPtrOutput) +} + +type AccessPointVpcConfigurationOutput struct{ *pulumi.OutputState } + +func (AccessPointVpcConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessPointVpcConfiguration)(nil)).Elem() +} + +func (o AccessPointVpcConfigurationOutput) ToAccessPointVpcConfigurationOutput() AccessPointVpcConfigurationOutput { + return o +} + +func (o AccessPointVpcConfigurationOutput) ToAccessPointVpcConfigurationOutputWithContext(ctx context.Context) AccessPointVpcConfigurationOutput { + return o +} + +func (o AccessPointVpcConfigurationOutput) ToAccessPointVpcConfigurationPtrOutput() AccessPointVpcConfigurationPtrOutput { + return o.ToAccessPointVpcConfigurationPtrOutputWithContext(context.Background()) +} + +func (o AccessPointVpcConfigurationOutput) ToAccessPointVpcConfigurationPtrOutputWithContext(ctx context.Context) AccessPointVpcConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessPointVpcConfiguration) *AccessPointVpcConfiguration { + return &v + }).(AccessPointVpcConfigurationPtrOutput) +} + +// This access point will only allow connections from the specified VPC ID. +func (o AccessPointVpcConfigurationOutput) VpcId() pulumi.StringOutput { + return o.ApplyT(func(v AccessPointVpcConfiguration) string { return v.VpcId }).(pulumi.StringOutput) +} + +type AccessPointVpcConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (AccessPointVpcConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessPointVpcConfiguration)(nil)).Elem() +} + +func (o AccessPointVpcConfigurationPtrOutput) ToAccessPointVpcConfigurationPtrOutput() AccessPointVpcConfigurationPtrOutput { + return o +} + +func (o AccessPointVpcConfigurationPtrOutput) ToAccessPointVpcConfigurationPtrOutputWithContext(ctx context.Context) AccessPointVpcConfigurationPtrOutput { + return o +} + +func (o AccessPointVpcConfigurationPtrOutput) Elem() AccessPointVpcConfigurationOutput { + return o.ApplyT(func(v *AccessPointVpcConfiguration) AccessPointVpcConfiguration { + if v != nil { + return *v + } + var ret AccessPointVpcConfiguration + return ret + }).(AccessPointVpcConfigurationOutput) +} + +// This access point will only allow connections from the specified VPC ID. +func (o AccessPointVpcConfigurationPtrOutput) VpcId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccessPointVpcConfiguration) *string { + if v == nil { + return nil + } + return &v.VpcId + }).(pulumi.StringPtrOutput) +} + +type AnalyticsConfigurationFilter struct { + // Object prefix for filtering. + Prefix *string `pulumi:"prefix"` + // Set of object tags for filtering. + Tags map[string]string `pulumi:"tags"` +} + +// AnalyticsConfigurationFilterInput is an input type that accepts AnalyticsConfigurationFilterArgs and AnalyticsConfigurationFilterOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationFilterInput` via: +// +// AnalyticsConfigurationFilterArgs{...} +type AnalyticsConfigurationFilterInput interface { + pulumi.Input + + ToAnalyticsConfigurationFilterOutput() AnalyticsConfigurationFilterOutput + ToAnalyticsConfigurationFilterOutputWithContext(context.Context) AnalyticsConfigurationFilterOutput +} + +type AnalyticsConfigurationFilterArgs struct { + // Object prefix for filtering. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Set of object tags for filtering. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (AnalyticsConfigurationFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationFilter)(nil)).Elem() +} + +func (i AnalyticsConfigurationFilterArgs) ToAnalyticsConfigurationFilterOutput() AnalyticsConfigurationFilterOutput { + return i.ToAnalyticsConfigurationFilterOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationFilterArgs) ToAnalyticsConfigurationFilterOutputWithContext(ctx context.Context) AnalyticsConfigurationFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationFilterOutput) +} + +func (i AnalyticsConfigurationFilterArgs) ToAnalyticsConfigurationFilterPtrOutput() AnalyticsConfigurationFilterPtrOutput { + return i.ToAnalyticsConfigurationFilterPtrOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationFilterArgs) ToAnalyticsConfigurationFilterPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationFilterOutput).ToAnalyticsConfigurationFilterPtrOutputWithContext(ctx) +} + +// AnalyticsConfigurationFilterPtrInput is an input type that accepts AnalyticsConfigurationFilterArgs, AnalyticsConfigurationFilterPtr and AnalyticsConfigurationFilterPtrOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationFilterPtrInput` via: +// +// AnalyticsConfigurationFilterArgs{...} +// +// or: +// +// nil +type AnalyticsConfigurationFilterPtrInput interface { + pulumi.Input + + ToAnalyticsConfigurationFilterPtrOutput() AnalyticsConfigurationFilterPtrOutput + ToAnalyticsConfigurationFilterPtrOutputWithContext(context.Context) AnalyticsConfigurationFilterPtrOutput +} + +type analyticsConfigurationFilterPtrType AnalyticsConfigurationFilterArgs + +func AnalyticsConfigurationFilterPtr(v *AnalyticsConfigurationFilterArgs) AnalyticsConfigurationFilterPtrInput { + return (*analyticsConfigurationFilterPtrType)(v) +} + +func (*analyticsConfigurationFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationFilter)(nil)).Elem() +} + +func (i *analyticsConfigurationFilterPtrType) ToAnalyticsConfigurationFilterPtrOutput() AnalyticsConfigurationFilterPtrOutput { + return i.ToAnalyticsConfigurationFilterPtrOutputWithContext(context.Background()) +} + +func (i *analyticsConfigurationFilterPtrType) ToAnalyticsConfigurationFilterPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationFilterPtrOutput) +} + +type AnalyticsConfigurationFilterOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationFilter)(nil)).Elem() +} + +func (o AnalyticsConfigurationFilterOutput) ToAnalyticsConfigurationFilterOutput() AnalyticsConfigurationFilterOutput { + return o +} + +func (o AnalyticsConfigurationFilterOutput) ToAnalyticsConfigurationFilterOutputWithContext(ctx context.Context) AnalyticsConfigurationFilterOutput { + return o +} + +func (o AnalyticsConfigurationFilterOutput) ToAnalyticsConfigurationFilterPtrOutput() AnalyticsConfigurationFilterPtrOutput { + return o.ToAnalyticsConfigurationFilterPtrOutputWithContext(context.Background()) +} + +func (o AnalyticsConfigurationFilterOutput) ToAnalyticsConfigurationFilterPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AnalyticsConfigurationFilter) *AnalyticsConfigurationFilter { + return &v + }).(AnalyticsConfigurationFilterPtrOutput) +} + +// Object prefix for filtering. +func (o AnalyticsConfigurationFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v AnalyticsConfigurationFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Set of object tags for filtering. +func (o AnalyticsConfigurationFilterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v AnalyticsConfigurationFilter) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type AnalyticsConfigurationFilterPtrOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationFilter)(nil)).Elem() +} + +func (o AnalyticsConfigurationFilterPtrOutput) ToAnalyticsConfigurationFilterPtrOutput() AnalyticsConfigurationFilterPtrOutput { + return o +} + +func (o AnalyticsConfigurationFilterPtrOutput) ToAnalyticsConfigurationFilterPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationFilterPtrOutput { + return o +} + +func (o AnalyticsConfigurationFilterPtrOutput) Elem() AnalyticsConfigurationFilterOutput { + return o.ApplyT(func(v *AnalyticsConfigurationFilter) AnalyticsConfigurationFilter { + if v != nil { + return *v + } + var ret AnalyticsConfigurationFilter + return ret + }).(AnalyticsConfigurationFilterOutput) +} + +// Object prefix for filtering. +func (o AnalyticsConfigurationFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// Set of object tags for filtering. +func (o AnalyticsConfigurationFilterPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *AnalyticsConfigurationFilter) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type AnalyticsConfigurationStorageClassAnalysis struct { + // Data export configuration (documented below). + DataExport AnalyticsConfigurationStorageClassAnalysisDataExport `pulumi:"dataExport"` +} + +// AnalyticsConfigurationStorageClassAnalysisInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisArgs and AnalyticsConfigurationStorageClassAnalysisOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisArgs{...} +type AnalyticsConfigurationStorageClassAnalysisInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisOutput() AnalyticsConfigurationStorageClassAnalysisOutput + ToAnalyticsConfigurationStorageClassAnalysisOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisOutput +} + +type AnalyticsConfigurationStorageClassAnalysisArgs struct { + // Data export configuration (documented below). + DataExport AnalyticsConfigurationStorageClassAnalysisDataExportInput `pulumi:"dataExport"` +} + +func (AnalyticsConfigurationStorageClassAnalysisArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysis)(nil)).Elem() +} + +func (i AnalyticsConfigurationStorageClassAnalysisArgs) ToAnalyticsConfigurationStorageClassAnalysisOutput() AnalyticsConfigurationStorageClassAnalysisOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisArgs) ToAnalyticsConfigurationStorageClassAnalysisOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisOutput) +} + +func (i AnalyticsConfigurationStorageClassAnalysisArgs) ToAnalyticsConfigurationStorageClassAnalysisPtrOutput() AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisArgs) ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisOutput).ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(ctx) +} + +// AnalyticsConfigurationStorageClassAnalysisPtrInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisArgs, AnalyticsConfigurationStorageClassAnalysisPtr and AnalyticsConfigurationStorageClassAnalysisPtrOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisPtrInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisArgs{...} +// +// or: +// +// nil +type AnalyticsConfigurationStorageClassAnalysisPtrInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisPtrOutput() AnalyticsConfigurationStorageClassAnalysisPtrOutput + ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisPtrOutput +} + +type analyticsConfigurationStorageClassAnalysisPtrType AnalyticsConfigurationStorageClassAnalysisArgs + +func AnalyticsConfigurationStorageClassAnalysisPtr(v *AnalyticsConfigurationStorageClassAnalysisArgs) AnalyticsConfigurationStorageClassAnalysisPtrInput { + return (*analyticsConfigurationStorageClassAnalysisPtrType)(v) +} + +func (*analyticsConfigurationStorageClassAnalysisPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysis)(nil)).Elem() +} + +func (i *analyticsConfigurationStorageClassAnalysisPtrType) ToAnalyticsConfigurationStorageClassAnalysisPtrOutput() AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(context.Background()) +} + +func (i *analyticsConfigurationStorageClassAnalysisPtrType) ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysis)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisOutput) ToAnalyticsConfigurationStorageClassAnalysisOutput() AnalyticsConfigurationStorageClassAnalysisOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisOutput) ToAnalyticsConfigurationStorageClassAnalysisOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisOutput) ToAnalyticsConfigurationStorageClassAnalysisPtrOutput() AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return o.ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(context.Background()) +} + +func (o AnalyticsConfigurationStorageClassAnalysisOutput) ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AnalyticsConfigurationStorageClassAnalysis) *AnalyticsConfigurationStorageClassAnalysis { + return &v + }).(AnalyticsConfigurationStorageClassAnalysisPtrOutput) +} + +// Data export configuration (documented below). +func (o AnalyticsConfigurationStorageClassAnalysisOutput) DataExport() AnalyticsConfigurationStorageClassAnalysisDataExportOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysis) AnalyticsConfigurationStorageClassAnalysisDataExport { + return v.DataExport + }).(AnalyticsConfigurationStorageClassAnalysisDataExportOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisPtrOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysis)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisPtrOutput() AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisPtrOutput) Elem() AnalyticsConfigurationStorageClassAnalysisOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysis) AnalyticsConfigurationStorageClassAnalysis { + if v != nil { + return *v + } + var ret AnalyticsConfigurationStorageClassAnalysis + return ret + }).(AnalyticsConfigurationStorageClassAnalysisOutput) +} + +// Data export configuration (documented below). +func (o AnalyticsConfigurationStorageClassAnalysisPtrOutput) DataExport() AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysis) *AnalyticsConfigurationStorageClassAnalysisDataExport { + if v == nil { + return nil + } + return &v.DataExport + }).(AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExport struct { + // Specifies the destination for the exported analytics data (documented below). + Destination AnalyticsConfigurationStorageClassAnalysisDataExportDestination `pulumi:"destination"` + // Schema version of exported analytics data. Allowed values: `V_1`. Default value: `V_1`. + OutputSchemaVersion *string `pulumi:"outputSchemaVersion"` +} + +// AnalyticsConfigurationStorageClassAnalysisDataExportInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisDataExportArgs and AnalyticsConfigurationStorageClassAnalysisDataExportOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisDataExportInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisDataExportArgs{...} +type AnalyticsConfigurationStorageClassAnalysisDataExportInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisDataExportOutput() AnalyticsConfigurationStorageClassAnalysisDataExportOutput + ToAnalyticsConfigurationStorageClassAnalysisDataExportOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportOutput +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportArgs struct { + // Specifies the destination for the exported analytics data (documented below). + Destination AnalyticsConfigurationStorageClassAnalysisDataExportDestinationInput `pulumi:"destination"` + // Schema version of exported analytics data. Allowed values: `V_1`. Default value: `V_1`. + OutputSchemaVersion pulumi.StringPtrInput `pulumi:"outputSchemaVersion"` +} + +func (AnalyticsConfigurationStorageClassAnalysisDataExportArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExport)(nil)).Elem() +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportOutput() AnalyticsConfigurationStorageClassAnalysisDataExportOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportOutput) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportOutput).ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(ctx) +} + +// AnalyticsConfigurationStorageClassAnalysisDataExportPtrInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisDataExportArgs, AnalyticsConfigurationStorageClassAnalysisDataExportPtr and AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisDataExportPtrInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisDataExportArgs{...} +// +// or: +// +// nil +type AnalyticsConfigurationStorageClassAnalysisDataExportPtrInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput + ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput +} + +type analyticsConfigurationStorageClassAnalysisDataExportPtrType AnalyticsConfigurationStorageClassAnalysisDataExportArgs + +func AnalyticsConfigurationStorageClassAnalysisDataExportPtr(v *AnalyticsConfigurationStorageClassAnalysisDataExportArgs) AnalyticsConfigurationStorageClassAnalysisDataExportPtrInput { + return (*analyticsConfigurationStorageClassAnalysisDataExportPtrType)(v) +} + +func (*analyticsConfigurationStorageClassAnalysisDataExportPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysisDataExport)(nil)).Elem() +} + +func (i *analyticsConfigurationStorageClassAnalysisDataExportPtrType) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(context.Background()) +} + +func (i *analyticsConfigurationStorageClassAnalysisDataExportPtrType) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisDataExportOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExport)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportOutput() AnalyticsConfigurationStorageClassAnalysisDataExportOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return o.ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(context.Background()) +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AnalyticsConfigurationStorageClassAnalysisDataExport) *AnalyticsConfigurationStorageClassAnalysisDataExport { + return &v + }).(AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) +} + +// Specifies the destination for the exported analytics data (documented below). +func (o AnalyticsConfigurationStorageClassAnalysisDataExportOutput) Destination() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExport) AnalyticsConfigurationStorageClassAnalysisDataExportDestination { + return v.Destination + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) +} + +// Schema version of exported analytics data. Allowed values: `V_1`. Default value: `V_1`. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportOutput) OutputSchemaVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExport) *string { return v.OutputSchemaVersion }).(pulumi.StringPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysisDataExport)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) Elem() AnalyticsConfigurationStorageClassAnalysisDataExportOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExport) AnalyticsConfigurationStorageClassAnalysisDataExport { + if v != nil { + return *v + } + var ret AnalyticsConfigurationStorageClassAnalysisDataExport + return ret + }).(AnalyticsConfigurationStorageClassAnalysisDataExportOutput) +} + +// Specifies the destination for the exported analytics data (documented below). +func (o AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) Destination() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExport) *AnalyticsConfigurationStorageClassAnalysisDataExportDestination { + if v == nil { + return nil + } + return &v.Destination + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) +} + +// Schema version of exported analytics data. Allowed values: `V_1`. Default value: `V_1`. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput) OutputSchemaVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExport) *string { + if v == nil { + return nil + } + return v.OutputSchemaVersion + }).(pulumi.StringPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestination struct { + // Analytics data export currently only supports an S3 bucket destination (documented below). + // + // The `s3BucketDestination` configuration supports the following: + S3BucketDestination AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination `pulumi:"s3BucketDestination"` +} + +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs and AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisDataExportDestinationInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{...} +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs struct { + // Analytics data export currently only supports an S3 bucket destination (documented below). + // + // The `s3BucketDestination` configuration supports the following: + S3BucketDestination AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationInput `pulumi:"s3BucketDestination"` +} + +func (AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestination)(nil)).Elem() +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput).ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(ctx) +} + +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs, AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtr and AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{...} +// +// or: +// +// nil +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput +} + +type analyticsConfigurationStorageClassAnalysisDataExportDestinationPtrType AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs + +func AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtr(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrInput { + return (*analyticsConfigurationStorageClassAnalysisDataExportDestinationPtrType)(v) +} + +func (*analyticsConfigurationStorageClassAnalysisDataExportDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysisDataExportDestination)(nil)).Elem() +} + +func (i *analyticsConfigurationStorageClassAnalysisDataExportDestinationPtrType) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(context.Background()) +} + +func (i *analyticsConfigurationStorageClassAnalysisDataExportDestinationPtrType) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestination)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return o.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(context.Background()) +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AnalyticsConfigurationStorageClassAnalysisDataExportDestination) *AnalyticsConfigurationStorageClassAnalysisDataExportDestination { + return &v + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) +} + +// Analytics data export currently only supports an S3 bucket destination (documented below). +// +// The `s3BucketDestination` configuration supports the following: +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) S3BucketDestination() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExportDestination) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination { + return v.S3BucketDestination + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysisDataExportDestination)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) Elem() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestination) AnalyticsConfigurationStorageClassAnalysisDataExportDestination { + if v != nil { + return *v + } + var ret AnalyticsConfigurationStorageClassAnalysisDataExportDestination + return ret + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput) +} + +// Analytics data export currently only supports an S3 bucket destination (documented below). +// +// The `s3BucketDestination` configuration supports the following: +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput) S3BucketDestination() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestination) *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination { + if v == nil { + return nil + } + return &v.S3BucketDestination + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination struct { + // Account ID that owns the destination bucket. + BucketAccountId *string `pulumi:"bucketAccountId"` + // ARN of the destination bucket. + BucketArn string `pulumi:"bucketArn"` + // Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. + Format *string `pulumi:"format"` + // Prefix to append to exported analytics data. + Prefix *string `pulumi:"prefix"` +} + +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs and AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{...} +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs struct { + // Account ID that owns the destination bucket. + BucketAccountId pulumi.StringPtrInput `pulumi:"bucketAccountId"` + // ARN of the destination bucket. + BucketArn pulumi.StringInput `pulumi:"bucketArn"` + // Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. + Format pulumi.StringPtrInput `pulumi:"format"` + // Prefix to append to exported analytics data. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` +} + +func (AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination)(nil)).Elem() +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(context.Background()) +} + +func (i AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput).ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(ctx) +} + +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrInput is an input type that accepts AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs, AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtr and AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput values. +// You can construct a concrete instance of `AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrInput` via: +// +// AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{...} +// +// or: +// +// nil +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrInput interface { + pulumi.Input + + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput + ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput +} + +type analyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrType AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs + +func AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtr(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrInput { + return (*analyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrType)(v) +} + +func (*analyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination)(nil)).Elem() +} + +func (i *analyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrType) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return i.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(context.Background()) +} + +func (i *analyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrType) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return o.ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(context.Background()) +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination { + return &v + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) +} + +// Account ID that owns the destination bucket. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) BucketAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + return v.BucketAccountId + }).(pulumi.StringPtrOutput) +} + +// ARN of the destination bucket. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) string { + return v.BucketArn + }).(pulumi.StringOutput) +} + +// Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) Format() pulumi.StringPtrOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + return v.Format + }).(pulumi.StringPtrOutput) +} + +// Prefix to append to exported analytics data. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +type AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput struct{ *pulumi.OutputState } + +func (AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination)(nil)).Elem() +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) ToAnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutputWithContext(ctx context.Context) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput { + return o +} + +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) Elem() AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination { + if v != nil { + return *v + } + var ret AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination + return ret + }).(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput) +} + +// Account ID that owns the destination bucket. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) BucketAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + if v == nil { + return nil + } + return v.BucketAccountId + }).(pulumi.StringPtrOutput) +} + +// ARN of the destination bucket. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + if v == nil { + return nil + } + return &v.BucketArn + }).(pulumi.StringPtrOutput) +} + +// Output format of exported analytics data. Allowed values: `CSV`. Default value: `CSV`. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) Format() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + if v == nil { + return nil + } + return v.Format + }).(pulumi.StringPtrOutput) +} + +// Prefix to append to exported analytics data. +func (o AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestination) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +type BucketAclV2AccessControlPolicy struct { + // Set of `grant` configuration blocks. See below. + Grants []BucketAclV2AccessControlPolicyGrant `pulumi:"grants"` + // Configuration block of the bucket owner's display name and ID. See below. + Owner BucketAclV2AccessControlPolicyOwner `pulumi:"owner"` +} + +// BucketAclV2AccessControlPolicyInput is an input type that accepts BucketAclV2AccessControlPolicyArgs and BucketAclV2AccessControlPolicyOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyInput` via: +// +// BucketAclV2AccessControlPolicyArgs{...} +type BucketAclV2AccessControlPolicyInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyOutput() BucketAclV2AccessControlPolicyOutput + ToBucketAclV2AccessControlPolicyOutputWithContext(context.Context) BucketAclV2AccessControlPolicyOutput +} + +type BucketAclV2AccessControlPolicyArgs struct { + // Set of `grant` configuration blocks. See below. + Grants BucketAclV2AccessControlPolicyGrantArrayInput `pulumi:"grants"` + // Configuration block of the bucket owner's display name and ID. See below. + Owner BucketAclV2AccessControlPolicyOwnerInput `pulumi:"owner"` +} + +func (BucketAclV2AccessControlPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicy)(nil)).Elem() +} + +func (i BucketAclV2AccessControlPolicyArgs) ToBucketAclV2AccessControlPolicyOutput() BucketAclV2AccessControlPolicyOutput { + return i.ToBucketAclV2AccessControlPolicyOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyArgs) ToBucketAclV2AccessControlPolicyOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyOutput) +} + +func (i BucketAclV2AccessControlPolicyArgs) ToBucketAclV2AccessControlPolicyPtrOutput() BucketAclV2AccessControlPolicyPtrOutput { + return i.ToBucketAclV2AccessControlPolicyPtrOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyArgs) ToBucketAclV2AccessControlPolicyPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyOutput).ToBucketAclV2AccessControlPolicyPtrOutputWithContext(ctx) +} + +// BucketAclV2AccessControlPolicyPtrInput is an input type that accepts BucketAclV2AccessControlPolicyArgs, BucketAclV2AccessControlPolicyPtr and BucketAclV2AccessControlPolicyPtrOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyPtrInput` via: +// +// BucketAclV2AccessControlPolicyArgs{...} +// +// or: +// +// nil +type BucketAclV2AccessControlPolicyPtrInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyPtrOutput() BucketAclV2AccessControlPolicyPtrOutput + ToBucketAclV2AccessControlPolicyPtrOutputWithContext(context.Context) BucketAclV2AccessControlPolicyPtrOutput +} + +type bucketAclV2AccessControlPolicyPtrType BucketAclV2AccessControlPolicyArgs + +func BucketAclV2AccessControlPolicyPtr(v *BucketAclV2AccessControlPolicyArgs) BucketAclV2AccessControlPolicyPtrInput { + return (*bucketAclV2AccessControlPolicyPtrType)(v) +} + +func (*bucketAclV2AccessControlPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2AccessControlPolicy)(nil)).Elem() +} + +func (i *bucketAclV2AccessControlPolicyPtrType) ToBucketAclV2AccessControlPolicyPtrOutput() BucketAclV2AccessControlPolicyPtrOutput { + return i.ToBucketAclV2AccessControlPolicyPtrOutputWithContext(context.Background()) +} + +func (i *bucketAclV2AccessControlPolicyPtrType) ToBucketAclV2AccessControlPolicyPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyPtrOutput) +} + +type BucketAclV2AccessControlPolicyOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicy)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyOutput) ToBucketAclV2AccessControlPolicyOutput() BucketAclV2AccessControlPolicyOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyOutput) ToBucketAclV2AccessControlPolicyOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyOutput) ToBucketAclV2AccessControlPolicyPtrOutput() BucketAclV2AccessControlPolicyPtrOutput { + return o.ToBucketAclV2AccessControlPolicyPtrOutputWithContext(context.Background()) +} + +func (o BucketAclV2AccessControlPolicyOutput) ToBucketAclV2AccessControlPolicyPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketAclV2AccessControlPolicy) *BucketAclV2AccessControlPolicy { + return &v + }).(BucketAclV2AccessControlPolicyPtrOutput) +} + +// Set of `grant` configuration blocks. See below. +func (o BucketAclV2AccessControlPolicyOutput) Grants() BucketAclV2AccessControlPolicyGrantArrayOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicy) []BucketAclV2AccessControlPolicyGrant { return v.Grants }).(BucketAclV2AccessControlPolicyGrantArrayOutput) +} + +// Configuration block of the bucket owner's display name and ID. See below. +func (o BucketAclV2AccessControlPolicyOutput) Owner() BucketAclV2AccessControlPolicyOwnerOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicy) BucketAclV2AccessControlPolicyOwner { return v.Owner }).(BucketAclV2AccessControlPolicyOwnerOutput) +} + +type BucketAclV2AccessControlPolicyPtrOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2AccessControlPolicy)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyPtrOutput) ToBucketAclV2AccessControlPolicyPtrOutput() BucketAclV2AccessControlPolicyPtrOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyPtrOutput) ToBucketAclV2AccessControlPolicyPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyPtrOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyPtrOutput) Elem() BucketAclV2AccessControlPolicyOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicy) BucketAclV2AccessControlPolicy { + if v != nil { + return *v + } + var ret BucketAclV2AccessControlPolicy + return ret + }).(BucketAclV2AccessControlPolicyOutput) +} + +// Set of `grant` configuration blocks. See below. +func (o BucketAclV2AccessControlPolicyPtrOutput) Grants() BucketAclV2AccessControlPolicyGrantArrayOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicy) []BucketAclV2AccessControlPolicyGrant { + if v == nil { + return nil + } + return v.Grants + }).(BucketAclV2AccessControlPolicyGrantArrayOutput) +} + +// Configuration block of the bucket owner's display name and ID. See below. +func (o BucketAclV2AccessControlPolicyPtrOutput) Owner() BucketAclV2AccessControlPolicyOwnerPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicy) *BucketAclV2AccessControlPolicyOwner { + if v == nil { + return nil + } + return &v.Owner + }).(BucketAclV2AccessControlPolicyOwnerPtrOutput) +} + +type BucketAclV2AccessControlPolicyGrant struct { + // Configuration block for the person being granted permissions. See below. + Grantee *BucketAclV2AccessControlPolicyGrantGrantee `pulumi:"grantee"` + // Logging permissions assigned to the grantee for the bucket. + Permission string `pulumi:"permission"` +} + +// BucketAclV2AccessControlPolicyGrantInput is an input type that accepts BucketAclV2AccessControlPolicyGrantArgs and BucketAclV2AccessControlPolicyGrantOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyGrantInput` via: +// +// BucketAclV2AccessControlPolicyGrantArgs{...} +type BucketAclV2AccessControlPolicyGrantInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyGrantOutput() BucketAclV2AccessControlPolicyGrantOutput + ToBucketAclV2AccessControlPolicyGrantOutputWithContext(context.Context) BucketAclV2AccessControlPolicyGrantOutput +} + +type BucketAclV2AccessControlPolicyGrantArgs struct { + // Configuration block for the person being granted permissions. See below. + Grantee BucketAclV2AccessControlPolicyGrantGranteePtrInput `pulumi:"grantee"` + // Logging permissions assigned to the grantee for the bucket. + Permission pulumi.StringInput `pulumi:"permission"` +} + +func (BucketAclV2AccessControlPolicyGrantArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicyGrant)(nil)).Elem() +} + +func (i BucketAclV2AccessControlPolicyGrantArgs) ToBucketAclV2AccessControlPolicyGrantOutput() BucketAclV2AccessControlPolicyGrantOutput { + return i.ToBucketAclV2AccessControlPolicyGrantOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyGrantArgs) ToBucketAclV2AccessControlPolicyGrantOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyGrantOutput) +} + +// BucketAclV2AccessControlPolicyGrantArrayInput is an input type that accepts BucketAclV2AccessControlPolicyGrantArray and BucketAclV2AccessControlPolicyGrantArrayOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyGrantArrayInput` via: +// +// BucketAclV2AccessControlPolicyGrantArray{ BucketAclV2AccessControlPolicyGrantArgs{...} } +type BucketAclV2AccessControlPolicyGrantArrayInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyGrantArrayOutput() BucketAclV2AccessControlPolicyGrantArrayOutput + ToBucketAclV2AccessControlPolicyGrantArrayOutputWithContext(context.Context) BucketAclV2AccessControlPolicyGrantArrayOutput +} + +type BucketAclV2AccessControlPolicyGrantArray []BucketAclV2AccessControlPolicyGrantInput + +func (BucketAclV2AccessControlPolicyGrantArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketAclV2AccessControlPolicyGrant)(nil)).Elem() +} + +func (i BucketAclV2AccessControlPolicyGrantArray) ToBucketAclV2AccessControlPolicyGrantArrayOutput() BucketAclV2AccessControlPolicyGrantArrayOutput { + return i.ToBucketAclV2AccessControlPolicyGrantArrayOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyGrantArray) ToBucketAclV2AccessControlPolicyGrantArrayOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyGrantArrayOutput) +} + +type BucketAclV2AccessControlPolicyGrantOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyGrantOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicyGrant)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyGrantOutput) ToBucketAclV2AccessControlPolicyGrantOutput() BucketAclV2AccessControlPolicyGrantOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantOutput) ToBucketAclV2AccessControlPolicyGrantOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantOutput { + return o +} + +// Configuration block for the person being granted permissions. See below. +func (o BucketAclV2AccessControlPolicyGrantOutput) Grantee() BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrant) *BucketAclV2AccessControlPolicyGrantGrantee { + return v.Grantee + }).(BucketAclV2AccessControlPolicyGrantGranteePtrOutput) +} + +// Logging permissions assigned to the grantee for the bucket. +func (o BucketAclV2AccessControlPolicyGrantOutput) Permission() pulumi.StringOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrant) string { return v.Permission }).(pulumi.StringOutput) +} + +type BucketAclV2AccessControlPolicyGrantArrayOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyGrantArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketAclV2AccessControlPolicyGrant)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyGrantArrayOutput) ToBucketAclV2AccessControlPolicyGrantArrayOutput() BucketAclV2AccessControlPolicyGrantArrayOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantArrayOutput) ToBucketAclV2AccessControlPolicyGrantArrayOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantArrayOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantArrayOutput) Index(i pulumi.IntInput) BucketAclV2AccessControlPolicyGrantOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketAclV2AccessControlPolicyGrant { + return vs[0].([]BucketAclV2AccessControlPolicyGrant)[vs[1].(int)] + }).(BucketAclV2AccessControlPolicyGrantOutput) +} + +type BucketAclV2AccessControlPolicyGrantGrantee struct { + // Display name of the owner. + DisplayName *string `pulumi:"displayName"` + // Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. + EmailAddress *string `pulumi:"emailAddress"` + // Canonical user ID of the grantee. + Id *string `pulumi:"id"` + // Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. + Type string `pulumi:"type"` + // URI of the grantee group. + Uri *string `pulumi:"uri"` +} + +// BucketAclV2AccessControlPolicyGrantGranteeInput is an input type that accepts BucketAclV2AccessControlPolicyGrantGranteeArgs and BucketAclV2AccessControlPolicyGrantGranteeOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyGrantGranteeInput` via: +// +// BucketAclV2AccessControlPolicyGrantGranteeArgs{...} +type BucketAclV2AccessControlPolicyGrantGranteeInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyGrantGranteeOutput() BucketAclV2AccessControlPolicyGrantGranteeOutput + ToBucketAclV2AccessControlPolicyGrantGranteeOutputWithContext(context.Context) BucketAclV2AccessControlPolicyGrantGranteeOutput +} + +type BucketAclV2AccessControlPolicyGrantGranteeArgs struct { + // Display name of the owner. + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. + EmailAddress pulumi.StringPtrInput `pulumi:"emailAddress"` + // Canonical user ID of the grantee. + Id pulumi.StringPtrInput `pulumi:"id"` + // Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. + Type pulumi.StringInput `pulumi:"type"` + // URI of the grantee group. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (BucketAclV2AccessControlPolicyGrantGranteeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicyGrantGrantee)(nil)).Elem() +} + +func (i BucketAclV2AccessControlPolicyGrantGranteeArgs) ToBucketAclV2AccessControlPolicyGrantGranteeOutput() BucketAclV2AccessControlPolicyGrantGranteeOutput { + return i.ToBucketAclV2AccessControlPolicyGrantGranteeOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyGrantGranteeArgs) ToBucketAclV2AccessControlPolicyGrantGranteeOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantGranteeOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyGrantGranteeOutput) +} + +func (i BucketAclV2AccessControlPolicyGrantGranteeArgs) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutput() BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return i.ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyGrantGranteeArgs) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyGrantGranteeOutput).ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(ctx) +} + +// BucketAclV2AccessControlPolicyGrantGranteePtrInput is an input type that accepts BucketAclV2AccessControlPolicyGrantGranteeArgs, BucketAclV2AccessControlPolicyGrantGranteePtr and BucketAclV2AccessControlPolicyGrantGranteePtrOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyGrantGranteePtrInput` via: +// +// BucketAclV2AccessControlPolicyGrantGranteeArgs{...} +// +// or: +// +// nil +type BucketAclV2AccessControlPolicyGrantGranteePtrInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyGrantGranteePtrOutput() BucketAclV2AccessControlPolicyGrantGranteePtrOutput + ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(context.Context) BucketAclV2AccessControlPolicyGrantGranteePtrOutput +} + +type bucketAclV2AccessControlPolicyGrantGranteePtrType BucketAclV2AccessControlPolicyGrantGranteeArgs + +func BucketAclV2AccessControlPolicyGrantGranteePtr(v *BucketAclV2AccessControlPolicyGrantGranteeArgs) BucketAclV2AccessControlPolicyGrantGranteePtrInput { + return (*bucketAclV2AccessControlPolicyGrantGranteePtrType)(v) +} + +func (*bucketAclV2AccessControlPolicyGrantGranteePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2AccessControlPolicyGrantGrantee)(nil)).Elem() +} + +func (i *bucketAclV2AccessControlPolicyGrantGranteePtrType) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutput() BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return i.ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(context.Background()) +} + +func (i *bucketAclV2AccessControlPolicyGrantGranteePtrType) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyGrantGranteePtrOutput) +} + +type BucketAclV2AccessControlPolicyGrantGranteeOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyGrantGranteeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicyGrantGrantee)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) ToBucketAclV2AccessControlPolicyGrantGranteeOutput() BucketAclV2AccessControlPolicyGrantGranteeOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) ToBucketAclV2AccessControlPolicyGrantGranteeOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantGranteeOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutput() BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return o.ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(context.Background()) +} + +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketAclV2AccessControlPolicyGrantGrantee) *BucketAclV2AccessControlPolicyGrantGrantee { + return &v + }).(BucketAclV2AccessControlPolicyGrantGranteePtrOutput) +} + +// Display name of the owner. +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrantGrantee) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) EmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrantGrantee) *string { return v.EmailAddress }).(pulumi.StringPtrOutput) +} + +// Canonical user ID of the grantee. +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrantGrantee) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrantGrantee) string { return v.Type }).(pulumi.StringOutput) +} + +// URI of the grantee group. +func (o BucketAclV2AccessControlPolicyGrantGranteeOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyGrantGrantee) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type BucketAclV2AccessControlPolicyGrantGranteePtrOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyGrantGranteePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2AccessControlPolicyGrantGrantee)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutput() BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) ToBucketAclV2AccessControlPolicyGrantGranteePtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyGrantGranteePtrOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) Elem() BucketAclV2AccessControlPolicyGrantGranteeOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyGrantGrantee) BucketAclV2AccessControlPolicyGrantGrantee { + if v != nil { + return *v + } + var ret BucketAclV2AccessControlPolicyGrantGrantee + return ret + }).(BucketAclV2AccessControlPolicyGrantGranteeOutput) +} + +// Display name of the owner. +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyGrantGrantee) *string { + if v == nil { + return nil + } + return v.DisplayName + }).(pulumi.StringPtrOutput) +} + +// Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) EmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyGrantGrantee) *string { + if v == nil { + return nil + } + return v.EmailAddress + }).(pulumi.StringPtrOutput) +} + +// Canonical user ID of the grantee. +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyGrantGrantee) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyGrantGrantee) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +// URI of the grantee group. +func (o BucketAclV2AccessControlPolicyGrantGranteePtrOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyGrantGrantee) *string { + if v == nil { + return nil + } + return v.Uri + }).(pulumi.StringPtrOutput) +} + +type BucketAclV2AccessControlPolicyOwner struct { + // Display name of the owner. + DisplayName *string `pulumi:"displayName"` + // ID of the owner. + Id string `pulumi:"id"` +} + +// BucketAclV2AccessControlPolicyOwnerInput is an input type that accepts BucketAclV2AccessControlPolicyOwnerArgs and BucketAclV2AccessControlPolicyOwnerOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyOwnerInput` via: +// +// BucketAclV2AccessControlPolicyOwnerArgs{...} +type BucketAclV2AccessControlPolicyOwnerInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyOwnerOutput() BucketAclV2AccessControlPolicyOwnerOutput + ToBucketAclV2AccessControlPolicyOwnerOutputWithContext(context.Context) BucketAclV2AccessControlPolicyOwnerOutput +} + +type BucketAclV2AccessControlPolicyOwnerArgs struct { + // Display name of the owner. + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // ID of the owner. + Id pulumi.StringInput `pulumi:"id"` +} + +func (BucketAclV2AccessControlPolicyOwnerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicyOwner)(nil)).Elem() +} + +func (i BucketAclV2AccessControlPolicyOwnerArgs) ToBucketAclV2AccessControlPolicyOwnerOutput() BucketAclV2AccessControlPolicyOwnerOutput { + return i.ToBucketAclV2AccessControlPolicyOwnerOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyOwnerArgs) ToBucketAclV2AccessControlPolicyOwnerOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOwnerOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyOwnerOutput) +} + +func (i BucketAclV2AccessControlPolicyOwnerArgs) ToBucketAclV2AccessControlPolicyOwnerPtrOutput() BucketAclV2AccessControlPolicyOwnerPtrOutput { + return i.ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(context.Background()) +} + +func (i BucketAclV2AccessControlPolicyOwnerArgs) ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOwnerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyOwnerOutput).ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(ctx) +} + +// BucketAclV2AccessControlPolicyOwnerPtrInput is an input type that accepts BucketAclV2AccessControlPolicyOwnerArgs, BucketAclV2AccessControlPolicyOwnerPtr and BucketAclV2AccessControlPolicyOwnerPtrOutput values. +// You can construct a concrete instance of `BucketAclV2AccessControlPolicyOwnerPtrInput` via: +// +// BucketAclV2AccessControlPolicyOwnerArgs{...} +// +// or: +// +// nil +type BucketAclV2AccessControlPolicyOwnerPtrInput interface { + pulumi.Input + + ToBucketAclV2AccessControlPolicyOwnerPtrOutput() BucketAclV2AccessControlPolicyOwnerPtrOutput + ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(context.Context) BucketAclV2AccessControlPolicyOwnerPtrOutput +} + +type bucketAclV2AccessControlPolicyOwnerPtrType BucketAclV2AccessControlPolicyOwnerArgs + +func BucketAclV2AccessControlPolicyOwnerPtr(v *BucketAclV2AccessControlPolicyOwnerArgs) BucketAclV2AccessControlPolicyOwnerPtrInput { + return (*bucketAclV2AccessControlPolicyOwnerPtrType)(v) +} + +func (*bucketAclV2AccessControlPolicyOwnerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2AccessControlPolicyOwner)(nil)).Elem() +} + +func (i *bucketAclV2AccessControlPolicyOwnerPtrType) ToBucketAclV2AccessControlPolicyOwnerPtrOutput() BucketAclV2AccessControlPolicyOwnerPtrOutput { + return i.ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(context.Background()) +} + +func (i *bucketAclV2AccessControlPolicyOwnerPtrType) ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOwnerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketAclV2AccessControlPolicyOwnerPtrOutput) +} + +type BucketAclV2AccessControlPolicyOwnerOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyOwnerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketAclV2AccessControlPolicyOwner)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyOwnerOutput) ToBucketAclV2AccessControlPolicyOwnerOutput() BucketAclV2AccessControlPolicyOwnerOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyOwnerOutput) ToBucketAclV2AccessControlPolicyOwnerOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOwnerOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyOwnerOutput) ToBucketAclV2AccessControlPolicyOwnerPtrOutput() BucketAclV2AccessControlPolicyOwnerPtrOutput { + return o.ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(context.Background()) +} + +func (o BucketAclV2AccessControlPolicyOwnerOutput) ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOwnerPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketAclV2AccessControlPolicyOwner) *BucketAclV2AccessControlPolicyOwner { + return &v + }).(BucketAclV2AccessControlPolicyOwnerPtrOutput) +} + +// Display name of the owner. +func (o BucketAclV2AccessControlPolicyOwnerOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyOwner) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// ID of the owner. +func (o BucketAclV2AccessControlPolicyOwnerOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v BucketAclV2AccessControlPolicyOwner) string { return v.Id }).(pulumi.StringOutput) +} + +type BucketAclV2AccessControlPolicyOwnerPtrOutput struct{ *pulumi.OutputState } + +func (BucketAclV2AccessControlPolicyOwnerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketAclV2AccessControlPolicyOwner)(nil)).Elem() +} + +func (o BucketAclV2AccessControlPolicyOwnerPtrOutput) ToBucketAclV2AccessControlPolicyOwnerPtrOutput() BucketAclV2AccessControlPolicyOwnerPtrOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyOwnerPtrOutput) ToBucketAclV2AccessControlPolicyOwnerPtrOutputWithContext(ctx context.Context) BucketAclV2AccessControlPolicyOwnerPtrOutput { + return o +} + +func (o BucketAclV2AccessControlPolicyOwnerPtrOutput) Elem() BucketAclV2AccessControlPolicyOwnerOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyOwner) BucketAclV2AccessControlPolicyOwner { + if v != nil { + return *v + } + var ret BucketAclV2AccessControlPolicyOwner + return ret + }).(BucketAclV2AccessControlPolicyOwnerOutput) +} + +// Display name of the owner. +func (o BucketAclV2AccessControlPolicyOwnerPtrOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyOwner) *string { + if v == nil { + return nil + } + return v.DisplayName + }).(pulumi.StringPtrOutput) +} + +// ID of the owner. +func (o BucketAclV2AccessControlPolicyOwnerPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketAclV2AccessControlPolicyOwner) *string { + if v == nil { + return nil + } + return &v.Id + }).(pulumi.StringPtrOutput) +} + +type BucketCorsConfigurationV2CorsRule struct { + // Set of Headers that are specified in the `Access-Control-Request-Headers` header. + AllowedHeaders []string `pulumi:"allowedHeaders"` + // Set of HTTP methods that you allow the origin to execute. Valid values are `GET`, `PUT`, `HEAD`, `POST`, and `DELETE`. + AllowedMethods []string `pulumi:"allowedMethods"` + // Set of origins you want customers to be able to access the bucket from. + AllowedOrigins []string `pulumi:"allowedOrigins"` + // Set of headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Unique identifier for the rule. The value cannot be longer than 255 characters. + Id *string `pulumi:"id"` + // Time in seconds that your browser is to cache the preflight response for the specified resource. + MaxAgeSeconds *int `pulumi:"maxAgeSeconds"` +} + +// BucketCorsConfigurationV2CorsRuleInput is an input type that accepts BucketCorsConfigurationV2CorsRuleArgs and BucketCorsConfigurationV2CorsRuleOutput values. +// You can construct a concrete instance of `BucketCorsConfigurationV2CorsRuleInput` via: +// +// BucketCorsConfigurationV2CorsRuleArgs{...} +type BucketCorsConfigurationV2CorsRuleInput interface { + pulumi.Input + + ToBucketCorsConfigurationV2CorsRuleOutput() BucketCorsConfigurationV2CorsRuleOutput + ToBucketCorsConfigurationV2CorsRuleOutputWithContext(context.Context) BucketCorsConfigurationV2CorsRuleOutput +} + +type BucketCorsConfigurationV2CorsRuleArgs struct { + // Set of Headers that are specified in the `Access-Control-Request-Headers` header. + AllowedHeaders pulumi.StringArrayInput `pulumi:"allowedHeaders"` + // Set of HTTP methods that you allow the origin to execute. Valid values are `GET`, `PUT`, `HEAD`, `POST`, and `DELETE`. + AllowedMethods pulumi.StringArrayInput `pulumi:"allowedMethods"` + // Set of origins you want customers to be able to access the bucket from. + AllowedOrigins pulumi.StringArrayInput `pulumi:"allowedOrigins"` + // Set of headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Unique identifier for the rule. The value cannot be longer than 255 characters. + Id pulumi.StringPtrInput `pulumi:"id"` + // Time in seconds that your browser is to cache the preflight response for the specified resource. + MaxAgeSeconds pulumi.IntPtrInput `pulumi:"maxAgeSeconds"` +} + +func (BucketCorsConfigurationV2CorsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketCorsConfigurationV2CorsRule)(nil)).Elem() +} + +func (i BucketCorsConfigurationV2CorsRuleArgs) ToBucketCorsConfigurationV2CorsRuleOutput() BucketCorsConfigurationV2CorsRuleOutput { + return i.ToBucketCorsConfigurationV2CorsRuleOutputWithContext(context.Background()) +} + +func (i BucketCorsConfigurationV2CorsRuleArgs) ToBucketCorsConfigurationV2CorsRuleOutputWithContext(ctx context.Context) BucketCorsConfigurationV2CorsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsConfigurationV2CorsRuleOutput) +} + +// BucketCorsConfigurationV2CorsRuleArrayInput is an input type that accepts BucketCorsConfigurationV2CorsRuleArray and BucketCorsConfigurationV2CorsRuleArrayOutput values. +// You can construct a concrete instance of `BucketCorsConfigurationV2CorsRuleArrayInput` via: +// +// BucketCorsConfigurationV2CorsRuleArray{ BucketCorsConfigurationV2CorsRuleArgs{...} } +type BucketCorsConfigurationV2CorsRuleArrayInput interface { + pulumi.Input + + ToBucketCorsConfigurationV2CorsRuleArrayOutput() BucketCorsConfigurationV2CorsRuleArrayOutput + ToBucketCorsConfigurationV2CorsRuleArrayOutputWithContext(context.Context) BucketCorsConfigurationV2CorsRuleArrayOutput +} + +type BucketCorsConfigurationV2CorsRuleArray []BucketCorsConfigurationV2CorsRuleInput + +func (BucketCorsConfigurationV2CorsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketCorsConfigurationV2CorsRule)(nil)).Elem() +} + +func (i BucketCorsConfigurationV2CorsRuleArray) ToBucketCorsConfigurationV2CorsRuleArrayOutput() BucketCorsConfigurationV2CorsRuleArrayOutput { + return i.ToBucketCorsConfigurationV2CorsRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketCorsConfigurationV2CorsRuleArray) ToBucketCorsConfigurationV2CorsRuleArrayOutputWithContext(ctx context.Context) BucketCorsConfigurationV2CorsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsConfigurationV2CorsRuleArrayOutput) +} + +type BucketCorsConfigurationV2CorsRuleOutput struct{ *pulumi.OutputState } + +func (BucketCorsConfigurationV2CorsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketCorsConfigurationV2CorsRule)(nil)).Elem() +} + +func (o BucketCorsConfigurationV2CorsRuleOutput) ToBucketCorsConfigurationV2CorsRuleOutput() BucketCorsConfigurationV2CorsRuleOutput { + return o +} + +func (o BucketCorsConfigurationV2CorsRuleOutput) ToBucketCorsConfigurationV2CorsRuleOutputWithContext(ctx context.Context) BucketCorsConfigurationV2CorsRuleOutput { + return o +} + +// Set of Headers that are specified in the `Access-Control-Request-Headers` header. +func (o BucketCorsConfigurationV2CorsRuleOutput) AllowedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsConfigurationV2CorsRule) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) +} + +// Set of HTTP methods that you allow the origin to execute. Valid values are `GET`, `PUT`, `HEAD`, `POST`, and `DELETE`. +func (o BucketCorsConfigurationV2CorsRuleOutput) AllowedMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsConfigurationV2CorsRule) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) +} + +// Set of origins you want customers to be able to access the bucket from. +func (o BucketCorsConfigurationV2CorsRuleOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsConfigurationV2CorsRule) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +} + +// Set of headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). +func (o BucketCorsConfigurationV2CorsRuleOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsConfigurationV2CorsRule) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +} + +// Unique identifier for the rule. The value cannot be longer than 255 characters. +func (o BucketCorsConfigurationV2CorsRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketCorsConfigurationV2CorsRule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Time in seconds that your browser is to cache the preflight response for the specified resource. +func (o BucketCorsConfigurationV2CorsRuleOutput) MaxAgeSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketCorsConfigurationV2CorsRule) *int { return v.MaxAgeSeconds }).(pulumi.IntPtrOutput) +} + +type BucketCorsConfigurationV2CorsRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketCorsConfigurationV2CorsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketCorsConfigurationV2CorsRule)(nil)).Elem() +} + +func (o BucketCorsConfigurationV2CorsRuleArrayOutput) ToBucketCorsConfigurationV2CorsRuleArrayOutput() BucketCorsConfigurationV2CorsRuleArrayOutput { + return o +} + +func (o BucketCorsConfigurationV2CorsRuleArrayOutput) ToBucketCorsConfigurationV2CorsRuleArrayOutputWithContext(ctx context.Context) BucketCorsConfigurationV2CorsRuleArrayOutput { + return o +} + +func (o BucketCorsConfigurationV2CorsRuleArrayOutput) Index(i pulumi.IntInput) BucketCorsConfigurationV2CorsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketCorsConfigurationV2CorsRule { + return vs[0].([]BucketCorsConfigurationV2CorsRule)[vs[1].(int)] + }).(BucketCorsConfigurationV2CorsRuleOutput) +} + +type BucketCorsRule struct { + // Specifies which headers are allowed. + AllowedHeaders []string `pulumi:"allowedHeaders"` + // Specifies which methods are allowed. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`. + AllowedMethods []string `pulumi:"allowedMethods"` + // Specifies which origins are allowed. + AllowedOrigins []string `pulumi:"allowedOrigins"` + // Specifies expose header in the response. + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Specifies time in seconds that browser can cache the response for a preflight request. + MaxAgeSeconds *int `pulumi:"maxAgeSeconds"` +} + +// BucketCorsRuleInput is an input type that accepts BucketCorsRuleArgs and BucketCorsRuleOutput values. +// You can construct a concrete instance of `BucketCorsRuleInput` via: +// +// BucketCorsRuleArgs{...} +type BucketCorsRuleInput interface { + pulumi.Input + + ToBucketCorsRuleOutput() BucketCorsRuleOutput + ToBucketCorsRuleOutputWithContext(context.Context) BucketCorsRuleOutput +} + +type BucketCorsRuleArgs struct { + // Specifies which headers are allowed. + AllowedHeaders pulumi.StringArrayInput `pulumi:"allowedHeaders"` + // Specifies which methods are allowed. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`. + AllowedMethods pulumi.StringArrayInput `pulumi:"allowedMethods"` + // Specifies which origins are allowed. + AllowedOrigins pulumi.StringArrayInput `pulumi:"allowedOrigins"` + // Specifies expose header in the response. + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Specifies time in seconds that browser can cache the response for a preflight request. + MaxAgeSeconds pulumi.IntPtrInput `pulumi:"maxAgeSeconds"` +} + +func (BucketCorsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketCorsRule)(nil)).Elem() +} + +func (i BucketCorsRuleArgs) ToBucketCorsRuleOutput() BucketCorsRuleOutput { + return i.ToBucketCorsRuleOutputWithContext(context.Background()) +} + +func (i BucketCorsRuleArgs) ToBucketCorsRuleOutputWithContext(ctx context.Context) BucketCorsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsRuleOutput) +} + +// BucketCorsRuleArrayInput is an input type that accepts BucketCorsRuleArray and BucketCorsRuleArrayOutput values. +// You can construct a concrete instance of `BucketCorsRuleArrayInput` via: +// +// BucketCorsRuleArray{ BucketCorsRuleArgs{...} } +type BucketCorsRuleArrayInput interface { + pulumi.Input + + ToBucketCorsRuleArrayOutput() BucketCorsRuleArrayOutput + ToBucketCorsRuleArrayOutputWithContext(context.Context) BucketCorsRuleArrayOutput +} + +type BucketCorsRuleArray []BucketCorsRuleInput + +func (BucketCorsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketCorsRule)(nil)).Elem() +} + +func (i BucketCorsRuleArray) ToBucketCorsRuleArrayOutput() BucketCorsRuleArrayOutput { + return i.ToBucketCorsRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketCorsRuleArray) ToBucketCorsRuleArrayOutputWithContext(ctx context.Context) BucketCorsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketCorsRuleArrayOutput) +} + +type BucketCorsRuleOutput struct{ *pulumi.OutputState } + +func (BucketCorsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketCorsRule)(nil)).Elem() +} + +func (o BucketCorsRuleOutput) ToBucketCorsRuleOutput() BucketCorsRuleOutput { + return o +} + +func (o BucketCorsRuleOutput) ToBucketCorsRuleOutputWithContext(ctx context.Context) BucketCorsRuleOutput { + return o +} + +// Specifies which headers are allowed. +func (o BucketCorsRuleOutput) AllowedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsRule) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) +} + +// Specifies which methods are allowed. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`. +func (o BucketCorsRuleOutput) AllowedMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsRule) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) +} + +// Specifies which origins are allowed. +func (o BucketCorsRuleOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsRule) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +} + +// Specifies expose header in the response. +func (o BucketCorsRuleOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketCorsRule) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +} + +// Specifies time in seconds that browser can cache the response for a preflight request. +func (o BucketCorsRuleOutput) MaxAgeSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketCorsRule) *int { return v.MaxAgeSeconds }).(pulumi.IntPtrOutput) +} + +type BucketCorsRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketCorsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketCorsRule)(nil)).Elem() +} + +func (o BucketCorsRuleArrayOutput) ToBucketCorsRuleArrayOutput() BucketCorsRuleArrayOutput { + return o +} + +func (o BucketCorsRuleArrayOutput) ToBucketCorsRuleArrayOutputWithContext(ctx context.Context) BucketCorsRuleArrayOutput { + return o +} + +func (o BucketCorsRuleArrayOutput) Index(i pulumi.IntInput) BucketCorsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketCorsRule { + return vs[0].([]BucketCorsRule)[vs[1].(int)] + }).(BucketCorsRuleOutput) +} + +type BucketGrant struct { + // Canonical user id to grant for. Used only when `type` is `CanonicalUser`. + Id *string `pulumi:"id"` + // List of permissions to apply for grantee. Valid values are `READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. + Permissions []string `pulumi:"permissions"` + // Type of grantee to apply for. Valid values are `CanonicalUser` and `Group`. `AmazonCustomerByEmail` is not supported. + Type string `pulumi:"type"` + // Uri address to grant for. Used only when `type` is `Group`. + Uri *string `pulumi:"uri"` +} + +// BucketGrantInput is an input type that accepts BucketGrantArgs and BucketGrantOutput values. +// You can construct a concrete instance of `BucketGrantInput` via: +// +// BucketGrantArgs{...} +type BucketGrantInput interface { + pulumi.Input + + ToBucketGrantOutput() BucketGrantOutput + ToBucketGrantOutputWithContext(context.Context) BucketGrantOutput +} + +type BucketGrantArgs struct { + // Canonical user id to grant for. Used only when `type` is `CanonicalUser`. + Id pulumi.StringPtrInput `pulumi:"id"` + // List of permissions to apply for grantee. Valid values are `READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. + Permissions pulumi.StringArrayInput `pulumi:"permissions"` + // Type of grantee to apply for. Valid values are `CanonicalUser` and `Group`. `AmazonCustomerByEmail` is not supported. + Type pulumi.StringInput `pulumi:"type"` + // Uri address to grant for. Used only when `type` is `Group`. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (BucketGrantArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketGrant)(nil)).Elem() +} + +func (i BucketGrantArgs) ToBucketGrantOutput() BucketGrantOutput { + return i.ToBucketGrantOutputWithContext(context.Background()) +} + +func (i BucketGrantArgs) ToBucketGrantOutputWithContext(ctx context.Context) BucketGrantOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketGrantOutput) +} + +// BucketGrantArrayInput is an input type that accepts BucketGrantArray and BucketGrantArrayOutput values. +// You can construct a concrete instance of `BucketGrantArrayInput` via: +// +// BucketGrantArray{ BucketGrantArgs{...} } +type BucketGrantArrayInput interface { + pulumi.Input + + ToBucketGrantArrayOutput() BucketGrantArrayOutput + ToBucketGrantArrayOutputWithContext(context.Context) BucketGrantArrayOutput +} + +type BucketGrantArray []BucketGrantInput + +func (BucketGrantArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketGrant)(nil)).Elem() +} + +func (i BucketGrantArray) ToBucketGrantArrayOutput() BucketGrantArrayOutput { + return i.ToBucketGrantArrayOutputWithContext(context.Background()) +} + +func (i BucketGrantArray) ToBucketGrantArrayOutputWithContext(ctx context.Context) BucketGrantArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketGrantArrayOutput) +} + +type BucketGrantOutput struct{ *pulumi.OutputState } + +func (BucketGrantOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketGrant)(nil)).Elem() +} + +func (o BucketGrantOutput) ToBucketGrantOutput() BucketGrantOutput { + return o +} + +func (o BucketGrantOutput) ToBucketGrantOutputWithContext(ctx context.Context) BucketGrantOutput { + return o +} + +// Canonical user id to grant for. Used only when `type` is `CanonicalUser`. +func (o BucketGrantOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketGrant) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// List of permissions to apply for grantee. Valid values are `READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. +func (o BucketGrantOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketGrant) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Type of grantee to apply for. Valid values are `CanonicalUser` and `Group`. `AmazonCustomerByEmail` is not supported. +func (o BucketGrantOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v BucketGrant) string { return v.Type }).(pulumi.StringOutput) +} + +// Uri address to grant for. Used only when `type` is `Group`. +func (o BucketGrantOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketGrant) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type BucketGrantArrayOutput struct{ *pulumi.OutputState } + +func (BucketGrantArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketGrant)(nil)).Elem() +} + +func (o BucketGrantArrayOutput) ToBucketGrantArrayOutput() BucketGrantArrayOutput { + return o +} + +func (o BucketGrantArrayOutput) ToBucketGrantArrayOutputWithContext(ctx context.Context) BucketGrantArrayOutput { + return o +} + +func (o BucketGrantArrayOutput) Index(i pulumi.IntInput) BucketGrantOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketGrant { + return vs[0].([]BucketGrant)[vs[1].(int)] + }).(BucketGrantOutput) +} + +type BucketIntelligentTieringConfigurationFilter struct { + // Object key name prefix that identifies the subset of objects to which the configuration applies. + Prefix *string `pulumi:"prefix"` + // All of these tags must exist in the object's tag set in order for the configuration to apply. + Tags map[string]string `pulumi:"tags"` +} + +// BucketIntelligentTieringConfigurationFilterInput is an input type that accepts BucketIntelligentTieringConfigurationFilterArgs and BucketIntelligentTieringConfigurationFilterOutput values. +// You can construct a concrete instance of `BucketIntelligentTieringConfigurationFilterInput` via: +// +// BucketIntelligentTieringConfigurationFilterArgs{...} +type BucketIntelligentTieringConfigurationFilterInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationFilterOutput() BucketIntelligentTieringConfigurationFilterOutput + ToBucketIntelligentTieringConfigurationFilterOutputWithContext(context.Context) BucketIntelligentTieringConfigurationFilterOutput +} + +type BucketIntelligentTieringConfigurationFilterArgs struct { + // Object key name prefix that identifies the subset of objects to which the configuration applies. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // All of these tags must exist in the object's tag set in order for the configuration to apply. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketIntelligentTieringConfigurationFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketIntelligentTieringConfigurationFilter)(nil)).Elem() +} + +func (i BucketIntelligentTieringConfigurationFilterArgs) ToBucketIntelligentTieringConfigurationFilterOutput() BucketIntelligentTieringConfigurationFilterOutput { + return i.ToBucketIntelligentTieringConfigurationFilterOutputWithContext(context.Background()) +} + +func (i BucketIntelligentTieringConfigurationFilterArgs) ToBucketIntelligentTieringConfigurationFilterOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationFilterOutput) +} + +func (i BucketIntelligentTieringConfigurationFilterArgs) ToBucketIntelligentTieringConfigurationFilterPtrOutput() BucketIntelligentTieringConfigurationFilterPtrOutput { + return i.ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(context.Background()) +} + +func (i BucketIntelligentTieringConfigurationFilterArgs) ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationFilterOutput).ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(ctx) +} + +// BucketIntelligentTieringConfigurationFilterPtrInput is an input type that accepts BucketIntelligentTieringConfigurationFilterArgs, BucketIntelligentTieringConfigurationFilterPtr and BucketIntelligentTieringConfigurationFilterPtrOutput values. +// You can construct a concrete instance of `BucketIntelligentTieringConfigurationFilterPtrInput` via: +// +// BucketIntelligentTieringConfigurationFilterArgs{...} +// +// or: +// +// nil +type BucketIntelligentTieringConfigurationFilterPtrInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationFilterPtrOutput() BucketIntelligentTieringConfigurationFilterPtrOutput + ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(context.Context) BucketIntelligentTieringConfigurationFilterPtrOutput +} + +type bucketIntelligentTieringConfigurationFilterPtrType BucketIntelligentTieringConfigurationFilterArgs + +func BucketIntelligentTieringConfigurationFilterPtr(v *BucketIntelligentTieringConfigurationFilterArgs) BucketIntelligentTieringConfigurationFilterPtrInput { + return (*bucketIntelligentTieringConfigurationFilterPtrType)(v) +} + +func (*bucketIntelligentTieringConfigurationFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketIntelligentTieringConfigurationFilter)(nil)).Elem() +} + +func (i *bucketIntelligentTieringConfigurationFilterPtrType) ToBucketIntelligentTieringConfigurationFilterPtrOutput() BucketIntelligentTieringConfigurationFilterPtrOutput { + return i.ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(context.Background()) +} + +func (i *bucketIntelligentTieringConfigurationFilterPtrType) ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationFilterPtrOutput) +} + +type BucketIntelligentTieringConfigurationFilterOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketIntelligentTieringConfigurationFilter)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationFilterOutput) ToBucketIntelligentTieringConfigurationFilterOutput() BucketIntelligentTieringConfigurationFilterOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationFilterOutput) ToBucketIntelligentTieringConfigurationFilterOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationFilterOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationFilterOutput) ToBucketIntelligentTieringConfigurationFilterPtrOutput() BucketIntelligentTieringConfigurationFilterPtrOutput { + return o.ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(context.Background()) +} + +func (o BucketIntelligentTieringConfigurationFilterOutput) ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketIntelligentTieringConfigurationFilter) *BucketIntelligentTieringConfigurationFilter { + return &v + }).(BucketIntelligentTieringConfigurationFilterPtrOutput) +} + +// Object key name prefix that identifies the subset of objects to which the configuration applies. +func (o BucketIntelligentTieringConfigurationFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketIntelligentTieringConfigurationFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// All of these tags must exist in the object's tag set in order for the configuration to apply. +func (o BucketIntelligentTieringConfigurationFilterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketIntelligentTieringConfigurationFilter) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketIntelligentTieringConfigurationFilterPtrOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketIntelligentTieringConfigurationFilter)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationFilterPtrOutput) ToBucketIntelligentTieringConfigurationFilterPtrOutput() BucketIntelligentTieringConfigurationFilterPtrOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationFilterPtrOutput) ToBucketIntelligentTieringConfigurationFilterPtrOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationFilterPtrOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationFilterPtrOutput) Elem() BucketIntelligentTieringConfigurationFilterOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfigurationFilter) BucketIntelligentTieringConfigurationFilter { + if v != nil { + return *v + } + var ret BucketIntelligentTieringConfigurationFilter + return ret + }).(BucketIntelligentTieringConfigurationFilterOutput) +} + +// Object key name prefix that identifies the subset of objects to which the configuration applies. +func (o BucketIntelligentTieringConfigurationFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfigurationFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// All of these tags must exist in the object's tag set in order for the configuration to apply. +func (o BucketIntelligentTieringConfigurationFilterPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketIntelligentTieringConfigurationFilter) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type BucketIntelligentTieringConfigurationTiering struct { + // S3 Intelligent-Tiering access tier. Valid values: `ARCHIVE_ACCESS`, `DEEP_ARCHIVE_ACCESS`. + AccessTier string `pulumi:"accessTier"` + // Number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. + Days int `pulumi:"days"` +} + +// BucketIntelligentTieringConfigurationTieringInput is an input type that accepts BucketIntelligentTieringConfigurationTieringArgs and BucketIntelligentTieringConfigurationTieringOutput values. +// You can construct a concrete instance of `BucketIntelligentTieringConfigurationTieringInput` via: +// +// BucketIntelligentTieringConfigurationTieringArgs{...} +type BucketIntelligentTieringConfigurationTieringInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationTieringOutput() BucketIntelligentTieringConfigurationTieringOutput + ToBucketIntelligentTieringConfigurationTieringOutputWithContext(context.Context) BucketIntelligentTieringConfigurationTieringOutput +} + +type BucketIntelligentTieringConfigurationTieringArgs struct { + // S3 Intelligent-Tiering access tier. Valid values: `ARCHIVE_ACCESS`, `DEEP_ARCHIVE_ACCESS`. + AccessTier pulumi.StringInput `pulumi:"accessTier"` + // Number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. + Days pulumi.IntInput `pulumi:"days"` +} + +func (BucketIntelligentTieringConfigurationTieringArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketIntelligentTieringConfigurationTiering)(nil)).Elem() +} + +func (i BucketIntelligentTieringConfigurationTieringArgs) ToBucketIntelligentTieringConfigurationTieringOutput() BucketIntelligentTieringConfigurationTieringOutput { + return i.ToBucketIntelligentTieringConfigurationTieringOutputWithContext(context.Background()) +} + +func (i BucketIntelligentTieringConfigurationTieringArgs) ToBucketIntelligentTieringConfigurationTieringOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationTieringOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationTieringOutput) +} + +// BucketIntelligentTieringConfigurationTieringArrayInput is an input type that accepts BucketIntelligentTieringConfigurationTieringArray and BucketIntelligentTieringConfigurationTieringArrayOutput values. +// You can construct a concrete instance of `BucketIntelligentTieringConfigurationTieringArrayInput` via: +// +// BucketIntelligentTieringConfigurationTieringArray{ BucketIntelligentTieringConfigurationTieringArgs{...} } +type BucketIntelligentTieringConfigurationTieringArrayInput interface { + pulumi.Input + + ToBucketIntelligentTieringConfigurationTieringArrayOutput() BucketIntelligentTieringConfigurationTieringArrayOutput + ToBucketIntelligentTieringConfigurationTieringArrayOutputWithContext(context.Context) BucketIntelligentTieringConfigurationTieringArrayOutput +} + +type BucketIntelligentTieringConfigurationTieringArray []BucketIntelligentTieringConfigurationTieringInput + +func (BucketIntelligentTieringConfigurationTieringArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketIntelligentTieringConfigurationTiering)(nil)).Elem() +} + +func (i BucketIntelligentTieringConfigurationTieringArray) ToBucketIntelligentTieringConfigurationTieringArrayOutput() BucketIntelligentTieringConfigurationTieringArrayOutput { + return i.ToBucketIntelligentTieringConfigurationTieringArrayOutputWithContext(context.Background()) +} + +func (i BucketIntelligentTieringConfigurationTieringArray) ToBucketIntelligentTieringConfigurationTieringArrayOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationTieringArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketIntelligentTieringConfigurationTieringArrayOutput) +} + +type BucketIntelligentTieringConfigurationTieringOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationTieringOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketIntelligentTieringConfigurationTiering)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationTieringOutput) ToBucketIntelligentTieringConfigurationTieringOutput() BucketIntelligentTieringConfigurationTieringOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationTieringOutput) ToBucketIntelligentTieringConfigurationTieringOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationTieringOutput { + return o +} + +// S3 Intelligent-Tiering access tier. Valid values: `ARCHIVE_ACCESS`, `DEEP_ARCHIVE_ACCESS`. +func (o BucketIntelligentTieringConfigurationTieringOutput) AccessTier() pulumi.StringOutput { + return o.ApplyT(func(v BucketIntelligentTieringConfigurationTiering) string { return v.AccessTier }).(pulumi.StringOutput) +} + +// Number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. +func (o BucketIntelligentTieringConfigurationTieringOutput) Days() pulumi.IntOutput { + return o.ApplyT(func(v BucketIntelligentTieringConfigurationTiering) int { return v.Days }).(pulumi.IntOutput) +} + +type BucketIntelligentTieringConfigurationTieringArrayOutput struct{ *pulumi.OutputState } + +func (BucketIntelligentTieringConfigurationTieringArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketIntelligentTieringConfigurationTiering)(nil)).Elem() +} + +func (o BucketIntelligentTieringConfigurationTieringArrayOutput) ToBucketIntelligentTieringConfigurationTieringArrayOutput() BucketIntelligentTieringConfigurationTieringArrayOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationTieringArrayOutput) ToBucketIntelligentTieringConfigurationTieringArrayOutputWithContext(ctx context.Context) BucketIntelligentTieringConfigurationTieringArrayOutput { + return o +} + +func (o BucketIntelligentTieringConfigurationTieringArrayOutput) Index(i pulumi.IntInput) BucketIntelligentTieringConfigurationTieringOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketIntelligentTieringConfigurationTiering { + return vs[0].([]BucketIntelligentTieringConfigurationTiering)[vs[1].(int)] + }).(BucketIntelligentTieringConfigurationTieringOutput) +} + +type BucketLifecycleConfigurationV2Rule struct { + // Configuration block that specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. See below. + AbortIncompleteMultipartUpload *BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload `pulumi:"abortIncompleteMultipartUpload"` + // Configuration block that specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker. See below. + Expiration *BucketLifecycleConfigurationV2RuleExpiration `pulumi:"expiration"` + // Configuration block used to identify objects that a Lifecycle Rule applies to. See below. If not specified, the `rule` will default to using `prefix`. + Filter *BucketLifecycleConfigurationV2RuleFilter `pulumi:"filter"` + // Unique identifier for the rule. The value cannot be longer than 255 characters. + Id string `pulumi:"id"` + // Configuration block that specifies when noncurrent object versions expire. See below. + NoncurrentVersionExpiration *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration `pulumi:"noncurrentVersionExpiration"` + // Set of configuration blocks that specify the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. See below. + NoncurrentVersionTransitions []BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition `pulumi:"noncurrentVersionTransitions"` + // **DEPRECATED** Use `filter` instead. This has been deprecated by Amazon S3. Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if `filter` is not specified. + // + // Deprecated: Use filter instead + Prefix *string `pulumi:"prefix"` + // Whether the rule is currently being applied. Valid values: `Enabled` or `Disabled`. + Status string `pulumi:"status"` + // Set of configuration blocks that specify when an Amazon S3 object transitions to a specified storage class. See below. + Transitions []BucketLifecycleConfigurationV2RuleTransition `pulumi:"transitions"` +} + +// BucketLifecycleConfigurationV2RuleInput is an input type that accepts BucketLifecycleConfigurationV2RuleArgs and BucketLifecycleConfigurationV2RuleOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleInput` via: +// +// BucketLifecycleConfigurationV2RuleArgs{...} +type BucketLifecycleConfigurationV2RuleInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleOutput() BucketLifecycleConfigurationV2RuleOutput + ToBucketLifecycleConfigurationV2RuleOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleOutput +} + +type BucketLifecycleConfigurationV2RuleArgs struct { + // Configuration block that specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. See below. + AbortIncompleteMultipartUpload BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrInput `pulumi:"abortIncompleteMultipartUpload"` + // Configuration block that specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker. See below. + Expiration BucketLifecycleConfigurationV2RuleExpirationPtrInput `pulumi:"expiration"` + // Configuration block used to identify objects that a Lifecycle Rule applies to. See below. If not specified, the `rule` will default to using `prefix`. + Filter BucketLifecycleConfigurationV2RuleFilterPtrInput `pulumi:"filter"` + // Unique identifier for the rule. The value cannot be longer than 255 characters. + Id pulumi.StringInput `pulumi:"id"` + // Configuration block that specifies when noncurrent object versions expire. See below. + NoncurrentVersionExpiration BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrInput `pulumi:"noncurrentVersionExpiration"` + // Set of configuration blocks that specify the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. See below. + NoncurrentVersionTransitions BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayInput `pulumi:"noncurrentVersionTransitions"` + // **DEPRECATED** Use `filter` instead. This has been deprecated by Amazon S3. Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if `filter` is not specified. + // + // Deprecated: Use filter instead + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Whether the rule is currently being applied. Valid values: `Enabled` or `Disabled`. + Status pulumi.StringInput `pulumi:"status"` + // Set of configuration blocks that specify when an Amazon S3 object transitions to a specified storage class. See below. + Transitions BucketLifecycleConfigurationV2RuleTransitionArrayInput `pulumi:"transitions"` +} + +func (BucketLifecycleConfigurationV2RuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2Rule)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleArgs) ToBucketLifecycleConfigurationV2RuleOutput() BucketLifecycleConfigurationV2RuleOutput { + return i.ToBucketLifecycleConfigurationV2RuleOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleArgs) ToBucketLifecycleConfigurationV2RuleOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleOutput) +} + +// BucketLifecycleConfigurationV2RuleArrayInput is an input type that accepts BucketLifecycleConfigurationV2RuleArray and BucketLifecycleConfigurationV2RuleArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleArrayInput` via: +// +// BucketLifecycleConfigurationV2RuleArray{ BucketLifecycleConfigurationV2RuleArgs{...} } +type BucketLifecycleConfigurationV2RuleArrayInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleArrayOutput() BucketLifecycleConfigurationV2RuleArrayOutput + ToBucketLifecycleConfigurationV2RuleArrayOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleArrayOutput +} + +type BucketLifecycleConfigurationV2RuleArray []BucketLifecycleConfigurationV2RuleInput + +func (BucketLifecycleConfigurationV2RuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleConfigurationV2Rule)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleArray) ToBucketLifecycleConfigurationV2RuleArrayOutput() BucketLifecycleConfigurationV2RuleArrayOutput { + return i.ToBucketLifecycleConfigurationV2RuleArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleArray) ToBucketLifecycleConfigurationV2RuleArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleArrayOutput) +} + +type BucketLifecycleConfigurationV2RuleOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2Rule)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleOutput) ToBucketLifecycleConfigurationV2RuleOutput() BucketLifecycleConfigurationV2RuleOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleOutput) ToBucketLifecycleConfigurationV2RuleOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleOutput { + return o +} + +// Configuration block that specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. See below. +func (o BucketLifecycleConfigurationV2RuleOutput) AbortIncompleteMultipartUpload() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) *BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload { + return v.AbortIncompleteMultipartUpload + }).(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) +} + +// Configuration block that specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker. See below. +func (o BucketLifecycleConfigurationV2RuleOutput) Expiration() BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) *BucketLifecycleConfigurationV2RuleExpiration { + return v.Expiration + }).(BucketLifecycleConfigurationV2RuleExpirationPtrOutput) +} + +// Configuration block used to identify objects that a Lifecycle Rule applies to. See below. If not specified, the `rule` will default to using `prefix`. +func (o BucketLifecycleConfigurationV2RuleOutput) Filter() BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) *BucketLifecycleConfigurationV2RuleFilter { return v.Filter }).(BucketLifecycleConfigurationV2RuleFilterPtrOutput) +} + +// Unique identifier for the rule. The value cannot be longer than 255 characters. +func (o BucketLifecycleConfigurationV2RuleOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) string { return v.Id }).(pulumi.StringOutput) +} + +// Configuration block that specifies when noncurrent object versions expire. See below. +func (o BucketLifecycleConfigurationV2RuleOutput) NoncurrentVersionExpiration() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration { + return v.NoncurrentVersionExpiration + }).(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) +} + +// Set of configuration blocks that specify the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. See below. +func (o BucketLifecycleConfigurationV2RuleOutput) NoncurrentVersionTransitions() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) []BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition { + return v.NoncurrentVersionTransitions + }).(BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput) +} + +// **DEPRECATED** Use `filter` instead. This has been deprecated by Amazon S3. Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if `filter` is not specified. +// +// Deprecated: Use filter instead +func (o BucketLifecycleConfigurationV2RuleOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Whether the rule is currently being applied. Valid values: `Enabled` or `Disabled`. +func (o BucketLifecycleConfigurationV2RuleOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) string { return v.Status }).(pulumi.StringOutput) +} + +// Set of configuration blocks that specify when an Amazon S3 object transitions to a specified storage class. See below. +func (o BucketLifecycleConfigurationV2RuleOutput) Transitions() BucketLifecycleConfigurationV2RuleTransitionArrayOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2Rule) []BucketLifecycleConfigurationV2RuleTransition { + return v.Transitions + }).(BucketLifecycleConfigurationV2RuleTransitionArrayOutput) +} + +type BucketLifecycleConfigurationV2RuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleConfigurationV2Rule)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleArrayOutput) ToBucketLifecycleConfigurationV2RuleArrayOutput() BucketLifecycleConfigurationV2RuleArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleArrayOutput) ToBucketLifecycleConfigurationV2RuleArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleArrayOutput) Index(i pulumi.IntInput) BucketLifecycleConfigurationV2RuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLifecycleConfigurationV2Rule { + return vs[0].([]BucketLifecycleConfigurationV2Rule)[vs[1].(int)] + }).(BucketLifecycleConfigurationV2RuleOutput) +} + +type BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload struct { + // Number of days after which Amazon S3 aborts an incomplete multipart upload. + DaysAfterInitiation *int `pulumi:"daysAfterInitiation"` +} + +// BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadInput is an input type that accepts BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs and BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadInput` via: +// +// BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs{...} +type BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput + ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput +} + +type BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs struct { + // Number of days after which Amazon S3 aborts an incomplete multipart upload. + DaysAfterInitiation pulumi.IntPtrInput `pulumi:"daysAfterInitiation"` +} + +func (BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput { + return i.ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) +} + +func (i BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput).ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(ctx) +} + +// BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrInput is an input type that accepts BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs, BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtr and BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrInput` via: +// +// BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs{...} +// +// or: +// +// nil +type BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput + ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput +} + +type bucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrType BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs + +func BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtr(v *BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrInput { + return (*bucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrType)(v) +} + +func (*bucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload)(nil)).Elem() +} + +func (i *bucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrType) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrType) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return o.ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload) *BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload { + return &v + }).(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) +} + +// Number of days after which Amazon S3 aborts an incomplete multipart upload. +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) DaysAfterInitiation() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload) *int { + return v.DaysAfterInitiation + }).(pulumi.IntPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) ToBucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) Elem() BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload) BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload { + if v != nil { + return *v + } + var ret BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload + return ret + }).(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput) +} + +// Number of days after which Amazon S3 aborts an incomplete multipart upload. +func (o BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput) DaysAfterInitiation() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUpload) *int { + if v == nil { + return nil + } + return v.DaysAfterInitiation + }).(pulumi.IntPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleExpiration struct { + // Date the object is to be moved or deleted. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. + Date *string `pulumi:"date"` + // Lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. + Days *int `pulumi:"days"` + // Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to `true`, the delete marker will be expired; if set to `false` the policy takes no action. + ExpiredObjectDeleteMarker *bool `pulumi:"expiredObjectDeleteMarker"` +} + +// BucketLifecycleConfigurationV2RuleExpirationInput is an input type that accepts BucketLifecycleConfigurationV2RuleExpirationArgs and BucketLifecycleConfigurationV2RuleExpirationOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleExpirationInput` via: +// +// BucketLifecycleConfigurationV2RuleExpirationArgs{...} +type BucketLifecycleConfigurationV2RuleExpirationInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleExpirationOutput() BucketLifecycleConfigurationV2RuleExpirationOutput + ToBucketLifecycleConfigurationV2RuleExpirationOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleExpirationOutput +} + +type BucketLifecycleConfigurationV2RuleExpirationArgs struct { + // Date the object is to be moved or deleted. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. + Date pulumi.StringPtrInput `pulumi:"date"` + // Lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. + Days pulumi.IntPtrInput `pulumi:"days"` + // Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to `true`, the delete marker will be expired; if set to `false` the policy takes no action. + ExpiredObjectDeleteMarker pulumi.BoolPtrInput `pulumi:"expiredObjectDeleteMarker"` +} + +func (BucketLifecycleConfigurationV2RuleExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleExpiration)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleExpirationArgs) ToBucketLifecycleConfigurationV2RuleExpirationOutput() BucketLifecycleConfigurationV2RuleExpirationOutput { + return i.ToBucketLifecycleConfigurationV2RuleExpirationOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleExpirationArgs) ToBucketLifecycleConfigurationV2RuleExpirationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleExpirationOutput) +} + +func (i BucketLifecycleConfigurationV2RuleExpirationArgs) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutput() BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleExpirationArgs) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleExpirationOutput).ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(ctx) +} + +// BucketLifecycleConfigurationV2RuleExpirationPtrInput is an input type that accepts BucketLifecycleConfigurationV2RuleExpirationArgs, BucketLifecycleConfigurationV2RuleExpirationPtr and BucketLifecycleConfigurationV2RuleExpirationPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleExpirationPtrInput` via: +// +// BucketLifecycleConfigurationV2RuleExpirationArgs{...} +// +// or: +// +// nil +type BucketLifecycleConfigurationV2RuleExpirationPtrInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleExpirationPtrOutput() BucketLifecycleConfigurationV2RuleExpirationPtrOutput + ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleExpirationPtrOutput +} + +type bucketLifecycleConfigurationV2RuleExpirationPtrType BucketLifecycleConfigurationV2RuleExpirationArgs + +func BucketLifecycleConfigurationV2RuleExpirationPtr(v *BucketLifecycleConfigurationV2RuleExpirationArgs) BucketLifecycleConfigurationV2RuleExpirationPtrInput { + return (*bucketLifecycleConfigurationV2RuleExpirationPtrType)(v) +} + +func (*bucketLifecycleConfigurationV2RuleExpirationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleExpiration)(nil)).Elem() +} + +func (i *bucketLifecycleConfigurationV2RuleExpirationPtrType) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutput() BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleConfigurationV2RuleExpirationPtrType) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleExpirationPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleExpirationOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleExpiration)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) ToBucketLifecycleConfigurationV2RuleExpirationOutput() BucketLifecycleConfigurationV2RuleExpirationOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) ToBucketLifecycleConfigurationV2RuleExpirationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleExpirationOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutput() BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return o.ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleConfigurationV2RuleExpiration) *BucketLifecycleConfigurationV2RuleExpiration { + return &v + }).(BucketLifecycleConfigurationV2RuleExpirationPtrOutput) +} + +// Date the object is to be moved or deleted. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleExpiration) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleExpiration) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to `true`, the delete marker will be expired; if set to `false` the policy takes no action. +func (o BucketLifecycleConfigurationV2RuleExpirationOutput) ExpiredObjectDeleteMarker() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleExpiration) *bool { return v.ExpiredObjectDeleteMarker }).(pulumi.BoolPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleExpirationPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleExpirationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleExpiration)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleExpirationPtrOutput) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutput() BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleExpirationPtrOutput) ToBucketLifecycleConfigurationV2RuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleExpirationPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleExpirationPtrOutput) Elem() BucketLifecycleConfigurationV2RuleExpirationOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleExpiration) BucketLifecycleConfigurationV2RuleExpiration { + if v != nil { + return *v + } + var ret BucketLifecycleConfigurationV2RuleExpiration + return ret + }).(BucketLifecycleConfigurationV2RuleExpirationOutput) +} + +// Date the object is to be moved or deleted. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. +func (o BucketLifecycleConfigurationV2RuleExpirationPtrOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleExpiration) *string { + if v == nil { + return nil + } + return v.Date + }).(pulumi.StringPtrOutput) +} + +// Lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer. +func (o BucketLifecycleConfigurationV2RuleExpirationPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleExpiration) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +// Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to `true`, the delete marker will be expired; if set to `false` the policy takes no action. +func (o BucketLifecycleConfigurationV2RuleExpirationPtrOutput) ExpiredObjectDeleteMarker() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleExpiration) *bool { + if v == nil { + return nil + } + return v.ExpiredObjectDeleteMarker + }).(pulumi.BoolPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleFilter struct { + // Configuration block used to apply a logical `AND` to two or more predicates. See below. The Lifecycle Rule will apply to any object matching all the predicates configured inside the `and` block. + And *BucketLifecycleConfigurationV2RuleFilterAnd `pulumi:"and"` + // Minimum object size (in bytes) to which the rule applies. + ObjectSizeGreaterThan *string `pulumi:"objectSizeGreaterThan"` + // Maximum object size (in bytes) to which the rule applies. + ObjectSizeLessThan *string `pulumi:"objectSizeLessThan"` + // Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if not specified. + Prefix *string `pulumi:"prefix"` + // Configuration block for specifying a tag key and value. See below. + Tag *BucketLifecycleConfigurationV2RuleFilterTag `pulumi:"tag"` +} + +// BucketLifecycleConfigurationV2RuleFilterInput is an input type that accepts BucketLifecycleConfigurationV2RuleFilterArgs and BucketLifecycleConfigurationV2RuleFilterOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleFilterInput` via: +// +// BucketLifecycleConfigurationV2RuleFilterArgs{...} +type BucketLifecycleConfigurationV2RuleFilterInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleFilterOutput() BucketLifecycleConfigurationV2RuleFilterOutput + ToBucketLifecycleConfigurationV2RuleFilterOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleFilterOutput +} + +type BucketLifecycleConfigurationV2RuleFilterArgs struct { + // Configuration block used to apply a logical `AND` to two or more predicates. See below. The Lifecycle Rule will apply to any object matching all the predicates configured inside the `and` block. + And BucketLifecycleConfigurationV2RuleFilterAndPtrInput `pulumi:"and"` + // Minimum object size (in bytes) to which the rule applies. + ObjectSizeGreaterThan pulumi.StringPtrInput `pulumi:"objectSizeGreaterThan"` + // Maximum object size (in bytes) to which the rule applies. + ObjectSizeLessThan pulumi.StringPtrInput `pulumi:"objectSizeLessThan"` + // Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if not specified. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Configuration block for specifying a tag key and value. See below. + Tag BucketLifecycleConfigurationV2RuleFilterTagPtrInput `pulumi:"tag"` +} + +func (BucketLifecycleConfigurationV2RuleFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilter)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleFilterArgs) ToBucketLifecycleConfigurationV2RuleFilterOutput() BucketLifecycleConfigurationV2RuleFilterOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleFilterArgs) ToBucketLifecycleConfigurationV2RuleFilterOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterOutput) +} + +func (i BucketLifecycleConfigurationV2RuleFilterArgs) ToBucketLifecycleConfigurationV2RuleFilterPtrOutput() BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleFilterArgs) ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterOutput).ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(ctx) +} + +// BucketLifecycleConfigurationV2RuleFilterPtrInput is an input type that accepts BucketLifecycleConfigurationV2RuleFilterArgs, BucketLifecycleConfigurationV2RuleFilterPtr and BucketLifecycleConfigurationV2RuleFilterPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleFilterPtrInput` via: +// +// BucketLifecycleConfigurationV2RuleFilterArgs{...} +// +// or: +// +// nil +type BucketLifecycleConfigurationV2RuleFilterPtrInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleFilterPtrOutput() BucketLifecycleConfigurationV2RuleFilterPtrOutput + ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleFilterPtrOutput +} + +type bucketLifecycleConfigurationV2RuleFilterPtrType BucketLifecycleConfigurationV2RuleFilterArgs + +func BucketLifecycleConfigurationV2RuleFilterPtr(v *BucketLifecycleConfigurationV2RuleFilterArgs) BucketLifecycleConfigurationV2RuleFilterPtrInput { + return (*bucketLifecycleConfigurationV2RuleFilterPtrType)(v) +} + +func (*bucketLifecycleConfigurationV2RuleFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleFilter)(nil)).Elem() +} + +func (i *bucketLifecycleConfigurationV2RuleFilterPtrType) ToBucketLifecycleConfigurationV2RuleFilterPtrOutput() BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleConfigurationV2RuleFilterPtrType) ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilter)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleFilterOutput) ToBucketLifecycleConfigurationV2RuleFilterOutput() BucketLifecycleConfigurationV2RuleFilterOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterOutput) ToBucketLifecycleConfigurationV2RuleFilterOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterOutput) ToBucketLifecycleConfigurationV2RuleFilterPtrOutput() BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return o.ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleConfigurationV2RuleFilterOutput) ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleConfigurationV2RuleFilter) *BucketLifecycleConfigurationV2RuleFilter { + return &v + }).(BucketLifecycleConfigurationV2RuleFilterPtrOutput) +} + +// Configuration block used to apply a logical `AND` to two or more predicates. See below. The Lifecycle Rule will apply to any object matching all the predicates configured inside the `and` block. +func (o BucketLifecycleConfigurationV2RuleFilterOutput) And() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilter) *BucketLifecycleConfigurationV2RuleFilterAnd { + return v.And + }).(BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) +} + +// Minimum object size (in bytes) to which the rule applies. +func (o BucketLifecycleConfigurationV2RuleFilterOutput) ObjectSizeGreaterThan() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilter) *string { return v.ObjectSizeGreaterThan }).(pulumi.StringPtrOutput) +} + +// Maximum object size (in bytes) to which the rule applies. +func (o BucketLifecycleConfigurationV2RuleFilterOutput) ObjectSizeLessThan() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilter) *string { return v.ObjectSizeLessThan }).(pulumi.StringPtrOutput) +} + +// Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if not specified. +func (o BucketLifecycleConfigurationV2RuleFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Configuration block for specifying a tag key and value. See below. +func (o BucketLifecycleConfigurationV2RuleFilterOutput) Tag() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilter) *BucketLifecycleConfigurationV2RuleFilterTag { + return v.Tag + }).(BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleFilter)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) ToBucketLifecycleConfigurationV2RuleFilterPtrOutput() BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) ToBucketLifecycleConfigurationV2RuleFilterPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) Elem() BucketLifecycleConfigurationV2RuleFilterOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilter) BucketLifecycleConfigurationV2RuleFilter { + if v != nil { + return *v + } + var ret BucketLifecycleConfigurationV2RuleFilter + return ret + }).(BucketLifecycleConfigurationV2RuleFilterOutput) +} + +// Configuration block used to apply a logical `AND` to two or more predicates. See below. The Lifecycle Rule will apply to any object matching all the predicates configured inside the `and` block. +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) And() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilter) *BucketLifecycleConfigurationV2RuleFilterAnd { + if v == nil { + return nil + } + return v.And + }).(BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) +} + +// Minimum object size (in bytes) to which the rule applies. +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) ObjectSizeGreaterThan() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilter) *string { + if v == nil { + return nil + } + return v.ObjectSizeGreaterThan + }).(pulumi.StringPtrOutput) +} + +// Maximum object size (in bytes) to which the rule applies. +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) ObjectSizeLessThan() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilter) *string { + if v == nil { + return nil + } + return v.ObjectSizeLessThan + }).(pulumi.StringPtrOutput) +} + +// Prefix identifying one or more objects to which the rule applies. Defaults to an empty string (`""`) if not specified. +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// Configuration block for specifying a tag key and value. See below. +func (o BucketLifecycleConfigurationV2RuleFilterPtrOutput) Tag() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilter) *BucketLifecycleConfigurationV2RuleFilterTag { + if v == nil { + return nil + } + return v.Tag + }).(BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterAnd struct { + // Minimum object size to which the rule applies. Value must be at least `0` if specified. + ObjectSizeGreaterThan *int `pulumi:"objectSizeGreaterThan"` + // Maximum object size to which the rule applies. Value must be at least `1` if specified. + ObjectSizeLessThan *int `pulumi:"objectSizeLessThan"` + // Prefix identifying one or more objects to which the rule applies. + Prefix *string `pulumi:"prefix"` + // Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. + Tags map[string]string `pulumi:"tags"` +} + +// BucketLifecycleConfigurationV2RuleFilterAndInput is an input type that accepts BucketLifecycleConfigurationV2RuleFilterAndArgs and BucketLifecycleConfigurationV2RuleFilterAndOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleFilterAndInput` via: +// +// BucketLifecycleConfigurationV2RuleFilterAndArgs{...} +type BucketLifecycleConfigurationV2RuleFilterAndInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleFilterAndOutput() BucketLifecycleConfigurationV2RuleFilterAndOutput + ToBucketLifecycleConfigurationV2RuleFilterAndOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleFilterAndOutput +} + +type BucketLifecycleConfigurationV2RuleFilterAndArgs struct { + // Minimum object size to which the rule applies. Value must be at least `0` if specified. + ObjectSizeGreaterThan pulumi.IntPtrInput `pulumi:"objectSizeGreaterThan"` + // Maximum object size to which the rule applies. Value must be at least `1` if specified. + ObjectSizeLessThan pulumi.IntPtrInput `pulumi:"objectSizeLessThan"` + // Prefix identifying one or more objects to which the rule applies. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketLifecycleConfigurationV2RuleFilterAndArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterAnd)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleFilterAndArgs) ToBucketLifecycleConfigurationV2RuleFilterAndOutput() BucketLifecycleConfigurationV2RuleFilterAndOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterAndOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleFilterAndArgs) ToBucketLifecycleConfigurationV2RuleFilterAndOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterAndOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterAndOutput) +} + +func (i BucketLifecycleConfigurationV2RuleFilterAndArgs) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutput() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleFilterAndArgs) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterAndOutput).ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(ctx) +} + +// BucketLifecycleConfigurationV2RuleFilterAndPtrInput is an input type that accepts BucketLifecycleConfigurationV2RuleFilterAndArgs, BucketLifecycleConfigurationV2RuleFilterAndPtr and BucketLifecycleConfigurationV2RuleFilterAndPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleFilterAndPtrInput` via: +// +// BucketLifecycleConfigurationV2RuleFilterAndArgs{...} +// +// or: +// +// nil +type BucketLifecycleConfigurationV2RuleFilterAndPtrInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutput() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput + ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleFilterAndPtrOutput +} + +type bucketLifecycleConfigurationV2RuleFilterAndPtrType BucketLifecycleConfigurationV2RuleFilterAndArgs + +func BucketLifecycleConfigurationV2RuleFilterAndPtr(v *BucketLifecycleConfigurationV2RuleFilterAndArgs) BucketLifecycleConfigurationV2RuleFilterAndPtrInput { + return (*bucketLifecycleConfigurationV2RuleFilterAndPtrType)(v) +} + +func (*bucketLifecycleConfigurationV2RuleFilterAndPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleFilterAnd)(nil)).Elem() +} + +func (i *bucketLifecycleConfigurationV2RuleFilterAndPtrType) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutput() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleConfigurationV2RuleFilterAndPtrType) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterAndOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleFilterAndOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterAnd)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ToBucketLifecycleConfigurationV2RuleFilterAndOutput() BucketLifecycleConfigurationV2RuleFilterAndOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ToBucketLifecycleConfigurationV2RuleFilterAndOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterAndOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutput() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return o.ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleConfigurationV2RuleFilterAnd) *BucketLifecycleConfigurationV2RuleFilterAnd { + return &v + }).(BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) +} + +// Minimum object size to which the rule applies. Value must be at least `0` if specified. +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ObjectSizeGreaterThan() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterAnd) *int { return v.ObjectSizeGreaterThan }).(pulumi.IntPtrOutput) +} + +// Maximum object size to which the rule applies. Value must be at least `1` if specified. +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) ObjectSizeLessThan() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterAnd) *int { return v.ObjectSizeLessThan }).(pulumi.IntPtrOutput) +} + +// Prefix identifying one or more objects to which the rule applies. +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterAnd) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. +func (o BucketLifecycleConfigurationV2RuleFilterAndOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterAnd) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterAndPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleFilterAnd)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutput() BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) ToBucketLifecycleConfigurationV2RuleFilterAndPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterAndPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) Elem() BucketLifecycleConfigurationV2RuleFilterAndOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterAnd) BucketLifecycleConfigurationV2RuleFilterAnd { + if v != nil { + return *v + } + var ret BucketLifecycleConfigurationV2RuleFilterAnd + return ret + }).(BucketLifecycleConfigurationV2RuleFilterAndOutput) +} + +// Minimum object size to which the rule applies. Value must be at least `0` if specified. +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) ObjectSizeGreaterThan() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterAnd) *int { + if v == nil { + return nil + } + return v.ObjectSizeGreaterThan + }).(pulumi.IntPtrOutput) +} + +// Maximum object size to which the rule applies. Value must be at least `1` if specified. +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) ObjectSizeLessThan() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterAnd) *int { + if v == nil { + return nil + } + return v.ObjectSizeLessThan + }).(pulumi.IntPtrOutput) +} + +// Prefix identifying one or more objects to which the rule applies. +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterAnd) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// Key-value map of resource tags. All of these tags must exist in the object's tag set in order for the rule to apply. +func (o BucketLifecycleConfigurationV2RuleFilterAndPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterAnd) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterTag struct { + // Name of the object key. + Key string `pulumi:"key"` + // Value of the tag. + Value string `pulumi:"value"` +} + +// BucketLifecycleConfigurationV2RuleFilterTagInput is an input type that accepts BucketLifecycleConfigurationV2RuleFilterTagArgs and BucketLifecycleConfigurationV2RuleFilterTagOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleFilterTagInput` via: +// +// BucketLifecycleConfigurationV2RuleFilterTagArgs{...} +type BucketLifecycleConfigurationV2RuleFilterTagInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleFilterTagOutput() BucketLifecycleConfigurationV2RuleFilterTagOutput + ToBucketLifecycleConfigurationV2RuleFilterTagOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleFilterTagOutput +} + +type BucketLifecycleConfigurationV2RuleFilterTagArgs struct { + // Name of the object key. + Key pulumi.StringInput `pulumi:"key"` + // Value of the tag. + Value pulumi.StringInput `pulumi:"value"` +} + +func (BucketLifecycleConfigurationV2RuleFilterTagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterTag)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleFilterTagArgs) ToBucketLifecycleConfigurationV2RuleFilterTagOutput() BucketLifecycleConfigurationV2RuleFilterTagOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterTagOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleFilterTagArgs) ToBucketLifecycleConfigurationV2RuleFilterTagOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterTagOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterTagOutput) +} + +func (i BucketLifecycleConfigurationV2RuleFilterTagArgs) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutput() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleFilterTagArgs) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterTagOutput).ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(ctx) +} + +// BucketLifecycleConfigurationV2RuleFilterTagPtrInput is an input type that accepts BucketLifecycleConfigurationV2RuleFilterTagArgs, BucketLifecycleConfigurationV2RuleFilterTagPtr and BucketLifecycleConfigurationV2RuleFilterTagPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleFilterTagPtrInput` via: +// +// BucketLifecycleConfigurationV2RuleFilterTagArgs{...} +// +// or: +// +// nil +type BucketLifecycleConfigurationV2RuleFilterTagPtrInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutput() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput + ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleFilterTagPtrOutput +} + +type bucketLifecycleConfigurationV2RuleFilterTagPtrType BucketLifecycleConfigurationV2RuleFilterTagArgs + +func BucketLifecycleConfigurationV2RuleFilterTagPtr(v *BucketLifecycleConfigurationV2RuleFilterTagArgs) BucketLifecycleConfigurationV2RuleFilterTagPtrInput { + return (*bucketLifecycleConfigurationV2RuleFilterTagPtrType)(v) +} + +func (*bucketLifecycleConfigurationV2RuleFilterTagPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleFilterTag)(nil)).Elem() +} + +func (i *bucketLifecycleConfigurationV2RuleFilterTagPtrType) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutput() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleConfigurationV2RuleFilterTagPtrType) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterTagOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleFilterTagOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterTag)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagOutput) ToBucketLifecycleConfigurationV2RuleFilterTagOutput() BucketLifecycleConfigurationV2RuleFilterTagOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagOutput) ToBucketLifecycleConfigurationV2RuleFilterTagOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterTagOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagOutput) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutput() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return o.ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagOutput) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleConfigurationV2RuleFilterTag) *BucketLifecycleConfigurationV2RuleFilterTag { + return &v + }).(BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) +} + +// Name of the object key. +func (o BucketLifecycleConfigurationV2RuleFilterTagOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterTag) string { return v.Key }).(pulumi.StringOutput) +} + +// Value of the tag. +func (o BucketLifecycleConfigurationV2RuleFilterTagOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleFilterTag) string { return v.Value }).(pulumi.StringOutput) +} + +type BucketLifecycleConfigurationV2RuleFilterTagPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleFilterTag)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutput() BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) ToBucketLifecycleConfigurationV2RuleFilterTagPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleFilterTagPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) Elem() BucketLifecycleConfigurationV2RuleFilterTagOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterTag) BucketLifecycleConfigurationV2RuleFilterTag { + if v != nil { + return *v + } + var ret BucketLifecycleConfigurationV2RuleFilterTag + return ret + }).(BucketLifecycleConfigurationV2RuleFilterTagOutput) +} + +// Name of the object key. +func (o BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterTag) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +// Value of the tag. +func (o BucketLifecycleConfigurationV2RuleFilterTagPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleFilterTag) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration struct { + // Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. + NewerNoncurrentVersions *string `pulumi:"newerNoncurrentVersions"` + // Number of days an object is noncurrent before Amazon S3 can perform the associated action. Must be a positive integer. + NoncurrentDays *int `pulumi:"noncurrentDays"` +} + +// BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationInput is an input type that accepts BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs and BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationInput` via: +// +// BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{...} +type BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs struct { + // Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. + NewerNoncurrentVersions pulumi.StringPtrInput `pulumi:"newerNoncurrentVersions"` + // Number of days an object is noncurrent before Amazon S3 can perform the associated action. Must be a positive integer. + NoncurrentDays pulumi.IntPtrInput `pulumi:"noncurrentDays"` +} + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput { + return i.ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput).ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(ctx) +} + +// BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrInput is an input type that accepts BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs, BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtr and BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrInput` via: +// +// BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{...} +// +// or: +// +// nil +type BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput +} + +type bucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrType BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs + +func BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtr(v *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrInput { + return (*bucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrType)(v) +} + +func (*bucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (i *bucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrType) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return i.ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrType) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return o.ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration) *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration { + return &v + }).(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) +} + +// Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) NewerNoncurrentVersions() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration) *string { + return v.NewerNoncurrentVersions + }).(pulumi.StringPtrOutput) +} + +// Number of days an object is noncurrent before Amazon S3 can perform the associated action. Must be a positive integer. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) NoncurrentDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration) *int { return v.NoncurrentDays }).(pulumi.IntPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) Elem() BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration) BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration { + if v != nil { + return *v + } + var ret BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration + return ret + }).(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput) +} + +// Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) NewerNoncurrentVersions() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration) *string { + if v == nil { + return nil + } + return v.NewerNoncurrentVersions + }).(pulumi.StringPtrOutput) +} + +// Number of days an object is noncurrent before Amazon S3 can perform the associated action. Must be a positive integer. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput) NoncurrentDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleConfigurationV2RuleNoncurrentVersionExpiration) *int { + if v == nil { + return nil + } + return v.NoncurrentDays + }).(pulumi.IntPtrOutput) +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition struct { + // Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. + NewerNoncurrentVersions *string `pulumi:"newerNoncurrentVersions"` + // Number of days an object is noncurrent before Amazon S3 can perform the associated action. + NoncurrentDays *int `pulumi:"noncurrentDays"` + // Class of storage used to store the object. Valid Values: `GLACIER`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `DEEP_ARCHIVE`, `GLACIER_IR`. + StorageClass string `pulumi:"storageClass"` +} + +// BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionInput is an input type that accepts BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs and BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionInput` via: +// +// BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{...} +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs struct { + // Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. + NewerNoncurrentVersions pulumi.StringPtrInput `pulumi:"newerNoncurrentVersions"` + // Number of days an object is noncurrent before Amazon S3 can perform the associated action. + NoncurrentDays pulumi.IntPtrInput `pulumi:"noncurrentDays"` + // Class of storage used to store the object. Valid Values: `GLACIER`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `DEEP_ARCHIVE`, `GLACIER_IR`. + StorageClass pulumi.StringInput `pulumi:"storageClass"` +} + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput { + return i.ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) +} + +// BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayInput is an input type that accepts BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray and BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayInput` via: +// +// BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray{ BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{...} } +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput + ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray []BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionInput + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput { + return i.ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput) +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput { + return o +} + +// Number of noncurrent versions Amazon S3 will retain. Must be a non-zero positive integer. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) NewerNoncurrentVersions() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition) *string { + return v.NewerNoncurrentVersions + }).(pulumi.StringPtrOutput) +} + +// Number of days an object is noncurrent before Amazon S3 can perform the associated action. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) NoncurrentDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition) *int { return v.NoncurrentDays }).(pulumi.IntPtrOutput) +} + +// Class of storage used to store the object. Valid Values: `GLACIER`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `DEEP_ARCHIVE`, `GLACIER_IR`. +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition) string { return v.StorageClass }).(pulumi.StringOutput) +} + +type BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput() BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput) ToBucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput) Index(i pulumi.IntInput) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition { + return vs[0].([]BucketLifecycleConfigurationV2RuleNoncurrentVersionTransition)[vs[1].(int)] + }).(BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput) +} + +type BucketLifecycleConfigurationV2RuleTransition struct { + // Date objects are transitioned to the specified storage class. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. + Date *string `pulumi:"date"` + // Number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. If both `days` and `date` are not specified, defaults to `0`. Valid values depend on `storageClass`, see [Transition objects using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) for more details. + Days *int `pulumi:"days"` + // Class of storage used to store the object. Valid Values: `GLACIER`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `DEEP_ARCHIVE`, `GLACIER_IR`. + StorageClass string `pulumi:"storageClass"` +} + +// BucketLifecycleConfigurationV2RuleTransitionInput is an input type that accepts BucketLifecycleConfigurationV2RuleTransitionArgs and BucketLifecycleConfigurationV2RuleTransitionOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleTransitionInput` via: +// +// BucketLifecycleConfigurationV2RuleTransitionArgs{...} +type BucketLifecycleConfigurationV2RuleTransitionInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleTransitionOutput() BucketLifecycleConfigurationV2RuleTransitionOutput + ToBucketLifecycleConfigurationV2RuleTransitionOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleTransitionOutput +} + +type BucketLifecycleConfigurationV2RuleTransitionArgs struct { + // Date objects are transitioned to the specified storage class. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. + Date pulumi.StringPtrInput `pulumi:"date"` + // Number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. If both `days` and `date` are not specified, defaults to `0`. Valid values depend on `storageClass`, see [Transition objects using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) for more details. + Days pulumi.IntPtrInput `pulumi:"days"` + // Class of storage used to store the object. Valid Values: `GLACIER`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `DEEP_ARCHIVE`, `GLACIER_IR`. + StorageClass pulumi.StringInput `pulumi:"storageClass"` +} + +func (BucketLifecycleConfigurationV2RuleTransitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleTransition)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleTransitionArgs) ToBucketLifecycleConfigurationV2RuleTransitionOutput() BucketLifecycleConfigurationV2RuleTransitionOutput { + return i.ToBucketLifecycleConfigurationV2RuleTransitionOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleTransitionArgs) ToBucketLifecycleConfigurationV2RuleTransitionOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleTransitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleTransitionOutput) +} + +// BucketLifecycleConfigurationV2RuleTransitionArrayInput is an input type that accepts BucketLifecycleConfigurationV2RuleTransitionArray and BucketLifecycleConfigurationV2RuleTransitionArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleConfigurationV2RuleTransitionArrayInput` via: +// +// BucketLifecycleConfigurationV2RuleTransitionArray{ BucketLifecycleConfigurationV2RuleTransitionArgs{...} } +type BucketLifecycleConfigurationV2RuleTransitionArrayInput interface { + pulumi.Input + + ToBucketLifecycleConfigurationV2RuleTransitionArrayOutput() BucketLifecycleConfigurationV2RuleTransitionArrayOutput + ToBucketLifecycleConfigurationV2RuleTransitionArrayOutputWithContext(context.Context) BucketLifecycleConfigurationV2RuleTransitionArrayOutput +} + +type BucketLifecycleConfigurationV2RuleTransitionArray []BucketLifecycleConfigurationV2RuleTransitionInput + +func (BucketLifecycleConfigurationV2RuleTransitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleConfigurationV2RuleTransition)(nil)).Elem() +} + +func (i BucketLifecycleConfigurationV2RuleTransitionArray) ToBucketLifecycleConfigurationV2RuleTransitionArrayOutput() BucketLifecycleConfigurationV2RuleTransitionArrayOutput { + return i.ToBucketLifecycleConfigurationV2RuleTransitionArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleConfigurationV2RuleTransitionArray) ToBucketLifecycleConfigurationV2RuleTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleTransitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleConfigurationV2RuleTransitionArrayOutput) +} + +type BucketLifecycleConfigurationV2RuleTransitionOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleTransitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleConfigurationV2RuleTransition)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleTransitionOutput) ToBucketLifecycleConfigurationV2RuleTransitionOutput() BucketLifecycleConfigurationV2RuleTransitionOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleTransitionOutput) ToBucketLifecycleConfigurationV2RuleTransitionOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleTransitionOutput { + return o +} + +// Date objects are transitioned to the specified storage class. The date value must be in [RFC3339 full-date format](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) e.g. `2023-08-22`. +func (o BucketLifecycleConfigurationV2RuleTransitionOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleTransition) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. If both `days` and `date` are not specified, defaults to `0`. Valid values depend on `storageClass`, see [Transition objects using Amazon S3 Lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html) for more details. +func (o BucketLifecycleConfigurationV2RuleTransitionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleTransition) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Class of storage used to store the object. Valid Values: `GLACIER`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`, `DEEP_ARCHIVE`, `GLACIER_IR`. +func (o BucketLifecycleConfigurationV2RuleTransitionOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleConfigurationV2RuleTransition) string { return v.StorageClass }).(pulumi.StringOutput) +} + +type BucketLifecycleConfigurationV2RuleTransitionArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleConfigurationV2RuleTransitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleConfigurationV2RuleTransition)(nil)).Elem() +} + +func (o BucketLifecycleConfigurationV2RuleTransitionArrayOutput) ToBucketLifecycleConfigurationV2RuleTransitionArrayOutput() BucketLifecycleConfigurationV2RuleTransitionArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleTransitionArrayOutput) ToBucketLifecycleConfigurationV2RuleTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleConfigurationV2RuleTransitionArrayOutput { + return o +} + +func (o BucketLifecycleConfigurationV2RuleTransitionArrayOutput) Index(i pulumi.IntInput) BucketLifecycleConfigurationV2RuleTransitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLifecycleConfigurationV2RuleTransition { + return vs[0].([]BucketLifecycleConfigurationV2RuleTransition)[vs[1].(int)] + }).(BucketLifecycleConfigurationV2RuleTransitionOutput) +} + +type BucketLifecycleRule struct { + // Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. + AbortIncompleteMultipartUploadDays *int `pulumi:"abortIncompleteMultipartUploadDays"` + // Specifies lifecycle rule status. + Enabled bool `pulumi:"enabled"` + // Specifies a period in the object's expire (documented below). + Expiration *BucketLifecycleRuleExpiration `pulumi:"expiration"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id *string `pulumi:"id"` + // Specifies when noncurrent object versions expire (documented below). + NoncurrentVersionExpiration *BucketLifecycleRuleNoncurrentVersionExpiration `pulumi:"noncurrentVersionExpiration"` + // Specifies when noncurrent object versions transitions (documented below). + // + // At least one of `abortIncompleteMultipartUploadDays`, `expiration`, `transition`, `noncurrentVersionExpiration`, `noncurrentVersionTransition` must be specified. + NoncurrentVersionTransitions []BucketLifecycleRuleNoncurrentVersionTransition `pulumi:"noncurrentVersionTransitions"` + // Object key prefix identifying one or more objects to which the rule applies. + Prefix *string `pulumi:"prefix"` + // Specifies object tags key and value. + Tags map[string]string `pulumi:"tags"` + // Specifies a period in the object's transitions (documented below). + Transitions []BucketLifecycleRuleTransition `pulumi:"transitions"` +} + +// BucketLifecycleRuleInput is an input type that accepts BucketLifecycleRuleArgs and BucketLifecycleRuleOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleInput` via: +// +// BucketLifecycleRuleArgs{...} +type BucketLifecycleRuleInput interface { + pulumi.Input + + ToBucketLifecycleRuleOutput() BucketLifecycleRuleOutput + ToBucketLifecycleRuleOutputWithContext(context.Context) BucketLifecycleRuleOutput +} + +type BucketLifecycleRuleArgs struct { + // Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. + AbortIncompleteMultipartUploadDays pulumi.IntPtrInput `pulumi:"abortIncompleteMultipartUploadDays"` + // Specifies lifecycle rule status. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // Specifies a period in the object's expire (documented below). + Expiration BucketLifecycleRuleExpirationPtrInput `pulumi:"expiration"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id pulumi.StringPtrInput `pulumi:"id"` + // Specifies when noncurrent object versions expire (documented below). + NoncurrentVersionExpiration BucketLifecycleRuleNoncurrentVersionExpirationPtrInput `pulumi:"noncurrentVersionExpiration"` + // Specifies when noncurrent object versions transitions (documented below). + // + // At least one of `abortIncompleteMultipartUploadDays`, `expiration`, `transition`, `noncurrentVersionExpiration`, `noncurrentVersionTransition` must be specified. + NoncurrentVersionTransitions BucketLifecycleRuleNoncurrentVersionTransitionArrayInput `pulumi:"noncurrentVersionTransitions"` + // Object key prefix identifying one or more objects to which the rule applies. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Specifies object tags key and value. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Specifies a period in the object's transitions (documented below). + Transitions BucketLifecycleRuleTransitionArrayInput `pulumi:"transitions"` +} + +func (BucketLifecycleRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRule)(nil)).Elem() +} + +func (i BucketLifecycleRuleArgs) ToBucketLifecycleRuleOutput() BucketLifecycleRuleOutput { + return i.ToBucketLifecycleRuleOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleArgs) ToBucketLifecycleRuleOutputWithContext(ctx context.Context) BucketLifecycleRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleOutput) +} + +// BucketLifecycleRuleArrayInput is an input type that accepts BucketLifecycleRuleArray and BucketLifecycleRuleArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleArrayInput` via: +// +// BucketLifecycleRuleArray{ BucketLifecycleRuleArgs{...} } +type BucketLifecycleRuleArrayInput interface { + pulumi.Input + + ToBucketLifecycleRuleArrayOutput() BucketLifecycleRuleArrayOutput + ToBucketLifecycleRuleArrayOutputWithContext(context.Context) BucketLifecycleRuleArrayOutput +} + +type BucketLifecycleRuleArray []BucketLifecycleRuleInput + +func (BucketLifecycleRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleRule)(nil)).Elem() +} + +func (i BucketLifecycleRuleArray) ToBucketLifecycleRuleArrayOutput() BucketLifecycleRuleArrayOutput { + return i.ToBucketLifecycleRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleArray) ToBucketLifecycleRuleArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleArrayOutput) +} + +type BucketLifecycleRuleOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRule)(nil)).Elem() +} + +func (o BucketLifecycleRuleOutput) ToBucketLifecycleRuleOutput() BucketLifecycleRuleOutput { + return o +} + +func (o BucketLifecycleRuleOutput) ToBucketLifecycleRuleOutputWithContext(ctx context.Context) BucketLifecycleRuleOutput { + return o +} + +// Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. +func (o BucketLifecycleRuleOutput) AbortIncompleteMultipartUploadDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleRule) *int { return v.AbortIncompleteMultipartUploadDays }).(pulumi.IntPtrOutput) +} + +// Specifies lifecycle rule status. +func (o BucketLifecycleRuleOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BucketLifecycleRule) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// Specifies a period in the object's expire (documented below). +func (o BucketLifecycleRuleOutput) Expiration() BucketLifecycleRuleExpirationPtrOutput { + return o.ApplyT(func(v BucketLifecycleRule) *BucketLifecycleRuleExpiration { return v.Expiration }).(BucketLifecycleRuleExpirationPtrOutput) +} + +// Unique identifier for the rule. Must be less than or equal to 255 characters in length. +func (o BucketLifecycleRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleRule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Specifies when noncurrent object versions expire (documented below). +func (o BucketLifecycleRuleOutput) NoncurrentVersionExpiration() BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return o.ApplyT(func(v BucketLifecycleRule) *BucketLifecycleRuleNoncurrentVersionExpiration { + return v.NoncurrentVersionExpiration + }).(BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) +} + +// Specifies when noncurrent object versions transitions (documented below). +// +// At least one of `abortIncompleteMultipartUploadDays`, `expiration`, `transition`, `noncurrentVersionExpiration`, `noncurrentVersionTransition` must be specified. +func (o BucketLifecycleRuleOutput) NoncurrentVersionTransitions() BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput { + return o.ApplyT(func(v BucketLifecycleRule) []BucketLifecycleRuleNoncurrentVersionTransition { + return v.NoncurrentVersionTransitions + }).(BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput) +} + +// Object key prefix identifying one or more objects to which the rule applies. +func (o BucketLifecycleRuleOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleRule) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Specifies object tags key and value. +func (o BucketLifecycleRuleOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketLifecycleRule) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Specifies a period in the object's transitions (documented below). +func (o BucketLifecycleRuleOutput) Transitions() BucketLifecycleRuleTransitionArrayOutput { + return o.ApplyT(func(v BucketLifecycleRule) []BucketLifecycleRuleTransition { return v.Transitions }).(BucketLifecycleRuleTransitionArrayOutput) +} + +type BucketLifecycleRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleRule)(nil)).Elem() +} + +func (o BucketLifecycleRuleArrayOutput) ToBucketLifecycleRuleArrayOutput() BucketLifecycleRuleArrayOutput { + return o +} + +func (o BucketLifecycleRuleArrayOutput) ToBucketLifecycleRuleArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleArrayOutput { + return o +} + +func (o BucketLifecycleRuleArrayOutput) Index(i pulumi.IntInput) BucketLifecycleRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLifecycleRule { + return vs[0].([]BucketLifecycleRule)[vs[1].(int)] + }).(BucketLifecycleRuleOutput) +} + +type BucketLifecycleRuleExpiration struct { + // Specifies the date after which you want the corresponding action to take effect. + Date *string `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *int `pulumi:"days"` + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. + ExpiredObjectDeleteMarker *bool `pulumi:"expiredObjectDeleteMarker"` +} + +// BucketLifecycleRuleExpirationInput is an input type that accepts BucketLifecycleRuleExpirationArgs and BucketLifecycleRuleExpirationOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleExpirationInput` via: +// +// BucketLifecycleRuleExpirationArgs{...} +type BucketLifecycleRuleExpirationInput interface { + pulumi.Input + + ToBucketLifecycleRuleExpirationOutput() BucketLifecycleRuleExpirationOutput + ToBucketLifecycleRuleExpirationOutputWithContext(context.Context) BucketLifecycleRuleExpirationOutput +} + +type BucketLifecycleRuleExpirationArgs struct { + // Specifies the date after which you want the corresponding action to take effect. + Date pulumi.StringPtrInput `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days pulumi.IntPtrInput `pulumi:"days"` + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. + ExpiredObjectDeleteMarker pulumi.BoolPtrInput `pulumi:"expiredObjectDeleteMarker"` +} + +func (BucketLifecycleRuleExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleExpiration)(nil)).Elem() +} + +func (i BucketLifecycleRuleExpirationArgs) ToBucketLifecycleRuleExpirationOutput() BucketLifecycleRuleExpirationOutput { + return i.ToBucketLifecycleRuleExpirationOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleExpirationArgs) ToBucketLifecycleRuleExpirationOutputWithContext(ctx context.Context) BucketLifecycleRuleExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleExpirationOutput) +} + +func (i BucketLifecycleRuleExpirationArgs) ToBucketLifecycleRuleExpirationPtrOutput() BucketLifecycleRuleExpirationPtrOutput { + return i.ToBucketLifecycleRuleExpirationPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleExpirationArgs) ToBucketLifecycleRuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleExpirationOutput).ToBucketLifecycleRuleExpirationPtrOutputWithContext(ctx) +} + +// BucketLifecycleRuleExpirationPtrInput is an input type that accepts BucketLifecycleRuleExpirationArgs, BucketLifecycleRuleExpirationPtr and BucketLifecycleRuleExpirationPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleExpirationPtrInput` via: +// +// BucketLifecycleRuleExpirationArgs{...} +// +// or: +// +// nil +type BucketLifecycleRuleExpirationPtrInput interface { + pulumi.Input + + ToBucketLifecycleRuleExpirationPtrOutput() BucketLifecycleRuleExpirationPtrOutput + ToBucketLifecycleRuleExpirationPtrOutputWithContext(context.Context) BucketLifecycleRuleExpirationPtrOutput +} + +type bucketLifecycleRuleExpirationPtrType BucketLifecycleRuleExpirationArgs + +func BucketLifecycleRuleExpirationPtr(v *BucketLifecycleRuleExpirationArgs) BucketLifecycleRuleExpirationPtrInput { + return (*bucketLifecycleRuleExpirationPtrType)(v) +} + +func (*bucketLifecycleRuleExpirationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleRuleExpiration)(nil)).Elem() +} + +func (i *bucketLifecycleRuleExpirationPtrType) ToBucketLifecycleRuleExpirationPtrOutput() BucketLifecycleRuleExpirationPtrOutput { + return i.ToBucketLifecycleRuleExpirationPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleRuleExpirationPtrType) ToBucketLifecycleRuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleExpirationPtrOutput) +} + +type BucketLifecycleRuleExpirationOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleExpiration)(nil)).Elem() +} + +func (o BucketLifecycleRuleExpirationOutput) ToBucketLifecycleRuleExpirationOutput() BucketLifecycleRuleExpirationOutput { + return o +} + +func (o BucketLifecycleRuleExpirationOutput) ToBucketLifecycleRuleExpirationOutputWithContext(ctx context.Context) BucketLifecycleRuleExpirationOutput { + return o +} + +func (o BucketLifecycleRuleExpirationOutput) ToBucketLifecycleRuleExpirationPtrOutput() BucketLifecycleRuleExpirationPtrOutput { + return o.ToBucketLifecycleRuleExpirationPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleRuleExpirationOutput) ToBucketLifecycleRuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleExpirationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleRuleExpiration) *BucketLifecycleRuleExpiration { + return &v + }).(BucketLifecycleRuleExpirationPtrOutput) +} + +// Specifies the date after which you want the corresponding action to take effect. +func (o BucketLifecycleRuleExpirationOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleExpiration) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days after object creation when the specific rule action takes effect. +func (o BucketLifecycleRuleExpirationOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleExpiration) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. +func (o BucketLifecycleRuleExpirationOutput) ExpiredObjectDeleteMarker() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleExpiration) *bool { return v.ExpiredObjectDeleteMarker }).(pulumi.BoolPtrOutput) +} + +type BucketLifecycleRuleExpirationPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleExpirationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleRuleExpiration)(nil)).Elem() +} + +func (o BucketLifecycleRuleExpirationPtrOutput) ToBucketLifecycleRuleExpirationPtrOutput() BucketLifecycleRuleExpirationPtrOutput { + return o +} + +func (o BucketLifecycleRuleExpirationPtrOutput) ToBucketLifecycleRuleExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleExpirationPtrOutput { + return o +} + +func (o BucketLifecycleRuleExpirationPtrOutput) Elem() BucketLifecycleRuleExpirationOutput { + return o.ApplyT(func(v *BucketLifecycleRuleExpiration) BucketLifecycleRuleExpiration { + if v != nil { + return *v + } + var ret BucketLifecycleRuleExpiration + return ret + }).(BucketLifecycleRuleExpirationOutput) +} + +// Specifies the date after which you want the corresponding action to take effect. +func (o BucketLifecycleRuleExpirationPtrOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketLifecycleRuleExpiration) *string { + if v == nil { + return nil + } + return v.Date + }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days after object creation when the specific rule action takes effect. +func (o BucketLifecycleRuleExpirationPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleRuleExpiration) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +// On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. +func (o BucketLifecycleRuleExpirationPtrOutput) ExpiredObjectDeleteMarker() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketLifecycleRuleExpiration) *bool { + if v == nil { + return nil + } + return v.ExpiredObjectDeleteMarker + }).(pulumi.BoolPtrOutput) +} + +type BucketLifecycleRuleNoncurrentVersionExpiration struct { + // Specifies the number of days noncurrent object versions expire. + Days *int `pulumi:"days"` +} + +// BucketLifecycleRuleNoncurrentVersionExpirationInput is an input type that accepts BucketLifecycleRuleNoncurrentVersionExpirationArgs and BucketLifecycleRuleNoncurrentVersionExpirationOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleNoncurrentVersionExpirationInput` via: +// +// BucketLifecycleRuleNoncurrentVersionExpirationArgs{...} +type BucketLifecycleRuleNoncurrentVersionExpirationInput interface { + pulumi.Input + + ToBucketLifecycleRuleNoncurrentVersionExpirationOutput() BucketLifecycleRuleNoncurrentVersionExpirationOutput + ToBucketLifecycleRuleNoncurrentVersionExpirationOutputWithContext(context.Context) BucketLifecycleRuleNoncurrentVersionExpirationOutput +} + +type BucketLifecycleRuleNoncurrentVersionExpirationArgs struct { + // Specifies the number of days noncurrent object versions expire. + Days pulumi.IntPtrInput `pulumi:"days"` +} + +func (BucketLifecycleRuleNoncurrentVersionExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (i BucketLifecycleRuleNoncurrentVersionExpirationArgs) ToBucketLifecycleRuleNoncurrentVersionExpirationOutput() BucketLifecycleRuleNoncurrentVersionExpirationOutput { + return i.ToBucketLifecycleRuleNoncurrentVersionExpirationOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleNoncurrentVersionExpirationArgs) ToBucketLifecycleRuleNoncurrentVersionExpirationOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleNoncurrentVersionExpirationOutput) +} + +func (i BucketLifecycleRuleNoncurrentVersionExpirationArgs) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return i.ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleNoncurrentVersionExpirationArgs) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleNoncurrentVersionExpirationOutput).ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(ctx) +} + +// BucketLifecycleRuleNoncurrentVersionExpirationPtrInput is an input type that accepts BucketLifecycleRuleNoncurrentVersionExpirationArgs, BucketLifecycleRuleNoncurrentVersionExpirationPtr and BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleNoncurrentVersionExpirationPtrInput` via: +// +// BucketLifecycleRuleNoncurrentVersionExpirationArgs{...} +// +// or: +// +// nil +type BucketLifecycleRuleNoncurrentVersionExpirationPtrInput interface { + pulumi.Input + + ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput + ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(context.Context) BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput +} + +type bucketLifecycleRuleNoncurrentVersionExpirationPtrType BucketLifecycleRuleNoncurrentVersionExpirationArgs + +func BucketLifecycleRuleNoncurrentVersionExpirationPtr(v *BucketLifecycleRuleNoncurrentVersionExpirationArgs) BucketLifecycleRuleNoncurrentVersionExpirationPtrInput { + return (*bucketLifecycleRuleNoncurrentVersionExpirationPtrType)(v) +} + +func (*bucketLifecycleRuleNoncurrentVersionExpirationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (i *bucketLifecycleRuleNoncurrentVersionExpirationPtrType) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return i.ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(context.Background()) +} + +func (i *bucketLifecycleRuleNoncurrentVersionExpirationPtrType) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) +} + +type BucketLifecycleRuleNoncurrentVersionExpirationOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleNoncurrentVersionExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationOutput) ToBucketLifecycleRuleNoncurrentVersionExpirationOutput() BucketLifecycleRuleNoncurrentVersionExpirationOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationOutput) ToBucketLifecycleRuleNoncurrentVersionExpirationOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionExpirationOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationOutput) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return o.ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(context.Background()) +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationOutput) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketLifecycleRuleNoncurrentVersionExpiration) *BucketLifecycleRuleNoncurrentVersionExpiration { + return &v + }).(BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) +} + +// Specifies the number of days noncurrent object versions expire. +func (o BucketLifecycleRuleNoncurrentVersionExpirationOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleNoncurrentVersionExpiration) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +type BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketLifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutput() BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) ToBucketLifecycleRuleNoncurrentVersionExpirationPtrOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) Elem() BucketLifecycleRuleNoncurrentVersionExpirationOutput { + return o.ApplyT(func(v *BucketLifecycleRuleNoncurrentVersionExpiration) BucketLifecycleRuleNoncurrentVersionExpiration { + if v != nil { + return *v + } + var ret BucketLifecycleRuleNoncurrentVersionExpiration + return ret + }).(BucketLifecycleRuleNoncurrentVersionExpirationOutput) +} + +// Specifies the number of days noncurrent object versions expire. +func (o BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketLifecycleRuleNoncurrentVersionExpiration) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +type BucketLifecycleRuleNoncurrentVersionTransition struct { + // Specifies the number of days noncurrent object versions transition. + Days *int `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass string `pulumi:"storageClass"` +} + +// BucketLifecycleRuleNoncurrentVersionTransitionInput is an input type that accepts BucketLifecycleRuleNoncurrentVersionTransitionArgs and BucketLifecycleRuleNoncurrentVersionTransitionOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleNoncurrentVersionTransitionInput` via: +// +// BucketLifecycleRuleNoncurrentVersionTransitionArgs{...} +type BucketLifecycleRuleNoncurrentVersionTransitionInput interface { + pulumi.Input + + ToBucketLifecycleRuleNoncurrentVersionTransitionOutput() BucketLifecycleRuleNoncurrentVersionTransitionOutput + ToBucketLifecycleRuleNoncurrentVersionTransitionOutputWithContext(context.Context) BucketLifecycleRuleNoncurrentVersionTransitionOutput +} + +type BucketLifecycleRuleNoncurrentVersionTransitionArgs struct { + // Specifies the number of days noncurrent object versions transition. + Days pulumi.IntPtrInput `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass pulumi.StringInput `pulumi:"storageClass"` +} + +func (BucketLifecycleRuleNoncurrentVersionTransitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (i BucketLifecycleRuleNoncurrentVersionTransitionArgs) ToBucketLifecycleRuleNoncurrentVersionTransitionOutput() BucketLifecycleRuleNoncurrentVersionTransitionOutput { + return i.ToBucketLifecycleRuleNoncurrentVersionTransitionOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleNoncurrentVersionTransitionArgs) ToBucketLifecycleRuleNoncurrentVersionTransitionOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionTransitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleNoncurrentVersionTransitionOutput) +} + +// BucketLifecycleRuleNoncurrentVersionTransitionArrayInput is an input type that accepts BucketLifecycleRuleNoncurrentVersionTransitionArray and BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleNoncurrentVersionTransitionArrayInput` via: +// +// BucketLifecycleRuleNoncurrentVersionTransitionArray{ BucketLifecycleRuleNoncurrentVersionTransitionArgs{...} } +type BucketLifecycleRuleNoncurrentVersionTransitionArrayInput interface { + pulumi.Input + + ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutput() BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput + ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(context.Context) BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput +} + +type BucketLifecycleRuleNoncurrentVersionTransitionArray []BucketLifecycleRuleNoncurrentVersionTransitionInput + +func (BucketLifecycleRuleNoncurrentVersionTransitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (i BucketLifecycleRuleNoncurrentVersionTransitionArray) ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutput() BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput { + return i.ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleNoncurrentVersionTransitionArray) ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput) +} + +type BucketLifecycleRuleNoncurrentVersionTransitionOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleNoncurrentVersionTransitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (o BucketLifecycleRuleNoncurrentVersionTransitionOutput) ToBucketLifecycleRuleNoncurrentVersionTransitionOutput() BucketLifecycleRuleNoncurrentVersionTransitionOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionTransitionOutput) ToBucketLifecycleRuleNoncurrentVersionTransitionOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionTransitionOutput { + return o +} + +// Specifies the number of days noncurrent object versions transition. +func (o BucketLifecycleRuleNoncurrentVersionTransitionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleNoncurrentVersionTransition) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. +func (o BucketLifecycleRuleNoncurrentVersionTransitionOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleRuleNoncurrentVersionTransition) string { return v.StorageClass }).(pulumi.StringOutput) +} + +type BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (o BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput) ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutput() BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput) ToBucketLifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput { + return o +} + +func (o BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput) Index(i pulumi.IntInput) BucketLifecycleRuleNoncurrentVersionTransitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLifecycleRuleNoncurrentVersionTransition { + return vs[0].([]BucketLifecycleRuleNoncurrentVersionTransition)[vs[1].(int)] + }).(BucketLifecycleRuleNoncurrentVersionTransitionOutput) +} + +type BucketLifecycleRuleTransition struct { + // Specifies the date after which you want the corresponding action to take effect. + Date *string `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *int `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass string `pulumi:"storageClass"` +} + +// BucketLifecycleRuleTransitionInput is an input type that accepts BucketLifecycleRuleTransitionArgs and BucketLifecycleRuleTransitionOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleTransitionInput` via: +// +// BucketLifecycleRuleTransitionArgs{...} +type BucketLifecycleRuleTransitionInput interface { + pulumi.Input + + ToBucketLifecycleRuleTransitionOutput() BucketLifecycleRuleTransitionOutput + ToBucketLifecycleRuleTransitionOutputWithContext(context.Context) BucketLifecycleRuleTransitionOutput +} + +type BucketLifecycleRuleTransitionArgs struct { + // Specifies the date after which you want the corresponding action to take effect. + Date pulumi.StringPtrInput `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days pulumi.IntPtrInput `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass pulumi.StringInput `pulumi:"storageClass"` +} + +func (BucketLifecycleRuleTransitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleTransition)(nil)).Elem() +} + +func (i BucketLifecycleRuleTransitionArgs) ToBucketLifecycleRuleTransitionOutput() BucketLifecycleRuleTransitionOutput { + return i.ToBucketLifecycleRuleTransitionOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleTransitionArgs) ToBucketLifecycleRuleTransitionOutputWithContext(ctx context.Context) BucketLifecycleRuleTransitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleTransitionOutput) +} + +// BucketLifecycleRuleTransitionArrayInput is an input type that accepts BucketLifecycleRuleTransitionArray and BucketLifecycleRuleTransitionArrayOutput values. +// You can construct a concrete instance of `BucketLifecycleRuleTransitionArrayInput` via: +// +// BucketLifecycleRuleTransitionArray{ BucketLifecycleRuleTransitionArgs{...} } +type BucketLifecycleRuleTransitionArrayInput interface { + pulumi.Input + + ToBucketLifecycleRuleTransitionArrayOutput() BucketLifecycleRuleTransitionArrayOutput + ToBucketLifecycleRuleTransitionArrayOutputWithContext(context.Context) BucketLifecycleRuleTransitionArrayOutput +} + +type BucketLifecycleRuleTransitionArray []BucketLifecycleRuleTransitionInput + +func (BucketLifecycleRuleTransitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleRuleTransition)(nil)).Elem() +} + +func (i BucketLifecycleRuleTransitionArray) ToBucketLifecycleRuleTransitionArrayOutput() BucketLifecycleRuleTransitionArrayOutput { + return i.ToBucketLifecycleRuleTransitionArrayOutputWithContext(context.Background()) +} + +func (i BucketLifecycleRuleTransitionArray) ToBucketLifecycleRuleTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleTransitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLifecycleRuleTransitionArrayOutput) +} + +type BucketLifecycleRuleTransitionOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleTransitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLifecycleRuleTransition)(nil)).Elem() +} + +func (o BucketLifecycleRuleTransitionOutput) ToBucketLifecycleRuleTransitionOutput() BucketLifecycleRuleTransitionOutput { + return o +} + +func (o BucketLifecycleRuleTransitionOutput) ToBucketLifecycleRuleTransitionOutputWithContext(ctx context.Context) BucketLifecycleRuleTransitionOutput { + return o +} + +// Specifies the date after which you want the corresponding action to take effect. +func (o BucketLifecycleRuleTransitionOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleTransition) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days after object creation when the specific rule action takes effect. +func (o BucketLifecycleRuleTransitionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketLifecycleRuleTransition) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. +func (o BucketLifecycleRuleTransitionOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v BucketLifecycleRuleTransition) string { return v.StorageClass }).(pulumi.StringOutput) +} + +type BucketLifecycleRuleTransitionArrayOutput struct{ *pulumi.OutputState } + +func (BucketLifecycleRuleTransitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLifecycleRuleTransition)(nil)).Elem() +} + +func (o BucketLifecycleRuleTransitionArrayOutput) ToBucketLifecycleRuleTransitionArrayOutput() BucketLifecycleRuleTransitionArrayOutput { + return o +} + +func (o BucketLifecycleRuleTransitionArrayOutput) ToBucketLifecycleRuleTransitionArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleTransitionArrayOutput { + return o +} + +func (o BucketLifecycleRuleTransitionArrayOutput) Index(i pulumi.IntInput) BucketLifecycleRuleTransitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLifecycleRuleTransition { + return vs[0].([]BucketLifecycleRuleTransition)[vs[1].(int)] + }).(BucketLifecycleRuleTransitionOutput) +} + +type BucketLogging struct { + // The name of the bucket that will receive the log objects. + TargetBucket string `pulumi:"targetBucket"` + // To specify a key prefix for log objects. + TargetPrefix *string `pulumi:"targetPrefix"` +} + +// BucketLoggingInput is an input type that accepts BucketLoggingArgs and BucketLoggingOutput values. +// You can construct a concrete instance of `BucketLoggingInput` via: +// +// BucketLoggingArgs{...} +type BucketLoggingInput interface { + pulumi.Input + + ToBucketLoggingOutput() BucketLoggingOutput + ToBucketLoggingOutputWithContext(context.Context) BucketLoggingOutput +} + +type BucketLoggingArgs struct { + // The name of the bucket that will receive the log objects. + TargetBucket pulumi.StringInput `pulumi:"targetBucket"` + // To specify a key prefix for log objects. + TargetPrefix pulumi.StringPtrInput `pulumi:"targetPrefix"` +} + +func (BucketLoggingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLogging)(nil)).Elem() +} + +func (i BucketLoggingArgs) ToBucketLoggingOutput() BucketLoggingOutput { + return i.ToBucketLoggingOutputWithContext(context.Background()) +} + +func (i BucketLoggingArgs) ToBucketLoggingOutputWithContext(ctx context.Context) BucketLoggingOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingOutput) +} + +// BucketLoggingArrayInput is an input type that accepts BucketLoggingArray and BucketLoggingArrayOutput values. +// You can construct a concrete instance of `BucketLoggingArrayInput` via: +// +// BucketLoggingArray{ BucketLoggingArgs{...} } +type BucketLoggingArrayInput interface { + pulumi.Input + + ToBucketLoggingArrayOutput() BucketLoggingArrayOutput + ToBucketLoggingArrayOutputWithContext(context.Context) BucketLoggingArrayOutput +} + +type BucketLoggingArray []BucketLoggingInput + +func (BucketLoggingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLogging)(nil)).Elem() +} + +func (i BucketLoggingArray) ToBucketLoggingArrayOutput() BucketLoggingArrayOutput { + return i.ToBucketLoggingArrayOutputWithContext(context.Background()) +} + +func (i BucketLoggingArray) ToBucketLoggingArrayOutputWithContext(ctx context.Context) BucketLoggingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingArrayOutput) +} + +type BucketLoggingOutput struct{ *pulumi.OutputState } + +func (BucketLoggingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLogging)(nil)).Elem() +} + +func (o BucketLoggingOutput) ToBucketLoggingOutput() BucketLoggingOutput { + return o +} + +func (o BucketLoggingOutput) ToBucketLoggingOutputWithContext(ctx context.Context) BucketLoggingOutput { + return o +} + +// The name of the bucket that will receive the log objects. +func (o BucketLoggingOutput) TargetBucket() pulumi.StringOutput { + return o.ApplyT(func(v BucketLogging) string { return v.TargetBucket }).(pulumi.StringOutput) +} + +// To specify a key prefix for log objects. +func (o BucketLoggingOutput) TargetPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLogging) *string { return v.TargetPrefix }).(pulumi.StringPtrOutput) +} + +type BucketLoggingArrayOutput struct{ *pulumi.OutputState } + +func (BucketLoggingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLogging)(nil)).Elem() +} + +func (o BucketLoggingArrayOutput) ToBucketLoggingArrayOutput() BucketLoggingArrayOutput { + return o +} + +func (o BucketLoggingArrayOutput) ToBucketLoggingArrayOutputWithContext(ctx context.Context) BucketLoggingArrayOutput { + return o +} + +func (o BucketLoggingArrayOutput) Index(i pulumi.IntInput) BucketLoggingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLogging { + return vs[0].([]BucketLogging)[vs[1].(int)] + }).(BucketLoggingOutput) +} + +type BucketLoggingV2TargetGrant struct { + // Configuration block for the person being granted permissions. See below. + Grantee BucketLoggingV2TargetGrantGrantee `pulumi:"grantee"` + // Logging permissions assigned to the grantee for the bucket. Valid values: `FULL_CONTROL`, `READ`, `WRITE`. + Permission string `pulumi:"permission"` +} + +// BucketLoggingV2TargetGrantInput is an input type that accepts BucketLoggingV2TargetGrantArgs and BucketLoggingV2TargetGrantOutput values. +// You can construct a concrete instance of `BucketLoggingV2TargetGrantInput` via: +// +// BucketLoggingV2TargetGrantArgs{...} +type BucketLoggingV2TargetGrantInput interface { + pulumi.Input + + ToBucketLoggingV2TargetGrantOutput() BucketLoggingV2TargetGrantOutput + ToBucketLoggingV2TargetGrantOutputWithContext(context.Context) BucketLoggingV2TargetGrantOutput +} + +type BucketLoggingV2TargetGrantArgs struct { + // Configuration block for the person being granted permissions. See below. + Grantee BucketLoggingV2TargetGrantGranteeInput `pulumi:"grantee"` + // Logging permissions assigned to the grantee for the bucket. Valid values: `FULL_CONTROL`, `READ`, `WRITE`. + Permission pulumi.StringInput `pulumi:"permission"` +} + +func (BucketLoggingV2TargetGrantArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLoggingV2TargetGrant)(nil)).Elem() +} + +func (i BucketLoggingV2TargetGrantArgs) ToBucketLoggingV2TargetGrantOutput() BucketLoggingV2TargetGrantOutput { + return i.ToBucketLoggingV2TargetGrantOutputWithContext(context.Background()) +} + +func (i BucketLoggingV2TargetGrantArgs) ToBucketLoggingV2TargetGrantOutputWithContext(ctx context.Context) BucketLoggingV2TargetGrantOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingV2TargetGrantOutput) +} + +// BucketLoggingV2TargetGrantArrayInput is an input type that accepts BucketLoggingV2TargetGrantArray and BucketLoggingV2TargetGrantArrayOutput values. +// You can construct a concrete instance of `BucketLoggingV2TargetGrantArrayInput` via: +// +// BucketLoggingV2TargetGrantArray{ BucketLoggingV2TargetGrantArgs{...} } +type BucketLoggingV2TargetGrantArrayInput interface { + pulumi.Input + + ToBucketLoggingV2TargetGrantArrayOutput() BucketLoggingV2TargetGrantArrayOutput + ToBucketLoggingV2TargetGrantArrayOutputWithContext(context.Context) BucketLoggingV2TargetGrantArrayOutput +} + +type BucketLoggingV2TargetGrantArray []BucketLoggingV2TargetGrantInput + +func (BucketLoggingV2TargetGrantArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLoggingV2TargetGrant)(nil)).Elem() +} + +func (i BucketLoggingV2TargetGrantArray) ToBucketLoggingV2TargetGrantArrayOutput() BucketLoggingV2TargetGrantArrayOutput { + return i.ToBucketLoggingV2TargetGrantArrayOutputWithContext(context.Background()) +} + +func (i BucketLoggingV2TargetGrantArray) ToBucketLoggingV2TargetGrantArrayOutputWithContext(ctx context.Context) BucketLoggingV2TargetGrantArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingV2TargetGrantArrayOutput) +} + +type BucketLoggingV2TargetGrantOutput struct{ *pulumi.OutputState } + +func (BucketLoggingV2TargetGrantOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLoggingV2TargetGrant)(nil)).Elem() +} + +func (o BucketLoggingV2TargetGrantOutput) ToBucketLoggingV2TargetGrantOutput() BucketLoggingV2TargetGrantOutput { + return o +} + +func (o BucketLoggingV2TargetGrantOutput) ToBucketLoggingV2TargetGrantOutputWithContext(ctx context.Context) BucketLoggingV2TargetGrantOutput { + return o +} + +// Configuration block for the person being granted permissions. See below. +func (o BucketLoggingV2TargetGrantOutput) Grantee() BucketLoggingV2TargetGrantGranteeOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrant) BucketLoggingV2TargetGrantGrantee { return v.Grantee }).(BucketLoggingV2TargetGrantGranteeOutput) +} + +// Logging permissions assigned to the grantee for the bucket. Valid values: `FULL_CONTROL`, `READ`, `WRITE`. +func (o BucketLoggingV2TargetGrantOutput) Permission() pulumi.StringOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrant) string { return v.Permission }).(pulumi.StringOutput) +} + +type BucketLoggingV2TargetGrantArrayOutput struct{ *pulumi.OutputState } + +func (BucketLoggingV2TargetGrantArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketLoggingV2TargetGrant)(nil)).Elem() +} + +func (o BucketLoggingV2TargetGrantArrayOutput) ToBucketLoggingV2TargetGrantArrayOutput() BucketLoggingV2TargetGrantArrayOutput { + return o +} + +func (o BucketLoggingV2TargetGrantArrayOutput) ToBucketLoggingV2TargetGrantArrayOutputWithContext(ctx context.Context) BucketLoggingV2TargetGrantArrayOutput { + return o +} + +func (o BucketLoggingV2TargetGrantArrayOutput) Index(i pulumi.IntInput) BucketLoggingV2TargetGrantOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketLoggingV2TargetGrant { + return vs[0].([]BucketLoggingV2TargetGrant)[vs[1].(int)] + }).(BucketLoggingV2TargetGrantOutput) +} + +type BucketLoggingV2TargetGrantGrantee struct { + DisplayName *string `pulumi:"displayName"` + // Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. + EmailAddress *string `pulumi:"emailAddress"` + // Canonical user ID of the grantee. + Id *string `pulumi:"id"` + // Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. + Type string `pulumi:"type"` + // URI of the grantee group. + Uri *string `pulumi:"uri"` +} + +// BucketLoggingV2TargetGrantGranteeInput is an input type that accepts BucketLoggingV2TargetGrantGranteeArgs and BucketLoggingV2TargetGrantGranteeOutput values. +// You can construct a concrete instance of `BucketLoggingV2TargetGrantGranteeInput` via: +// +// BucketLoggingV2TargetGrantGranteeArgs{...} +type BucketLoggingV2TargetGrantGranteeInput interface { + pulumi.Input + + ToBucketLoggingV2TargetGrantGranteeOutput() BucketLoggingV2TargetGrantGranteeOutput + ToBucketLoggingV2TargetGrantGranteeOutputWithContext(context.Context) BucketLoggingV2TargetGrantGranteeOutput +} + +type BucketLoggingV2TargetGrantGranteeArgs struct { + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. + EmailAddress pulumi.StringPtrInput `pulumi:"emailAddress"` + // Canonical user ID of the grantee. + Id pulumi.StringPtrInput `pulumi:"id"` + // Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. + Type pulumi.StringInput `pulumi:"type"` + // URI of the grantee group. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (BucketLoggingV2TargetGrantGranteeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLoggingV2TargetGrantGrantee)(nil)).Elem() +} + +func (i BucketLoggingV2TargetGrantGranteeArgs) ToBucketLoggingV2TargetGrantGranteeOutput() BucketLoggingV2TargetGrantGranteeOutput { + return i.ToBucketLoggingV2TargetGrantGranteeOutputWithContext(context.Background()) +} + +func (i BucketLoggingV2TargetGrantGranteeArgs) ToBucketLoggingV2TargetGrantGranteeOutputWithContext(ctx context.Context) BucketLoggingV2TargetGrantGranteeOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketLoggingV2TargetGrantGranteeOutput) +} + +type BucketLoggingV2TargetGrantGranteeOutput struct{ *pulumi.OutputState } + +func (BucketLoggingV2TargetGrantGranteeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketLoggingV2TargetGrantGrantee)(nil)).Elem() +} + +func (o BucketLoggingV2TargetGrantGranteeOutput) ToBucketLoggingV2TargetGrantGranteeOutput() BucketLoggingV2TargetGrantGranteeOutput { + return o +} + +func (o BucketLoggingV2TargetGrantGranteeOutput) ToBucketLoggingV2TargetGrantGranteeOutputWithContext(ctx context.Context) BucketLoggingV2TargetGrantGranteeOutput { + return o +} + +func (o BucketLoggingV2TargetGrantGranteeOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrantGrantee) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// Email address of the grantee. See [Regions and Endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) for supported AWS regions where this argument can be specified. +func (o BucketLoggingV2TargetGrantGranteeOutput) EmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrantGrantee) *string { return v.EmailAddress }).(pulumi.StringPtrOutput) +} + +// Canonical user ID of the grantee. +func (o BucketLoggingV2TargetGrantGranteeOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrantGrantee) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Type of grantee. Valid values: `CanonicalUser`, `AmazonCustomerByEmail`, `Group`. +func (o BucketLoggingV2TargetGrantGranteeOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrantGrantee) string { return v.Type }).(pulumi.StringOutput) +} + +// URI of the grantee group. +func (o BucketLoggingV2TargetGrantGranteeOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketLoggingV2TargetGrantGrantee) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type BucketMetricFilter struct { + // Object prefix for filtering (singular). + Prefix *string `pulumi:"prefix"` + // Object tags for filtering (up to 10). + Tags map[string]string `pulumi:"tags"` +} + +// BucketMetricFilterInput is an input type that accepts BucketMetricFilterArgs and BucketMetricFilterOutput values. +// You can construct a concrete instance of `BucketMetricFilterInput` via: +// +// BucketMetricFilterArgs{...} +type BucketMetricFilterInput interface { + pulumi.Input + + ToBucketMetricFilterOutput() BucketMetricFilterOutput + ToBucketMetricFilterOutputWithContext(context.Context) BucketMetricFilterOutput +} + +type BucketMetricFilterArgs struct { + // Object prefix for filtering (singular). + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Object tags for filtering (up to 10). + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketMetricFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketMetricFilter)(nil)).Elem() +} + +func (i BucketMetricFilterArgs) ToBucketMetricFilterOutput() BucketMetricFilterOutput { + return i.ToBucketMetricFilterOutputWithContext(context.Background()) +} + +func (i BucketMetricFilterArgs) ToBucketMetricFilterOutputWithContext(ctx context.Context) BucketMetricFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMetricFilterOutput) +} + +func (i BucketMetricFilterArgs) ToBucketMetricFilterPtrOutput() BucketMetricFilterPtrOutput { + return i.ToBucketMetricFilterPtrOutputWithContext(context.Background()) +} + +func (i BucketMetricFilterArgs) ToBucketMetricFilterPtrOutputWithContext(ctx context.Context) BucketMetricFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMetricFilterOutput).ToBucketMetricFilterPtrOutputWithContext(ctx) +} + +// BucketMetricFilterPtrInput is an input type that accepts BucketMetricFilterArgs, BucketMetricFilterPtr and BucketMetricFilterPtrOutput values. +// You can construct a concrete instance of `BucketMetricFilterPtrInput` via: +// +// BucketMetricFilterArgs{...} +// +// or: +// +// nil +type BucketMetricFilterPtrInput interface { + pulumi.Input + + ToBucketMetricFilterPtrOutput() BucketMetricFilterPtrOutput + ToBucketMetricFilterPtrOutputWithContext(context.Context) BucketMetricFilterPtrOutput +} + +type bucketMetricFilterPtrType BucketMetricFilterArgs + +func BucketMetricFilterPtr(v *BucketMetricFilterArgs) BucketMetricFilterPtrInput { + return (*bucketMetricFilterPtrType)(v) +} + +func (*bucketMetricFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketMetricFilter)(nil)).Elem() +} + +func (i *bucketMetricFilterPtrType) ToBucketMetricFilterPtrOutput() BucketMetricFilterPtrOutput { + return i.ToBucketMetricFilterPtrOutputWithContext(context.Background()) +} + +func (i *bucketMetricFilterPtrType) ToBucketMetricFilterPtrOutputWithContext(ctx context.Context) BucketMetricFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketMetricFilterPtrOutput) +} + +type BucketMetricFilterOutput struct{ *pulumi.OutputState } + +func (BucketMetricFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketMetricFilter)(nil)).Elem() +} + +func (o BucketMetricFilterOutput) ToBucketMetricFilterOutput() BucketMetricFilterOutput { + return o +} + +func (o BucketMetricFilterOutput) ToBucketMetricFilterOutputWithContext(ctx context.Context) BucketMetricFilterOutput { + return o +} + +func (o BucketMetricFilterOutput) ToBucketMetricFilterPtrOutput() BucketMetricFilterPtrOutput { + return o.ToBucketMetricFilterPtrOutputWithContext(context.Background()) +} + +func (o BucketMetricFilterOutput) ToBucketMetricFilterPtrOutputWithContext(ctx context.Context) BucketMetricFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketMetricFilter) *BucketMetricFilter { + return &v + }).(BucketMetricFilterPtrOutput) +} + +// Object prefix for filtering (singular). +func (o BucketMetricFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketMetricFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Object tags for filtering (up to 10). +func (o BucketMetricFilterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketMetricFilter) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketMetricFilterPtrOutput struct{ *pulumi.OutputState } + +func (BucketMetricFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketMetricFilter)(nil)).Elem() +} + +func (o BucketMetricFilterPtrOutput) ToBucketMetricFilterPtrOutput() BucketMetricFilterPtrOutput { + return o +} + +func (o BucketMetricFilterPtrOutput) ToBucketMetricFilterPtrOutputWithContext(ctx context.Context) BucketMetricFilterPtrOutput { + return o +} + +func (o BucketMetricFilterPtrOutput) Elem() BucketMetricFilterOutput { + return o.ApplyT(func(v *BucketMetricFilter) BucketMetricFilter { + if v != nil { + return *v + } + var ret BucketMetricFilter + return ret + }).(BucketMetricFilterOutput) +} + +// Object prefix for filtering (singular). +func (o BucketMetricFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketMetricFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// Object tags for filtering (up to 10). +func (o BucketMetricFilterPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketMetricFilter) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type BucketNotificationLambdaFunction struct { + // [Event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. + Events []string `pulumi:"events"` + // Object key name prefix. + FilterPrefix *string `pulumi:"filterPrefix"` + // Object key name suffix. + FilterSuffix *string `pulumi:"filterSuffix"` + // Unique identifier for each of the notification configurations. + Id *string `pulumi:"id"` + // Lambda function ARN. + LambdaFunctionArn *string `pulumi:"lambdaFunctionArn"` +} + +// BucketNotificationLambdaFunctionInput is an input type that accepts BucketNotificationLambdaFunctionArgs and BucketNotificationLambdaFunctionOutput values. +// You can construct a concrete instance of `BucketNotificationLambdaFunctionInput` via: +// +// BucketNotificationLambdaFunctionArgs{...} +type BucketNotificationLambdaFunctionInput interface { + pulumi.Input + + ToBucketNotificationLambdaFunctionOutput() BucketNotificationLambdaFunctionOutput + ToBucketNotificationLambdaFunctionOutputWithContext(context.Context) BucketNotificationLambdaFunctionOutput +} + +type BucketNotificationLambdaFunctionArgs struct { + // [Event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. + Events pulumi.StringArrayInput `pulumi:"events"` + // Object key name prefix. + FilterPrefix pulumi.StringPtrInput `pulumi:"filterPrefix"` + // Object key name suffix. + FilterSuffix pulumi.StringPtrInput `pulumi:"filterSuffix"` + // Unique identifier for each of the notification configurations. + Id pulumi.StringPtrInput `pulumi:"id"` + // Lambda function ARN. + LambdaFunctionArn pulumi.StringPtrInput `pulumi:"lambdaFunctionArn"` +} + +func (BucketNotificationLambdaFunctionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketNotificationLambdaFunction)(nil)).Elem() +} + +func (i BucketNotificationLambdaFunctionArgs) ToBucketNotificationLambdaFunctionOutput() BucketNotificationLambdaFunctionOutput { + return i.ToBucketNotificationLambdaFunctionOutputWithContext(context.Background()) +} + +func (i BucketNotificationLambdaFunctionArgs) ToBucketNotificationLambdaFunctionOutputWithContext(ctx context.Context) BucketNotificationLambdaFunctionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationLambdaFunctionOutput) +} + +// BucketNotificationLambdaFunctionArrayInput is an input type that accepts BucketNotificationLambdaFunctionArray and BucketNotificationLambdaFunctionArrayOutput values. +// You can construct a concrete instance of `BucketNotificationLambdaFunctionArrayInput` via: +// +// BucketNotificationLambdaFunctionArray{ BucketNotificationLambdaFunctionArgs{...} } +type BucketNotificationLambdaFunctionArrayInput interface { + pulumi.Input + + ToBucketNotificationLambdaFunctionArrayOutput() BucketNotificationLambdaFunctionArrayOutput + ToBucketNotificationLambdaFunctionArrayOutputWithContext(context.Context) BucketNotificationLambdaFunctionArrayOutput +} + +type BucketNotificationLambdaFunctionArray []BucketNotificationLambdaFunctionInput + +func (BucketNotificationLambdaFunctionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketNotificationLambdaFunction)(nil)).Elem() +} + +func (i BucketNotificationLambdaFunctionArray) ToBucketNotificationLambdaFunctionArrayOutput() BucketNotificationLambdaFunctionArrayOutput { + return i.ToBucketNotificationLambdaFunctionArrayOutputWithContext(context.Background()) +} + +func (i BucketNotificationLambdaFunctionArray) ToBucketNotificationLambdaFunctionArrayOutputWithContext(ctx context.Context) BucketNotificationLambdaFunctionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationLambdaFunctionArrayOutput) +} + +type BucketNotificationLambdaFunctionOutput struct{ *pulumi.OutputState } + +func (BucketNotificationLambdaFunctionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketNotificationLambdaFunction)(nil)).Elem() +} + +func (o BucketNotificationLambdaFunctionOutput) ToBucketNotificationLambdaFunctionOutput() BucketNotificationLambdaFunctionOutput { + return o +} + +func (o BucketNotificationLambdaFunctionOutput) ToBucketNotificationLambdaFunctionOutputWithContext(ctx context.Context) BucketNotificationLambdaFunctionOutput { + return o +} + +// [Event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. +func (o BucketNotificationLambdaFunctionOutput) Events() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketNotificationLambdaFunction) []string { return v.Events }).(pulumi.StringArrayOutput) +} + +// Object key name prefix. +func (o BucketNotificationLambdaFunctionOutput) FilterPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationLambdaFunction) *string { return v.FilterPrefix }).(pulumi.StringPtrOutput) +} + +// Object key name suffix. +func (o BucketNotificationLambdaFunctionOutput) FilterSuffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationLambdaFunction) *string { return v.FilterSuffix }).(pulumi.StringPtrOutput) +} + +// Unique identifier for each of the notification configurations. +func (o BucketNotificationLambdaFunctionOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationLambdaFunction) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Lambda function ARN. +func (o BucketNotificationLambdaFunctionOutput) LambdaFunctionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationLambdaFunction) *string { return v.LambdaFunctionArn }).(pulumi.StringPtrOutput) +} + +type BucketNotificationLambdaFunctionArrayOutput struct{ *pulumi.OutputState } + +func (BucketNotificationLambdaFunctionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketNotificationLambdaFunction)(nil)).Elem() +} + +func (o BucketNotificationLambdaFunctionArrayOutput) ToBucketNotificationLambdaFunctionArrayOutput() BucketNotificationLambdaFunctionArrayOutput { + return o +} + +func (o BucketNotificationLambdaFunctionArrayOutput) ToBucketNotificationLambdaFunctionArrayOutputWithContext(ctx context.Context) BucketNotificationLambdaFunctionArrayOutput { + return o +} + +func (o BucketNotificationLambdaFunctionArrayOutput) Index(i pulumi.IntInput) BucketNotificationLambdaFunctionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketNotificationLambdaFunction { + return vs[0].([]BucketNotificationLambdaFunction)[vs[1].(int)] + }).(BucketNotificationLambdaFunctionOutput) +} + +type BucketNotificationQueue struct { + // Specifies [event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. + Events []string `pulumi:"events"` + // Object key name prefix. + FilterPrefix *string `pulumi:"filterPrefix"` + // Object key name suffix. + FilterSuffix *string `pulumi:"filterSuffix"` + // Unique identifier for each of the notification configurations. + Id *string `pulumi:"id"` + // SQS queue ARN. + QueueArn string `pulumi:"queueArn"` +} + +// BucketNotificationQueueInput is an input type that accepts BucketNotificationQueueArgs and BucketNotificationQueueOutput values. +// You can construct a concrete instance of `BucketNotificationQueueInput` via: +// +// BucketNotificationQueueArgs{...} +type BucketNotificationQueueInput interface { + pulumi.Input + + ToBucketNotificationQueueOutput() BucketNotificationQueueOutput + ToBucketNotificationQueueOutputWithContext(context.Context) BucketNotificationQueueOutput +} + +type BucketNotificationQueueArgs struct { + // Specifies [event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. + Events pulumi.StringArrayInput `pulumi:"events"` + // Object key name prefix. + FilterPrefix pulumi.StringPtrInput `pulumi:"filterPrefix"` + // Object key name suffix. + FilterSuffix pulumi.StringPtrInput `pulumi:"filterSuffix"` + // Unique identifier for each of the notification configurations. + Id pulumi.StringPtrInput `pulumi:"id"` + // SQS queue ARN. + QueueArn pulumi.StringInput `pulumi:"queueArn"` +} + +func (BucketNotificationQueueArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketNotificationQueue)(nil)).Elem() +} + +func (i BucketNotificationQueueArgs) ToBucketNotificationQueueOutput() BucketNotificationQueueOutput { + return i.ToBucketNotificationQueueOutputWithContext(context.Background()) +} + +func (i BucketNotificationQueueArgs) ToBucketNotificationQueueOutputWithContext(ctx context.Context) BucketNotificationQueueOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationQueueOutput) +} + +// BucketNotificationQueueArrayInput is an input type that accepts BucketNotificationQueueArray and BucketNotificationQueueArrayOutput values. +// You can construct a concrete instance of `BucketNotificationQueueArrayInput` via: +// +// BucketNotificationQueueArray{ BucketNotificationQueueArgs{...} } +type BucketNotificationQueueArrayInput interface { + pulumi.Input + + ToBucketNotificationQueueArrayOutput() BucketNotificationQueueArrayOutput + ToBucketNotificationQueueArrayOutputWithContext(context.Context) BucketNotificationQueueArrayOutput +} + +type BucketNotificationQueueArray []BucketNotificationQueueInput + +func (BucketNotificationQueueArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketNotificationQueue)(nil)).Elem() +} + +func (i BucketNotificationQueueArray) ToBucketNotificationQueueArrayOutput() BucketNotificationQueueArrayOutput { + return i.ToBucketNotificationQueueArrayOutputWithContext(context.Background()) +} + +func (i BucketNotificationQueueArray) ToBucketNotificationQueueArrayOutputWithContext(ctx context.Context) BucketNotificationQueueArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationQueueArrayOutput) +} + +type BucketNotificationQueueOutput struct{ *pulumi.OutputState } + +func (BucketNotificationQueueOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketNotificationQueue)(nil)).Elem() +} + +func (o BucketNotificationQueueOutput) ToBucketNotificationQueueOutput() BucketNotificationQueueOutput { + return o +} + +func (o BucketNotificationQueueOutput) ToBucketNotificationQueueOutputWithContext(ctx context.Context) BucketNotificationQueueOutput { + return o +} + +// Specifies [event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. +func (o BucketNotificationQueueOutput) Events() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketNotificationQueue) []string { return v.Events }).(pulumi.StringArrayOutput) +} + +// Object key name prefix. +func (o BucketNotificationQueueOutput) FilterPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationQueue) *string { return v.FilterPrefix }).(pulumi.StringPtrOutput) +} + +// Object key name suffix. +func (o BucketNotificationQueueOutput) FilterSuffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationQueue) *string { return v.FilterSuffix }).(pulumi.StringPtrOutput) +} + +// Unique identifier for each of the notification configurations. +func (o BucketNotificationQueueOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationQueue) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// SQS queue ARN. +func (o BucketNotificationQueueOutput) QueueArn() pulumi.StringOutput { + return o.ApplyT(func(v BucketNotificationQueue) string { return v.QueueArn }).(pulumi.StringOutput) +} + +type BucketNotificationQueueArrayOutput struct{ *pulumi.OutputState } + +func (BucketNotificationQueueArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketNotificationQueue)(nil)).Elem() +} + +func (o BucketNotificationQueueArrayOutput) ToBucketNotificationQueueArrayOutput() BucketNotificationQueueArrayOutput { + return o +} + +func (o BucketNotificationQueueArrayOutput) ToBucketNotificationQueueArrayOutputWithContext(ctx context.Context) BucketNotificationQueueArrayOutput { + return o +} + +func (o BucketNotificationQueueArrayOutput) Index(i pulumi.IntInput) BucketNotificationQueueOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketNotificationQueue { + return vs[0].([]BucketNotificationQueue)[vs[1].(int)] + }).(BucketNotificationQueueOutput) +} + +type BucketNotificationTopic struct { + // [Event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. + Events []string `pulumi:"events"` + // Object key name prefix. + FilterPrefix *string `pulumi:"filterPrefix"` + // Object key name suffix. + FilterSuffix *string `pulumi:"filterSuffix"` + // Unique identifier for each of the notification configurations. + Id *string `pulumi:"id"` + // SNS topic ARN. + TopicArn string `pulumi:"topicArn"` +} + +// BucketNotificationTopicInput is an input type that accepts BucketNotificationTopicArgs and BucketNotificationTopicOutput values. +// You can construct a concrete instance of `BucketNotificationTopicInput` via: +// +// BucketNotificationTopicArgs{...} +type BucketNotificationTopicInput interface { + pulumi.Input + + ToBucketNotificationTopicOutput() BucketNotificationTopicOutput + ToBucketNotificationTopicOutputWithContext(context.Context) BucketNotificationTopicOutput +} + +type BucketNotificationTopicArgs struct { + // [Event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. + Events pulumi.StringArrayInput `pulumi:"events"` + // Object key name prefix. + FilterPrefix pulumi.StringPtrInput `pulumi:"filterPrefix"` + // Object key name suffix. + FilterSuffix pulumi.StringPtrInput `pulumi:"filterSuffix"` + // Unique identifier for each of the notification configurations. + Id pulumi.StringPtrInput `pulumi:"id"` + // SNS topic ARN. + TopicArn pulumi.StringInput `pulumi:"topicArn"` +} + +func (BucketNotificationTopicArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketNotificationTopic)(nil)).Elem() +} + +func (i BucketNotificationTopicArgs) ToBucketNotificationTopicOutput() BucketNotificationTopicOutput { + return i.ToBucketNotificationTopicOutputWithContext(context.Background()) +} + +func (i BucketNotificationTopicArgs) ToBucketNotificationTopicOutputWithContext(ctx context.Context) BucketNotificationTopicOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationTopicOutput) +} + +// BucketNotificationTopicArrayInput is an input type that accepts BucketNotificationTopicArray and BucketNotificationTopicArrayOutput values. +// You can construct a concrete instance of `BucketNotificationTopicArrayInput` via: +// +// BucketNotificationTopicArray{ BucketNotificationTopicArgs{...} } +type BucketNotificationTopicArrayInput interface { + pulumi.Input + + ToBucketNotificationTopicArrayOutput() BucketNotificationTopicArrayOutput + ToBucketNotificationTopicArrayOutputWithContext(context.Context) BucketNotificationTopicArrayOutput +} + +type BucketNotificationTopicArray []BucketNotificationTopicInput + +func (BucketNotificationTopicArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketNotificationTopic)(nil)).Elem() +} + +func (i BucketNotificationTopicArray) ToBucketNotificationTopicArrayOutput() BucketNotificationTopicArrayOutput { + return i.ToBucketNotificationTopicArrayOutputWithContext(context.Background()) +} + +func (i BucketNotificationTopicArray) ToBucketNotificationTopicArrayOutputWithContext(ctx context.Context) BucketNotificationTopicArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketNotificationTopicArrayOutput) +} + +type BucketNotificationTopicOutput struct{ *pulumi.OutputState } + +func (BucketNotificationTopicOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketNotificationTopic)(nil)).Elem() +} + +func (o BucketNotificationTopicOutput) ToBucketNotificationTopicOutput() BucketNotificationTopicOutput { + return o +} + +func (o BucketNotificationTopicOutput) ToBucketNotificationTopicOutputWithContext(ctx context.Context) BucketNotificationTopicOutput { + return o +} + +// [Event](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations) for which to send notifications. +func (o BucketNotificationTopicOutput) Events() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketNotificationTopic) []string { return v.Events }).(pulumi.StringArrayOutput) +} + +// Object key name prefix. +func (o BucketNotificationTopicOutput) FilterPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationTopic) *string { return v.FilterPrefix }).(pulumi.StringPtrOutput) +} + +// Object key name suffix. +func (o BucketNotificationTopicOutput) FilterSuffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationTopic) *string { return v.FilterSuffix }).(pulumi.StringPtrOutput) +} + +// Unique identifier for each of the notification configurations. +func (o BucketNotificationTopicOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketNotificationTopic) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// SNS topic ARN. +func (o BucketNotificationTopicOutput) TopicArn() pulumi.StringOutput { + return o.ApplyT(func(v BucketNotificationTopic) string { return v.TopicArn }).(pulumi.StringOutput) +} + +type BucketNotificationTopicArrayOutput struct{ *pulumi.OutputState } + +func (BucketNotificationTopicArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketNotificationTopic)(nil)).Elem() +} + +func (o BucketNotificationTopicArrayOutput) ToBucketNotificationTopicArrayOutput() BucketNotificationTopicArrayOutput { + return o +} + +func (o BucketNotificationTopicArrayOutput) ToBucketNotificationTopicArrayOutputWithContext(ctx context.Context) BucketNotificationTopicArrayOutput { + return o +} + +func (o BucketNotificationTopicArrayOutput) Index(i pulumi.IntInput) BucketNotificationTopicOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketNotificationTopic { + return vs[0].([]BucketNotificationTopic)[vs[1].(int)] + }).(BucketNotificationTopicOutput) +} + +type BucketObjectLockConfiguration struct { + // Indicates whether this bucket has an Object Lock configuration enabled. Valid value is `Enabled`. + ObjectLockEnabled string `pulumi:"objectLockEnabled"` + // The Object Lock rule in place for this bucket. + Rule *BucketObjectLockConfigurationRule `pulumi:"rule"` +} + +// BucketObjectLockConfigurationInput is an input type that accepts BucketObjectLockConfigurationArgs and BucketObjectLockConfigurationOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationInput` via: +// +// BucketObjectLockConfigurationArgs{...} +type BucketObjectLockConfigurationInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationOutput() BucketObjectLockConfigurationOutput + ToBucketObjectLockConfigurationOutputWithContext(context.Context) BucketObjectLockConfigurationOutput +} + +type BucketObjectLockConfigurationArgs struct { + // Indicates whether this bucket has an Object Lock configuration enabled. Valid value is `Enabled`. + ObjectLockEnabled pulumi.StringInput `pulumi:"objectLockEnabled"` + // The Object Lock rule in place for this bucket. + Rule BucketObjectLockConfigurationRulePtrInput `pulumi:"rule"` +} + +func (BucketObjectLockConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfiguration)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationArgs) ToBucketObjectLockConfigurationOutput() BucketObjectLockConfigurationOutput { + return i.ToBucketObjectLockConfigurationOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationArgs) ToBucketObjectLockConfigurationOutputWithContext(ctx context.Context) BucketObjectLockConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationOutput) +} + +func (i BucketObjectLockConfigurationArgs) ToBucketObjectLockConfigurationPtrOutput() BucketObjectLockConfigurationPtrOutput { + return i.ToBucketObjectLockConfigurationPtrOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationArgs) ToBucketObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationOutput).ToBucketObjectLockConfigurationPtrOutputWithContext(ctx) +} + +// BucketObjectLockConfigurationPtrInput is an input type that accepts BucketObjectLockConfigurationArgs, BucketObjectLockConfigurationPtr and BucketObjectLockConfigurationPtrOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationPtrInput` via: +// +// BucketObjectLockConfigurationArgs{...} +// +// or: +// +// nil +type BucketObjectLockConfigurationPtrInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationPtrOutput() BucketObjectLockConfigurationPtrOutput + ToBucketObjectLockConfigurationPtrOutputWithContext(context.Context) BucketObjectLockConfigurationPtrOutput +} + +type bucketObjectLockConfigurationPtrType BucketObjectLockConfigurationArgs + +func BucketObjectLockConfigurationPtr(v *BucketObjectLockConfigurationArgs) BucketObjectLockConfigurationPtrInput { + return (*bucketObjectLockConfigurationPtrType)(v) +} + +func (*bucketObjectLockConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfiguration)(nil)).Elem() +} + +func (i *bucketObjectLockConfigurationPtrType) ToBucketObjectLockConfigurationPtrOutput() BucketObjectLockConfigurationPtrOutput { + return i.ToBucketObjectLockConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectLockConfigurationPtrType) ToBucketObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationPtrOutput) +} + +type BucketObjectLockConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfiguration)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationOutput) ToBucketObjectLockConfigurationOutput() BucketObjectLockConfigurationOutput { + return o +} + +func (o BucketObjectLockConfigurationOutput) ToBucketObjectLockConfigurationOutputWithContext(ctx context.Context) BucketObjectLockConfigurationOutput { + return o +} + +func (o BucketObjectLockConfigurationOutput) ToBucketObjectLockConfigurationPtrOutput() BucketObjectLockConfigurationPtrOutput { + return o.ToBucketObjectLockConfigurationPtrOutputWithContext(context.Background()) +} + +func (o BucketObjectLockConfigurationOutput) ToBucketObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectLockConfiguration) *BucketObjectLockConfiguration { + return &v + }).(BucketObjectLockConfigurationPtrOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid value is `Enabled`. +func (o BucketObjectLockConfigurationOutput) ObjectLockEnabled() pulumi.StringOutput { + return o.ApplyT(func(v BucketObjectLockConfiguration) string { return v.ObjectLockEnabled }).(pulumi.StringOutput) +} + +// The Object Lock rule in place for this bucket. +func (o BucketObjectLockConfigurationOutput) Rule() BucketObjectLockConfigurationRulePtrOutput { + return o.ApplyT(func(v BucketObjectLockConfiguration) *BucketObjectLockConfigurationRule { return v.Rule }).(BucketObjectLockConfigurationRulePtrOutput) +} + +type BucketObjectLockConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfiguration)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationPtrOutput) ToBucketObjectLockConfigurationPtrOutput() BucketObjectLockConfigurationPtrOutput { + return o +} + +func (o BucketObjectLockConfigurationPtrOutput) ToBucketObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationPtrOutput { + return o +} + +func (o BucketObjectLockConfigurationPtrOutput) Elem() BucketObjectLockConfigurationOutput { + return o.ApplyT(func(v *BucketObjectLockConfiguration) BucketObjectLockConfiguration { + if v != nil { + return *v + } + var ret BucketObjectLockConfiguration + return ret + }).(BucketObjectLockConfigurationOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid value is `Enabled`. +func (o BucketObjectLockConfigurationPtrOutput) ObjectLockEnabled() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfiguration) *string { + if v == nil { + return nil + } + return &v.ObjectLockEnabled + }).(pulumi.StringPtrOutput) +} + +// The Object Lock rule in place for this bucket. +func (o BucketObjectLockConfigurationPtrOutput) Rule() BucketObjectLockConfigurationRulePtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfiguration) *BucketObjectLockConfigurationRule { + if v == nil { + return nil + } + return v.Rule + }).(BucketObjectLockConfigurationRulePtrOutput) +} + +type BucketObjectLockConfigurationRule struct { + // The default retention period that you want to apply to new objects placed in this bucket. + DefaultRetention BucketObjectLockConfigurationRuleDefaultRetention `pulumi:"defaultRetention"` +} + +// BucketObjectLockConfigurationRuleInput is an input type that accepts BucketObjectLockConfigurationRuleArgs and BucketObjectLockConfigurationRuleOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationRuleInput` via: +// +// BucketObjectLockConfigurationRuleArgs{...} +type BucketObjectLockConfigurationRuleInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationRuleOutput() BucketObjectLockConfigurationRuleOutput + ToBucketObjectLockConfigurationRuleOutputWithContext(context.Context) BucketObjectLockConfigurationRuleOutput +} + +type BucketObjectLockConfigurationRuleArgs struct { + // The default retention period that you want to apply to new objects placed in this bucket. + DefaultRetention BucketObjectLockConfigurationRuleDefaultRetentionInput `pulumi:"defaultRetention"` +} + +func (BucketObjectLockConfigurationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationRule)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationRuleArgs) ToBucketObjectLockConfigurationRuleOutput() BucketObjectLockConfigurationRuleOutput { + return i.ToBucketObjectLockConfigurationRuleOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationRuleArgs) ToBucketObjectLockConfigurationRuleOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationRuleOutput) +} + +func (i BucketObjectLockConfigurationRuleArgs) ToBucketObjectLockConfigurationRulePtrOutput() BucketObjectLockConfigurationRulePtrOutput { + return i.ToBucketObjectLockConfigurationRulePtrOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationRuleArgs) ToBucketObjectLockConfigurationRulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationRuleOutput).ToBucketObjectLockConfigurationRulePtrOutputWithContext(ctx) +} + +// BucketObjectLockConfigurationRulePtrInput is an input type that accepts BucketObjectLockConfigurationRuleArgs, BucketObjectLockConfigurationRulePtr and BucketObjectLockConfigurationRulePtrOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationRulePtrInput` via: +// +// BucketObjectLockConfigurationRuleArgs{...} +// +// or: +// +// nil +type BucketObjectLockConfigurationRulePtrInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationRulePtrOutput() BucketObjectLockConfigurationRulePtrOutput + ToBucketObjectLockConfigurationRulePtrOutputWithContext(context.Context) BucketObjectLockConfigurationRulePtrOutput +} + +type bucketObjectLockConfigurationRulePtrType BucketObjectLockConfigurationRuleArgs + +func BucketObjectLockConfigurationRulePtr(v *BucketObjectLockConfigurationRuleArgs) BucketObjectLockConfigurationRulePtrInput { + return (*bucketObjectLockConfigurationRulePtrType)(v) +} + +func (*bucketObjectLockConfigurationRulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationRule)(nil)).Elem() +} + +func (i *bucketObjectLockConfigurationRulePtrType) ToBucketObjectLockConfigurationRulePtrOutput() BucketObjectLockConfigurationRulePtrOutput { + return i.ToBucketObjectLockConfigurationRulePtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectLockConfigurationRulePtrType) ToBucketObjectLockConfigurationRulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationRulePtrOutput) +} + +type BucketObjectLockConfigurationRuleOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationRule)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationRuleOutput) ToBucketObjectLockConfigurationRuleOutput() BucketObjectLockConfigurationRuleOutput { + return o +} + +func (o BucketObjectLockConfigurationRuleOutput) ToBucketObjectLockConfigurationRuleOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleOutput { + return o +} + +func (o BucketObjectLockConfigurationRuleOutput) ToBucketObjectLockConfigurationRulePtrOutput() BucketObjectLockConfigurationRulePtrOutput { + return o.ToBucketObjectLockConfigurationRulePtrOutputWithContext(context.Background()) +} + +func (o BucketObjectLockConfigurationRuleOutput) ToBucketObjectLockConfigurationRulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectLockConfigurationRule) *BucketObjectLockConfigurationRule { + return &v + }).(BucketObjectLockConfigurationRulePtrOutput) +} + +// The default retention period that you want to apply to new objects placed in this bucket. +func (o BucketObjectLockConfigurationRuleOutput) DefaultRetention() BucketObjectLockConfigurationRuleDefaultRetentionOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationRule) BucketObjectLockConfigurationRuleDefaultRetention { + return v.DefaultRetention + }).(BucketObjectLockConfigurationRuleDefaultRetentionOutput) +} + +type BucketObjectLockConfigurationRulePtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationRulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationRule)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationRulePtrOutput) ToBucketObjectLockConfigurationRulePtrOutput() BucketObjectLockConfigurationRulePtrOutput { + return o +} + +func (o BucketObjectLockConfigurationRulePtrOutput) ToBucketObjectLockConfigurationRulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRulePtrOutput { + return o +} + +func (o BucketObjectLockConfigurationRulePtrOutput) Elem() BucketObjectLockConfigurationRuleOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationRule) BucketObjectLockConfigurationRule { + if v != nil { + return *v + } + var ret BucketObjectLockConfigurationRule + return ret + }).(BucketObjectLockConfigurationRuleOutput) +} + +// The default retention period that you want to apply to new objects placed in this bucket. +func (o BucketObjectLockConfigurationRulePtrOutput) DefaultRetention() BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationRule) *BucketObjectLockConfigurationRuleDefaultRetention { + if v == nil { + return nil + } + return &v.DefaultRetention + }).(BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) +} + +type BucketObjectLockConfigurationRuleDefaultRetention struct { + // The number of days that you want to specify for the default retention period. + Days *int `pulumi:"days"` + // The default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. + Mode string `pulumi:"mode"` + // The number of years that you want to specify for the default retention period. + // + // Either `days` or `years` must be specified, but not both. + // + // > **NOTE on `objectLockConfiguration`:** You can only enable S3 Object Lock for new buckets. If you need to turn on S3 Object Lock for an existing bucket, please contact AWS Support. + // When you create a bucket with S3 Object Lock enabled, Amazon S3 automatically enables versioning for the bucket. + // Once you create a bucket with S3 Object Lock enabled, you can't disable Object Lock or suspend versioning for the bucket. + Years *int `pulumi:"years"` +} + +// BucketObjectLockConfigurationRuleDefaultRetentionInput is an input type that accepts BucketObjectLockConfigurationRuleDefaultRetentionArgs and BucketObjectLockConfigurationRuleDefaultRetentionOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationRuleDefaultRetentionInput` via: +// +// BucketObjectLockConfigurationRuleDefaultRetentionArgs{...} +type BucketObjectLockConfigurationRuleDefaultRetentionInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationRuleDefaultRetentionOutput() BucketObjectLockConfigurationRuleDefaultRetentionOutput + ToBucketObjectLockConfigurationRuleDefaultRetentionOutputWithContext(context.Context) BucketObjectLockConfigurationRuleDefaultRetentionOutput +} + +type BucketObjectLockConfigurationRuleDefaultRetentionArgs struct { + // The number of days that you want to specify for the default retention period. + Days pulumi.IntPtrInput `pulumi:"days"` + // The default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. + Mode pulumi.StringInput `pulumi:"mode"` + // The number of years that you want to specify for the default retention period. + // + // Either `days` or `years` must be specified, but not both. + // + // > **NOTE on `objectLockConfiguration`:** You can only enable S3 Object Lock for new buckets. If you need to turn on S3 Object Lock for an existing bucket, please contact AWS Support. + // When you create a bucket with S3 Object Lock enabled, Amazon S3 automatically enables versioning for the bucket. + // Once you create a bucket with S3 Object Lock enabled, you can't disable Object Lock or suspend versioning for the bucket. + Years pulumi.IntPtrInput `pulumi:"years"` +} + +func (BucketObjectLockConfigurationRuleDefaultRetentionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationRuleDefaultRetentionArgs) ToBucketObjectLockConfigurationRuleDefaultRetentionOutput() BucketObjectLockConfigurationRuleDefaultRetentionOutput { + return i.ToBucketObjectLockConfigurationRuleDefaultRetentionOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationRuleDefaultRetentionArgs) ToBucketObjectLockConfigurationRuleDefaultRetentionOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleDefaultRetentionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationRuleDefaultRetentionOutput) +} + +func (i BucketObjectLockConfigurationRuleDefaultRetentionArgs) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return i.ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationRuleDefaultRetentionArgs) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationRuleDefaultRetentionOutput).ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(ctx) +} + +// BucketObjectLockConfigurationRuleDefaultRetentionPtrInput is an input type that accepts BucketObjectLockConfigurationRuleDefaultRetentionArgs, BucketObjectLockConfigurationRuleDefaultRetentionPtr and BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationRuleDefaultRetentionPtrInput` via: +// +// BucketObjectLockConfigurationRuleDefaultRetentionArgs{...} +// +// or: +// +// nil +type BucketObjectLockConfigurationRuleDefaultRetentionPtrInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput + ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(context.Context) BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput +} + +type bucketObjectLockConfigurationRuleDefaultRetentionPtrType BucketObjectLockConfigurationRuleDefaultRetentionArgs + +func BucketObjectLockConfigurationRuleDefaultRetentionPtr(v *BucketObjectLockConfigurationRuleDefaultRetentionArgs) BucketObjectLockConfigurationRuleDefaultRetentionPtrInput { + return (*bucketObjectLockConfigurationRuleDefaultRetentionPtrType)(v) +} + +func (*bucketObjectLockConfigurationRuleDefaultRetentionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (i *bucketObjectLockConfigurationRuleDefaultRetentionPtrType) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return i.ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectLockConfigurationRuleDefaultRetentionPtrType) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) +} + +type BucketObjectLockConfigurationRuleDefaultRetentionOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationRuleDefaultRetentionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) ToBucketObjectLockConfigurationRuleDefaultRetentionOutput() BucketObjectLockConfigurationRuleDefaultRetentionOutput { + return o +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) ToBucketObjectLockConfigurationRuleDefaultRetentionOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleDefaultRetentionOutput { + return o +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return o.ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(context.Background()) +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectLockConfigurationRuleDefaultRetention) *BucketObjectLockConfigurationRuleDefaultRetention { + return &v + }).(BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) +} + +// The number of days that you want to specify for the default retention period. +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationRuleDefaultRetention) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// The default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationRuleDefaultRetention) string { return v.Mode }).(pulumi.StringOutput) +} + +// The number of years that you want to specify for the default retention period. +// +// Either `days` or `years` must be specified, but not both. +// +// > **NOTE on `objectLockConfiguration`:** You can only enable S3 Object Lock for new buckets. If you need to turn on S3 Object Lock for an existing bucket, please contact AWS Support. +// When you create a bucket with S3 Object Lock enabled, Amazon S3 automatically enables versioning for the bucket. +// Once you create a bucket with S3 Object Lock enabled, you can't disable Object Lock or suspend versioning for the bucket. +func (o BucketObjectLockConfigurationRuleDefaultRetentionOutput) Years() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationRuleDefaultRetention) *int { return v.Years }).(pulumi.IntPtrOutput) +} + +type BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return o +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) ToBucketObjectLockConfigurationRuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput { + return o +} + +func (o BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) Elem() BucketObjectLockConfigurationRuleDefaultRetentionOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationRuleDefaultRetention) BucketObjectLockConfigurationRuleDefaultRetention { + if v != nil { + return *v + } + var ret BucketObjectLockConfigurationRuleDefaultRetention + return ret + }).(BucketObjectLockConfigurationRuleDefaultRetentionOutput) +} + +// The number of days that you want to specify for the default retention period. +func (o BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationRuleDefaultRetention) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +// The default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. +func (o BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationRuleDefaultRetention) *string { + if v == nil { + return nil + } + return &v.Mode + }).(pulumi.StringPtrOutput) +} + +// The number of years that you want to specify for the default retention period. +// +// Either `days` or `years` must be specified, but not both. +// +// > **NOTE on `objectLockConfiguration`:** You can only enable S3 Object Lock for new buckets. If you need to turn on S3 Object Lock for an existing bucket, please contact AWS Support. +// When you create a bucket with S3 Object Lock enabled, Amazon S3 automatically enables versioning for the bucket. +// Once you create a bucket with S3 Object Lock enabled, you can't disable Object Lock or suspend versioning for the bucket. +func (o BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput) Years() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationRuleDefaultRetention) *int { + if v == nil { + return nil + } + return v.Years + }).(pulumi.IntPtrOutput) +} + +type BucketObjectLockConfigurationV2Rule struct { + // Configuration block for specifying the default Object Lock retention settings for new objects placed in the specified bucket. See below. + DefaultRetention BucketObjectLockConfigurationV2RuleDefaultRetention `pulumi:"defaultRetention"` +} + +// BucketObjectLockConfigurationV2RuleInput is an input type that accepts BucketObjectLockConfigurationV2RuleArgs and BucketObjectLockConfigurationV2RuleOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationV2RuleInput` via: +// +// BucketObjectLockConfigurationV2RuleArgs{...} +type BucketObjectLockConfigurationV2RuleInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2RuleOutput() BucketObjectLockConfigurationV2RuleOutput + ToBucketObjectLockConfigurationV2RuleOutputWithContext(context.Context) BucketObjectLockConfigurationV2RuleOutput +} + +type BucketObjectLockConfigurationV2RuleArgs struct { + // Configuration block for specifying the default Object Lock retention settings for new objects placed in the specified bucket. See below. + DefaultRetention BucketObjectLockConfigurationV2RuleDefaultRetentionInput `pulumi:"defaultRetention"` +} + +func (BucketObjectLockConfigurationV2RuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationV2Rule)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationV2RuleArgs) ToBucketObjectLockConfigurationV2RuleOutput() BucketObjectLockConfigurationV2RuleOutput { + return i.ToBucketObjectLockConfigurationV2RuleOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationV2RuleArgs) ToBucketObjectLockConfigurationV2RuleOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2RuleOutput) +} + +func (i BucketObjectLockConfigurationV2RuleArgs) ToBucketObjectLockConfigurationV2RulePtrOutput() BucketObjectLockConfigurationV2RulePtrOutput { + return i.ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationV2RuleArgs) ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2RuleOutput).ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(ctx) +} + +// BucketObjectLockConfigurationV2RulePtrInput is an input type that accepts BucketObjectLockConfigurationV2RuleArgs, BucketObjectLockConfigurationV2RulePtr and BucketObjectLockConfigurationV2RulePtrOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationV2RulePtrInput` via: +// +// BucketObjectLockConfigurationV2RuleArgs{...} +// +// or: +// +// nil +type BucketObjectLockConfigurationV2RulePtrInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2RulePtrOutput() BucketObjectLockConfigurationV2RulePtrOutput + ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(context.Context) BucketObjectLockConfigurationV2RulePtrOutput +} + +type bucketObjectLockConfigurationV2RulePtrType BucketObjectLockConfigurationV2RuleArgs + +func BucketObjectLockConfigurationV2RulePtr(v *BucketObjectLockConfigurationV2RuleArgs) BucketObjectLockConfigurationV2RulePtrInput { + return (*bucketObjectLockConfigurationV2RulePtrType)(v) +} + +func (*bucketObjectLockConfigurationV2RulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationV2Rule)(nil)).Elem() +} + +func (i *bucketObjectLockConfigurationV2RulePtrType) ToBucketObjectLockConfigurationV2RulePtrOutput() BucketObjectLockConfigurationV2RulePtrOutput { + return i.ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectLockConfigurationV2RulePtrType) ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2RulePtrOutput) +} + +type BucketObjectLockConfigurationV2RuleOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2RuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationV2Rule)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2RuleOutput) ToBucketObjectLockConfigurationV2RuleOutput() BucketObjectLockConfigurationV2RuleOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RuleOutput) ToBucketObjectLockConfigurationV2RuleOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RuleOutput) ToBucketObjectLockConfigurationV2RulePtrOutput() BucketObjectLockConfigurationV2RulePtrOutput { + return o.ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(context.Background()) +} + +func (o BucketObjectLockConfigurationV2RuleOutput) ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectLockConfigurationV2Rule) *BucketObjectLockConfigurationV2Rule { + return &v + }).(BucketObjectLockConfigurationV2RulePtrOutput) +} + +// Configuration block for specifying the default Object Lock retention settings for new objects placed in the specified bucket. See below. +func (o BucketObjectLockConfigurationV2RuleOutput) DefaultRetention() BucketObjectLockConfigurationV2RuleDefaultRetentionOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationV2Rule) BucketObjectLockConfigurationV2RuleDefaultRetention { + return v.DefaultRetention + }).(BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) +} + +type BucketObjectLockConfigurationV2RulePtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2RulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationV2Rule)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2RulePtrOutput) ToBucketObjectLockConfigurationV2RulePtrOutput() BucketObjectLockConfigurationV2RulePtrOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RulePtrOutput) ToBucketObjectLockConfigurationV2RulePtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RulePtrOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RulePtrOutput) Elem() BucketObjectLockConfigurationV2RuleOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2Rule) BucketObjectLockConfigurationV2Rule { + if v != nil { + return *v + } + var ret BucketObjectLockConfigurationV2Rule + return ret + }).(BucketObjectLockConfigurationV2RuleOutput) +} + +// Configuration block for specifying the default Object Lock retention settings for new objects placed in the specified bucket. See below. +func (o BucketObjectLockConfigurationV2RulePtrOutput) DefaultRetention() BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2Rule) *BucketObjectLockConfigurationV2RuleDefaultRetention { + if v == nil { + return nil + } + return &v.DefaultRetention + }).(BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) +} + +type BucketObjectLockConfigurationV2RuleDefaultRetention struct { + // Number of days that you want to specify for the default retention period. + Days *int `pulumi:"days"` + // Default Object Lock retention mode you want to apply to new objects placed in the specified bucket. Valid values: `COMPLIANCE`, `GOVERNANCE`. + Mode *string `pulumi:"mode"` + // Number of years that you want to specify for the default retention period. + Years *int `pulumi:"years"` +} + +// BucketObjectLockConfigurationV2RuleDefaultRetentionInput is an input type that accepts BucketObjectLockConfigurationV2RuleDefaultRetentionArgs and BucketObjectLockConfigurationV2RuleDefaultRetentionOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationV2RuleDefaultRetentionInput` via: +// +// BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{...} +type BucketObjectLockConfigurationV2RuleDefaultRetentionInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionOutput + ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutputWithContext(context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionOutput +} + +type BucketObjectLockConfigurationV2RuleDefaultRetentionArgs struct { + // Number of days that you want to specify for the default retention period. + Days pulumi.IntPtrInput `pulumi:"days"` + // Default Object Lock retention mode you want to apply to new objects placed in the specified bucket. Valid values: `COMPLIANCE`, `GOVERNANCE`. + Mode pulumi.StringPtrInput `pulumi:"mode"` + // Number of years that you want to specify for the default retention period. + Years pulumi.IntPtrInput `pulumi:"years"` +} + +func (BucketObjectLockConfigurationV2RuleDefaultRetentionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationV2RuleDefaultRetention)(nil)).Elem() +} + +func (i BucketObjectLockConfigurationV2RuleDefaultRetentionArgs) ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionOutput { + return i.ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationV2RuleDefaultRetentionArgs) ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) +} + +func (i BucketObjectLockConfigurationV2RuleDefaultRetentionArgs) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return i.ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(context.Background()) +} + +func (i BucketObjectLockConfigurationV2RuleDefaultRetentionArgs) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2RuleDefaultRetentionOutput).ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(ctx) +} + +// BucketObjectLockConfigurationV2RuleDefaultRetentionPtrInput is an input type that accepts BucketObjectLockConfigurationV2RuleDefaultRetentionArgs, BucketObjectLockConfigurationV2RuleDefaultRetentionPtr and BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput values. +// You can construct a concrete instance of `BucketObjectLockConfigurationV2RuleDefaultRetentionPtrInput` via: +// +// BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{...} +// +// or: +// +// nil +type BucketObjectLockConfigurationV2RuleDefaultRetentionPtrInput interface { + pulumi.Input + + ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput + ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput +} + +type bucketObjectLockConfigurationV2RuleDefaultRetentionPtrType BucketObjectLockConfigurationV2RuleDefaultRetentionArgs + +func BucketObjectLockConfigurationV2RuleDefaultRetentionPtr(v *BucketObjectLockConfigurationV2RuleDefaultRetentionArgs) BucketObjectLockConfigurationV2RuleDefaultRetentionPtrInput { + return (*bucketObjectLockConfigurationV2RuleDefaultRetentionPtrType)(v) +} + +func (*bucketObjectLockConfigurationV2RuleDefaultRetentionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationV2RuleDefaultRetention)(nil)).Elem() +} + +func (i *bucketObjectLockConfigurationV2RuleDefaultRetentionPtrType) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return i.ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectLockConfigurationV2RuleDefaultRetentionPtrType) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) +} + +type BucketObjectLockConfigurationV2RuleDefaultRetentionOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectLockConfigurationV2RuleDefaultRetention)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) ToBucketObjectLockConfigurationV2RuleDefaultRetentionOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return o.ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(context.Background()) +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectLockConfigurationV2RuleDefaultRetention) *BucketObjectLockConfigurationV2RuleDefaultRetention { + return &v + }).(BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) +} + +// Number of days that you want to specify for the default retention period. +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationV2RuleDefaultRetention) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Default Object Lock retention mode you want to apply to new objects placed in the specified bucket. Valid values: `COMPLIANCE`, `GOVERNANCE`. +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationV2RuleDefaultRetention) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// Number of years that you want to specify for the default retention period. +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) Years() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketObjectLockConfigurationV2RuleDefaultRetention) *int { return v.Years }).(pulumi.IntPtrOutput) +} + +type BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectLockConfigurationV2RuleDefaultRetention)(nil)).Elem() +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput() BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) ToBucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutputWithContext(ctx context.Context) BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput { + return o +} + +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) Elem() BucketObjectLockConfigurationV2RuleDefaultRetentionOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2RuleDefaultRetention) BucketObjectLockConfigurationV2RuleDefaultRetention { + if v != nil { + return *v + } + var ret BucketObjectLockConfigurationV2RuleDefaultRetention + return ret + }).(BucketObjectLockConfigurationV2RuleDefaultRetentionOutput) +} + +// Number of days that you want to specify for the default retention period. +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2RuleDefaultRetention) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +// Default Object Lock retention mode you want to apply to new objects placed in the specified bucket. Valid values: `COMPLIANCE`, `GOVERNANCE`. +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2RuleDefaultRetention) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// Number of years that you want to specify for the default retention period. +func (o BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput) Years() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketObjectLockConfigurationV2RuleDefaultRetention) *int { + if v == nil { + return nil + } + return v.Years + }).(pulumi.IntPtrOutput) +} + +type BucketObjectv2OverrideProvider struct { + // Override the provider `defaultTags` configuration block. + DefaultTags *BucketObjectv2OverrideProviderDefaultTags `pulumi:"defaultTags"` +} + +// BucketObjectv2OverrideProviderInput is an input type that accepts BucketObjectv2OverrideProviderArgs and BucketObjectv2OverrideProviderOutput values. +// You can construct a concrete instance of `BucketObjectv2OverrideProviderInput` via: +// +// BucketObjectv2OverrideProviderArgs{...} +type BucketObjectv2OverrideProviderInput interface { + pulumi.Input + + ToBucketObjectv2OverrideProviderOutput() BucketObjectv2OverrideProviderOutput + ToBucketObjectv2OverrideProviderOutputWithContext(context.Context) BucketObjectv2OverrideProviderOutput +} + +type BucketObjectv2OverrideProviderArgs struct { + // Override the provider `defaultTags` configuration block. + DefaultTags BucketObjectv2OverrideProviderDefaultTagsPtrInput `pulumi:"defaultTags"` +} + +func (BucketObjectv2OverrideProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectv2OverrideProvider)(nil)).Elem() +} + +func (i BucketObjectv2OverrideProviderArgs) ToBucketObjectv2OverrideProviderOutput() BucketObjectv2OverrideProviderOutput { + return i.ToBucketObjectv2OverrideProviderOutputWithContext(context.Background()) +} + +func (i BucketObjectv2OverrideProviderArgs) ToBucketObjectv2OverrideProviderOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2OverrideProviderOutput) +} + +func (i BucketObjectv2OverrideProviderArgs) ToBucketObjectv2OverrideProviderPtrOutput() BucketObjectv2OverrideProviderPtrOutput { + return i.ToBucketObjectv2OverrideProviderPtrOutputWithContext(context.Background()) +} + +func (i BucketObjectv2OverrideProviderArgs) ToBucketObjectv2OverrideProviderPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2OverrideProviderOutput).ToBucketObjectv2OverrideProviderPtrOutputWithContext(ctx) +} + +// BucketObjectv2OverrideProviderPtrInput is an input type that accepts BucketObjectv2OverrideProviderArgs, BucketObjectv2OverrideProviderPtr and BucketObjectv2OverrideProviderPtrOutput values. +// You can construct a concrete instance of `BucketObjectv2OverrideProviderPtrInput` via: +// +// BucketObjectv2OverrideProviderArgs{...} +// +// or: +// +// nil +type BucketObjectv2OverrideProviderPtrInput interface { + pulumi.Input + + ToBucketObjectv2OverrideProviderPtrOutput() BucketObjectv2OverrideProviderPtrOutput + ToBucketObjectv2OverrideProviderPtrOutputWithContext(context.Context) BucketObjectv2OverrideProviderPtrOutput +} + +type bucketObjectv2OverrideProviderPtrType BucketObjectv2OverrideProviderArgs + +func BucketObjectv2OverrideProviderPtr(v *BucketObjectv2OverrideProviderArgs) BucketObjectv2OverrideProviderPtrInput { + return (*bucketObjectv2OverrideProviderPtrType)(v) +} + +func (*bucketObjectv2OverrideProviderPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectv2OverrideProvider)(nil)).Elem() +} + +func (i *bucketObjectv2OverrideProviderPtrType) ToBucketObjectv2OverrideProviderPtrOutput() BucketObjectv2OverrideProviderPtrOutput { + return i.ToBucketObjectv2OverrideProviderPtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectv2OverrideProviderPtrType) ToBucketObjectv2OverrideProviderPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2OverrideProviderPtrOutput) +} + +type BucketObjectv2OverrideProviderOutput struct{ *pulumi.OutputState } + +func (BucketObjectv2OverrideProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectv2OverrideProvider)(nil)).Elem() +} + +func (o BucketObjectv2OverrideProviderOutput) ToBucketObjectv2OverrideProviderOutput() BucketObjectv2OverrideProviderOutput { + return o +} + +func (o BucketObjectv2OverrideProviderOutput) ToBucketObjectv2OverrideProviderOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderOutput { + return o +} + +func (o BucketObjectv2OverrideProviderOutput) ToBucketObjectv2OverrideProviderPtrOutput() BucketObjectv2OverrideProviderPtrOutput { + return o.ToBucketObjectv2OverrideProviderPtrOutputWithContext(context.Background()) +} + +func (o BucketObjectv2OverrideProviderOutput) ToBucketObjectv2OverrideProviderPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectv2OverrideProvider) *BucketObjectv2OverrideProvider { + return &v + }).(BucketObjectv2OverrideProviderPtrOutput) +} + +// Override the provider `defaultTags` configuration block. +func (o BucketObjectv2OverrideProviderOutput) DefaultTags() BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return o.ApplyT(func(v BucketObjectv2OverrideProvider) *BucketObjectv2OverrideProviderDefaultTags { + return v.DefaultTags + }).(BucketObjectv2OverrideProviderDefaultTagsPtrOutput) +} + +type BucketObjectv2OverrideProviderPtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectv2OverrideProviderPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectv2OverrideProvider)(nil)).Elem() +} + +func (o BucketObjectv2OverrideProviderPtrOutput) ToBucketObjectv2OverrideProviderPtrOutput() BucketObjectv2OverrideProviderPtrOutput { + return o +} + +func (o BucketObjectv2OverrideProviderPtrOutput) ToBucketObjectv2OverrideProviderPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderPtrOutput { + return o +} + +func (o BucketObjectv2OverrideProviderPtrOutput) Elem() BucketObjectv2OverrideProviderOutput { + return o.ApplyT(func(v *BucketObjectv2OverrideProvider) BucketObjectv2OverrideProvider { + if v != nil { + return *v + } + var ret BucketObjectv2OverrideProvider + return ret + }).(BucketObjectv2OverrideProviderOutput) +} + +// Override the provider `defaultTags` configuration block. +func (o BucketObjectv2OverrideProviderPtrOutput) DefaultTags() BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return o.ApplyT(func(v *BucketObjectv2OverrideProvider) *BucketObjectv2OverrideProviderDefaultTags { + if v == nil { + return nil + } + return v.DefaultTags + }).(BucketObjectv2OverrideProviderDefaultTagsPtrOutput) +} + +type BucketObjectv2OverrideProviderDefaultTags struct { + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// BucketObjectv2OverrideProviderDefaultTagsInput is an input type that accepts BucketObjectv2OverrideProviderDefaultTagsArgs and BucketObjectv2OverrideProviderDefaultTagsOutput values. +// You can construct a concrete instance of `BucketObjectv2OverrideProviderDefaultTagsInput` via: +// +// BucketObjectv2OverrideProviderDefaultTagsArgs{...} +type BucketObjectv2OverrideProviderDefaultTagsInput interface { + pulumi.Input + + ToBucketObjectv2OverrideProviderDefaultTagsOutput() BucketObjectv2OverrideProviderDefaultTagsOutput + ToBucketObjectv2OverrideProviderDefaultTagsOutputWithContext(context.Context) BucketObjectv2OverrideProviderDefaultTagsOutput +} + +type BucketObjectv2OverrideProviderDefaultTagsArgs struct { + // Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketObjectv2OverrideProviderDefaultTagsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectv2OverrideProviderDefaultTags)(nil)).Elem() +} + +func (i BucketObjectv2OverrideProviderDefaultTagsArgs) ToBucketObjectv2OverrideProviderDefaultTagsOutput() BucketObjectv2OverrideProviderDefaultTagsOutput { + return i.ToBucketObjectv2OverrideProviderDefaultTagsOutputWithContext(context.Background()) +} + +func (i BucketObjectv2OverrideProviderDefaultTagsArgs) ToBucketObjectv2OverrideProviderDefaultTagsOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderDefaultTagsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2OverrideProviderDefaultTagsOutput) +} + +func (i BucketObjectv2OverrideProviderDefaultTagsArgs) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutput() BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return i.ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(context.Background()) +} + +func (i BucketObjectv2OverrideProviderDefaultTagsArgs) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2OverrideProviderDefaultTagsOutput).ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(ctx) +} + +// BucketObjectv2OverrideProviderDefaultTagsPtrInput is an input type that accepts BucketObjectv2OverrideProviderDefaultTagsArgs, BucketObjectv2OverrideProviderDefaultTagsPtr and BucketObjectv2OverrideProviderDefaultTagsPtrOutput values. +// You can construct a concrete instance of `BucketObjectv2OverrideProviderDefaultTagsPtrInput` via: +// +// BucketObjectv2OverrideProviderDefaultTagsArgs{...} +// +// or: +// +// nil +type BucketObjectv2OverrideProviderDefaultTagsPtrInput interface { + pulumi.Input + + ToBucketObjectv2OverrideProviderDefaultTagsPtrOutput() BucketObjectv2OverrideProviderDefaultTagsPtrOutput + ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(context.Context) BucketObjectv2OverrideProviderDefaultTagsPtrOutput +} + +type bucketObjectv2OverrideProviderDefaultTagsPtrType BucketObjectv2OverrideProviderDefaultTagsArgs + +func BucketObjectv2OverrideProviderDefaultTagsPtr(v *BucketObjectv2OverrideProviderDefaultTagsArgs) BucketObjectv2OverrideProviderDefaultTagsPtrInput { + return (*bucketObjectv2OverrideProviderDefaultTagsPtrType)(v) +} + +func (*bucketObjectv2OverrideProviderDefaultTagsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectv2OverrideProviderDefaultTags)(nil)).Elem() +} + +func (i *bucketObjectv2OverrideProviderDefaultTagsPtrType) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutput() BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return i.ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(context.Background()) +} + +func (i *bucketObjectv2OverrideProviderDefaultTagsPtrType) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketObjectv2OverrideProviderDefaultTagsPtrOutput) +} + +type BucketObjectv2OverrideProviderDefaultTagsOutput struct{ *pulumi.OutputState } + +func (BucketObjectv2OverrideProviderDefaultTagsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketObjectv2OverrideProviderDefaultTags)(nil)).Elem() +} + +func (o BucketObjectv2OverrideProviderDefaultTagsOutput) ToBucketObjectv2OverrideProviderDefaultTagsOutput() BucketObjectv2OverrideProviderDefaultTagsOutput { + return o +} + +func (o BucketObjectv2OverrideProviderDefaultTagsOutput) ToBucketObjectv2OverrideProviderDefaultTagsOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderDefaultTagsOutput { + return o +} + +func (o BucketObjectv2OverrideProviderDefaultTagsOutput) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutput() BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return o.ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(context.Background()) +} + +func (o BucketObjectv2OverrideProviderDefaultTagsOutput) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketObjectv2OverrideProviderDefaultTags) *BucketObjectv2OverrideProviderDefaultTags { + return &v + }).(BucketObjectv2OverrideProviderDefaultTagsPtrOutput) +} + +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketObjectv2OverrideProviderDefaultTagsOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketObjectv2OverrideProviderDefaultTags) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketObjectv2OverrideProviderDefaultTagsPtrOutput struct{ *pulumi.OutputState } + +func (BucketObjectv2OverrideProviderDefaultTagsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketObjectv2OverrideProviderDefaultTags)(nil)).Elem() +} + +func (o BucketObjectv2OverrideProviderDefaultTagsPtrOutput) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutput() BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return o +} + +func (o BucketObjectv2OverrideProviderDefaultTagsPtrOutput) ToBucketObjectv2OverrideProviderDefaultTagsPtrOutputWithContext(ctx context.Context) BucketObjectv2OverrideProviderDefaultTagsPtrOutput { + return o +} + +func (o BucketObjectv2OverrideProviderDefaultTagsPtrOutput) Elem() BucketObjectv2OverrideProviderDefaultTagsOutput { + return o.ApplyT(func(v *BucketObjectv2OverrideProviderDefaultTags) BucketObjectv2OverrideProviderDefaultTags { + if v != nil { + return *v + } + var ret BucketObjectv2OverrideProviderDefaultTags + return ret + }).(BucketObjectv2OverrideProviderDefaultTagsOutput) +} + +// Map of tags to assign to the object. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketObjectv2OverrideProviderDefaultTagsPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketObjectv2OverrideProviderDefaultTags) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type BucketOwnershipControlsRule struct { + // Object ownership. Valid values: `BucketOwnerPreferred`, `ObjectWriter` or `BucketOwnerEnforced` + ObjectOwnership string `pulumi:"objectOwnership"` +} + +// BucketOwnershipControlsRuleInput is an input type that accepts BucketOwnershipControlsRuleArgs and BucketOwnershipControlsRuleOutput values. +// You can construct a concrete instance of `BucketOwnershipControlsRuleInput` via: +// +// BucketOwnershipControlsRuleArgs{...} +type BucketOwnershipControlsRuleInput interface { + pulumi.Input + + ToBucketOwnershipControlsRuleOutput() BucketOwnershipControlsRuleOutput + ToBucketOwnershipControlsRuleOutputWithContext(context.Context) BucketOwnershipControlsRuleOutput +} + +type BucketOwnershipControlsRuleArgs struct { + // Object ownership. Valid values: `BucketOwnerPreferred`, `ObjectWriter` or `BucketOwnerEnforced` + ObjectOwnership pulumi.StringInput `pulumi:"objectOwnership"` +} + +func (BucketOwnershipControlsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketOwnershipControlsRule)(nil)).Elem() +} + +func (i BucketOwnershipControlsRuleArgs) ToBucketOwnershipControlsRuleOutput() BucketOwnershipControlsRuleOutput { + return i.ToBucketOwnershipControlsRuleOutputWithContext(context.Background()) +} + +func (i BucketOwnershipControlsRuleArgs) ToBucketOwnershipControlsRuleOutputWithContext(ctx context.Context) BucketOwnershipControlsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOwnershipControlsRuleOutput) +} + +func (i BucketOwnershipControlsRuleArgs) ToBucketOwnershipControlsRulePtrOutput() BucketOwnershipControlsRulePtrOutput { + return i.ToBucketOwnershipControlsRulePtrOutputWithContext(context.Background()) +} + +func (i BucketOwnershipControlsRuleArgs) ToBucketOwnershipControlsRulePtrOutputWithContext(ctx context.Context) BucketOwnershipControlsRulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOwnershipControlsRuleOutput).ToBucketOwnershipControlsRulePtrOutputWithContext(ctx) +} + +// BucketOwnershipControlsRulePtrInput is an input type that accepts BucketOwnershipControlsRuleArgs, BucketOwnershipControlsRulePtr and BucketOwnershipControlsRulePtrOutput values. +// You can construct a concrete instance of `BucketOwnershipControlsRulePtrInput` via: +// +// BucketOwnershipControlsRuleArgs{...} +// +// or: +// +// nil +type BucketOwnershipControlsRulePtrInput interface { + pulumi.Input + + ToBucketOwnershipControlsRulePtrOutput() BucketOwnershipControlsRulePtrOutput + ToBucketOwnershipControlsRulePtrOutputWithContext(context.Context) BucketOwnershipControlsRulePtrOutput +} + +type bucketOwnershipControlsRulePtrType BucketOwnershipControlsRuleArgs + +func BucketOwnershipControlsRulePtr(v *BucketOwnershipControlsRuleArgs) BucketOwnershipControlsRulePtrInput { + return (*bucketOwnershipControlsRulePtrType)(v) +} + +func (*bucketOwnershipControlsRulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketOwnershipControlsRule)(nil)).Elem() +} + +func (i *bucketOwnershipControlsRulePtrType) ToBucketOwnershipControlsRulePtrOutput() BucketOwnershipControlsRulePtrOutput { + return i.ToBucketOwnershipControlsRulePtrOutputWithContext(context.Background()) +} + +func (i *bucketOwnershipControlsRulePtrType) ToBucketOwnershipControlsRulePtrOutputWithContext(ctx context.Context) BucketOwnershipControlsRulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOwnershipControlsRulePtrOutput) +} + +type BucketOwnershipControlsRuleOutput struct{ *pulumi.OutputState } + +func (BucketOwnershipControlsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketOwnershipControlsRule)(nil)).Elem() +} + +func (o BucketOwnershipControlsRuleOutput) ToBucketOwnershipControlsRuleOutput() BucketOwnershipControlsRuleOutput { + return o +} + +func (o BucketOwnershipControlsRuleOutput) ToBucketOwnershipControlsRuleOutputWithContext(ctx context.Context) BucketOwnershipControlsRuleOutput { + return o +} + +func (o BucketOwnershipControlsRuleOutput) ToBucketOwnershipControlsRulePtrOutput() BucketOwnershipControlsRulePtrOutput { + return o.ToBucketOwnershipControlsRulePtrOutputWithContext(context.Background()) +} + +func (o BucketOwnershipControlsRuleOutput) ToBucketOwnershipControlsRulePtrOutputWithContext(ctx context.Context) BucketOwnershipControlsRulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketOwnershipControlsRule) *BucketOwnershipControlsRule { + return &v + }).(BucketOwnershipControlsRulePtrOutput) +} + +// Object ownership. Valid values: `BucketOwnerPreferred`, `ObjectWriter` or `BucketOwnerEnforced` +func (o BucketOwnershipControlsRuleOutput) ObjectOwnership() pulumi.StringOutput { + return o.ApplyT(func(v BucketOwnershipControlsRule) string { return v.ObjectOwnership }).(pulumi.StringOutput) +} + +type BucketOwnershipControlsRulePtrOutput struct{ *pulumi.OutputState } + +func (BucketOwnershipControlsRulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketOwnershipControlsRule)(nil)).Elem() +} + +func (o BucketOwnershipControlsRulePtrOutput) ToBucketOwnershipControlsRulePtrOutput() BucketOwnershipControlsRulePtrOutput { + return o +} + +func (o BucketOwnershipControlsRulePtrOutput) ToBucketOwnershipControlsRulePtrOutputWithContext(ctx context.Context) BucketOwnershipControlsRulePtrOutput { + return o +} + +func (o BucketOwnershipControlsRulePtrOutput) Elem() BucketOwnershipControlsRuleOutput { + return o.ApplyT(func(v *BucketOwnershipControlsRule) BucketOwnershipControlsRule { + if v != nil { + return *v + } + var ret BucketOwnershipControlsRule + return ret + }).(BucketOwnershipControlsRuleOutput) +} + +// Object ownership. Valid values: `BucketOwnerPreferred`, `ObjectWriter` or `BucketOwnerEnforced` +func (o BucketOwnershipControlsRulePtrOutput) ObjectOwnership() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketOwnershipControlsRule) *string { + if v == nil { + return nil + } + return &v.ObjectOwnership + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRule struct { + // Whether delete markers are replicated. This argument is only valid with V2 replication configurations (i.e., when `filter` is used)documented below. + DeleteMarkerReplication *BucketReplicationConfigRuleDeleteMarkerReplication `pulumi:"deleteMarkerReplication"` + // Specifies the destination for the rule. See below. + Destination BucketReplicationConfigRuleDestination `pulumi:"destination"` + // Replicate existing objects in the source bucket according to the rule configurations. See below. + ExistingObjectReplication *BucketReplicationConfigRuleExistingObjectReplication `pulumi:"existingObjectReplication"` + // Filter that identifies subset of objects to which the replication rule applies. See below. If not specified, the `rule` will default to using `prefix`. + Filter *BucketReplicationConfigRuleFilter `pulumi:"filter"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id *string `pulumi:"id"` + // Object key name prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. Defaults to an empty string (`""`) if `filter` is not specified. + // + // Deprecated: Use filter instead + Prefix *string `pulumi:"prefix"` + // Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. + Priority *int `pulumi:"priority"` + // Specifies special object selection criteria. See below. + SourceSelectionCriteria *BucketReplicationConfigRuleSourceSelectionCriteria `pulumi:"sourceSelectionCriteria"` + // Status of the rule. Either `"Enabled"` or `"Disabled"`. The rule is ignored if status is not "Enabled". + Status string `pulumi:"status"` +} + +// BucketReplicationConfigRuleInput is an input type that accepts BucketReplicationConfigRuleArgs and BucketReplicationConfigRuleOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleInput` via: +// +// BucketReplicationConfigRuleArgs{...} +type BucketReplicationConfigRuleInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleOutput() BucketReplicationConfigRuleOutput + ToBucketReplicationConfigRuleOutputWithContext(context.Context) BucketReplicationConfigRuleOutput +} + +type BucketReplicationConfigRuleArgs struct { + // Whether delete markers are replicated. This argument is only valid with V2 replication configurations (i.e., when `filter` is used)documented below. + DeleteMarkerReplication BucketReplicationConfigRuleDeleteMarkerReplicationPtrInput `pulumi:"deleteMarkerReplication"` + // Specifies the destination for the rule. See below. + Destination BucketReplicationConfigRuleDestinationInput `pulumi:"destination"` + // Replicate existing objects in the source bucket according to the rule configurations. See below. + ExistingObjectReplication BucketReplicationConfigRuleExistingObjectReplicationPtrInput `pulumi:"existingObjectReplication"` + // Filter that identifies subset of objects to which the replication rule applies. See below. If not specified, the `rule` will default to using `prefix`. + Filter BucketReplicationConfigRuleFilterPtrInput `pulumi:"filter"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id pulumi.StringPtrInput `pulumi:"id"` + // Object key name prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. Defaults to an empty string (`""`) if `filter` is not specified. + // + // Deprecated: Use filter instead + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // Specifies special object selection criteria. See below. + SourceSelectionCriteria BucketReplicationConfigRuleSourceSelectionCriteriaPtrInput `pulumi:"sourceSelectionCriteria"` + // Status of the rule. Either `"Enabled"` or `"Disabled"`. The rule is ignored if status is not "Enabled". + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRule)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleArgs) ToBucketReplicationConfigRuleOutput() BucketReplicationConfigRuleOutput { + return i.ToBucketReplicationConfigRuleOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleArgs) ToBucketReplicationConfigRuleOutputWithContext(ctx context.Context) BucketReplicationConfigRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleOutput) +} + +// BucketReplicationConfigRuleArrayInput is an input type that accepts BucketReplicationConfigRuleArray and BucketReplicationConfigRuleArrayOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleArrayInput` via: +// +// BucketReplicationConfigRuleArray{ BucketReplicationConfigRuleArgs{...} } +type BucketReplicationConfigRuleArrayInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleArrayOutput() BucketReplicationConfigRuleArrayOutput + ToBucketReplicationConfigRuleArrayOutputWithContext(context.Context) BucketReplicationConfigRuleArrayOutput +} + +type BucketReplicationConfigRuleArray []BucketReplicationConfigRuleInput + +func (BucketReplicationConfigRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketReplicationConfigRule)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleArray) ToBucketReplicationConfigRuleArrayOutput() BucketReplicationConfigRuleArrayOutput { + return i.ToBucketReplicationConfigRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleArray) ToBucketReplicationConfigRuleArrayOutputWithContext(ctx context.Context) BucketReplicationConfigRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleArrayOutput) +} + +type BucketReplicationConfigRuleOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRule)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleOutput) ToBucketReplicationConfigRuleOutput() BucketReplicationConfigRuleOutput { + return o +} + +func (o BucketReplicationConfigRuleOutput) ToBucketReplicationConfigRuleOutputWithContext(ctx context.Context) BucketReplicationConfigRuleOutput { + return o +} + +// Whether delete markers are replicated. This argument is only valid with V2 replication configurations (i.e., when `filter` is used)documented below. +func (o BucketReplicationConfigRuleOutput) DeleteMarkerReplication() BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *BucketReplicationConfigRuleDeleteMarkerReplication { + return v.DeleteMarkerReplication + }).(BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) +} + +// Specifies the destination for the rule. See below. +func (o BucketReplicationConfigRuleOutput) Destination() BucketReplicationConfigRuleDestinationOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) BucketReplicationConfigRuleDestination { return v.Destination }).(BucketReplicationConfigRuleDestinationOutput) +} + +// Replicate existing objects in the source bucket according to the rule configurations. See below. +func (o BucketReplicationConfigRuleOutput) ExistingObjectReplication() BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *BucketReplicationConfigRuleExistingObjectReplication { + return v.ExistingObjectReplication + }).(BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) +} + +// Filter that identifies subset of objects to which the replication rule applies. See below. If not specified, the `rule` will default to using `prefix`. +func (o BucketReplicationConfigRuleOutput) Filter() BucketReplicationConfigRuleFilterPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *BucketReplicationConfigRuleFilter { return v.Filter }).(BucketReplicationConfigRuleFilterPtrOutput) +} + +// Unique identifier for the rule. Must be less than or equal to 255 characters in length. +func (o BucketReplicationConfigRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Object key name prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. Defaults to an empty string (`""`) if `filter` is not specified. +// +// Deprecated: Use filter instead +func (o BucketReplicationConfigRuleOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. +func (o BucketReplicationConfigRuleOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// Specifies special object selection criteria. See below. +func (o BucketReplicationConfigRuleOutput) SourceSelectionCriteria() BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) *BucketReplicationConfigRuleSourceSelectionCriteria { + return v.SourceSelectionCriteria + }).(BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) +} + +// Status of the rule. Either `"Enabled"` or `"Disabled"`. The rule is ignored if status is not "Enabled". +func (o BucketReplicationConfigRuleOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRule) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketReplicationConfigRule)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleArrayOutput) ToBucketReplicationConfigRuleArrayOutput() BucketReplicationConfigRuleArrayOutput { + return o +} + +func (o BucketReplicationConfigRuleArrayOutput) ToBucketReplicationConfigRuleArrayOutputWithContext(ctx context.Context) BucketReplicationConfigRuleArrayOutput { + return o +} + +func (o BucketReplicationConfigRuleArrayOutput) Index(i pulumi.IntInput) BucketReplicationConfigRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketReplicationConfigRule { + return vs[0].([]BucketReplicationConfigRule)[vs[1].(int)] + }).(BucketReplicationConfigRuleOutput) +} + +type BucketReplicationConfigRuleDeleteMarkerReplication struct { + // Whether delete markers should be replicated. Either `"Enabled"` or `"Disabled"`. + Status string `pulumi:"status"` +} + +// BucketReplicationConfigRuleDeleteMarkerReplicationInput is an input type that accepts BucketReplicationConfigRuleDeleteMarkerReplicationArgs and BucketReplicationConfigRuleDeleteMarkerReplicationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDeleteMarkerReplicationInput` via: +// +// BucketReplicationConfigRuleDeleteMarkerReplicationArgs{...} +type BucketReplicationConfigRuleDeleteMarkerReplicationInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDeleteMarkerReplicationOutput() BucketReplicationConfigRuleDeleteMarkerReplicationOutput + ToBucketReplicationConfigRuleDeleteMarkerReplicationOutputWithContext(context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationOutput +} + +type BucketReplicationConfigRuleDeleteMarkerReplicationArgs struct { + // Whether delete markers should be replicated. Either `"Enabled"` or `"Disabled"`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigRuleDeleteMarkerReplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDeleteMarkerReplication)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDeleteMarkerReplicationArgs) ToBucketReplicationConfigRuleDeleteMarkerReplicationOutput() BucketReplicationConfigRuleDeleteMarkerReplicationOutput { + return i.ToBucketReplicationConfigRuleDeleteMarkerReplicationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDeleteMarkerReplicationArgs) ToBucketReplicationConfigRuleDeleteMarkerReplicationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDeleteMarkerReplicationOutput) +} + +func (i BucketReplicationConfigRuleDeleteMarkerReplicationArgs) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput() BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return i.ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDeleteMarkerReplicationArgs) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDeleteMarkerReplicationOutput).ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDeleteMarkerReplicationPtrInput is an input type that accepts BucketReplicationConfigRuleDeleteMarkerReplicationArgs, BucketReplicationConfigRuleDeleteMarkerReplicationPtr and BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDeleteMarkerReplicationPtrInput` via: +// +// BucketReplicationConfigRuleDeleteMarkerReplicationArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDeleteMarkerReplicationPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput() BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput + ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput +} + +type bucketReplicationConfigRuleDeleteMarkerReplicationPtrType BucketReplicationConfigRuleDeleteMarkerReplicationArgs + +func BucketReplicationConfigRuleDeleteMarkerReplicationPtr(v *BucketReplicationConfigRuleDeleteMarkerReplicationArgs) BucketReplicationConfigRuleDeleteMarkerReplicationPtrInput { + return (*bucketReplicationConfigRuleDeleteMarkerReplicationPtrType)(v) +} + +func (*bucketReplicationConfigRuleDeleteMarkerReplicationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDeleteMarkerReplication)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDeleteMarkerReplicationPtrType) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput() BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return i.ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDeleteMarkerReplicationPtrType) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) +} + +type BucketReplicationConfigRuleDeleteMarkerReplicationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDeleteMarkerReplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDeleteMarkerReplication)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationOutput) ToBucketReplicationConfigRuleDeleteMarkerReplicationOutput() BucketReplicationConfigRuleDeleteMarkerReplicationOutput { + return o +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationOutput) ToBucketReplicationConfigRuleDeleteMarkerReplicationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationOutput { + return o +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationOutput) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput() BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return o.ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationOutput) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDeleteMarkerReplication) *BucketReplicationConfigRuleDeleteMarkerReplication { + return &v + }).(BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) +} + +// Whether delete markers should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleDeleteMarkerReplicationOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDeleteMarkerReplication) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDeleteMarkerReplication)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput() BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) ToBucketReplicationConfigRuleDeleteMarkerReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) Elem() BucketReplicationConfigRuleDeleteMarkerReplicationOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDeleteMarkerReplication) BucketReplicationConfigRuleDeleteMarkerReplication { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDeleteMarkerReplication + return ret + }).(BucketReplicationConfigRuleDeleteMarkerReplicationOutput) +} + +// Whether delete markers should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDeleteMarkerReplication) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleDestination struct { + // Configuration block that specifies the overrides to use for object owners on replication. See below. Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object. Must be used in conjunction with `account` owner override configuration. + AccessControlTranslation *BucketReplicationConfigRuleDestinationAccessControlTranslation `pulumi:"accessControlTranslation"` + // Account ID to specify the replica ownership. Must be used in conjunction with `accessControlTranslation` override configuration. + Account *string `pulumi:"account"` + // ARN of the bucket where you want Amazon S3 to store the results. + Bucket string `pulumi:"bucket"` + // Configuration block that provides information about encryption. See below. If `sourceSelectionCriteria` is specified, you must specify this element. + EncryptionConfiguration *BucketReplicationConfigRuleDestinationEncryptionConfiguration `pulumi:"encryptionConfiguration"` + // Configuration block that specifies replication metrics-related settings enabling replication metrics and events. See below. + Metrics *BucketReplicationConfigRuleDestinationMetrics `pulumi:"metrics"` + // Configuration block that specifies S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. See below. Replication Time Control must be used in conjunction with `metrics`. + ReplicationTime *BucketReplicationConfigRuleDestinationReplicationTime `pulumi:"replicationTime"` + // The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. + StorageClass *string `pulumi:"storageClass"` +} + +// BucketReplicationConfigRuleDestinationInput is an input type that accepts BucketReplicationConfigRuleDestinationArgs and BucketReplicationConfigRuleDestinationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationInput` via: +// +// BucketReplicationConfigRuleDestinationArgs{...} +type BucketReplicationConfigRuleDestinationInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationOutput() BucketReplicationConfigRuleDestinationOutput + ToBucketReplicationConfigRuleDestinationOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationOutput +} + +type BucketReplicationConfigRuleDestinationArgs struct { + // Configuration block that specifies the overrides to use for object owners on replication. See below. Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object. Must be used in conjunction with `account` owner override configuration. + AccessControlTranslation BucketReplicationConfigRuleDestinationAccessControlTranslationPtrInput `pulumi:"accessControlTranslation"` + // Account ID to specify the replica ownership. Must be used in conjunction with `accessControlTranslation` override configuration. + Account pulumi.StringPtrInput `pulumi:"account"` + // ARN of the bucket where you want Amazon S3 to store the results. + Bucket pulumi.StringInput `pulumi:"bucket"` + // Configuration block that provides information about encryption. See below. If `sourceSelectionCriteria` is specified, you must specify this element. + EncryptionConfiguration BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrInput `pulumi:"encryptionConfiguration"` + // Configuration block that specifies replication metrics-related settings enabling replication metrics and events. See below. + Metrics BucketReplicationConfigRuleDestinationMetricsPtrInput `pulumi:"metrics"` + // Configuration block that specifies S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. See below. Replication Time Control must be used in conjunction with `metrics`. + ReplicationTime BucketReplicationConfigRuleDestinationReplicationTimePtrInput `pulumi:"replicationTime"` + // The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. + StorageClass pulumi.StringPtrInput `pulumi:"storageClass"` +} + +func (BucketReplicationConfigRuleDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestination)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationArgs) ToBucketReplicationConfigRuleDestinationOutput() BucketReplicationConfigRuleDestinationOutput { + return i.ToBucketReplicationConfigRuleDestinationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationArgs) ToBucketReplicationConfigRuleDestinationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationOutput) +} + +type BucketReplicationConfigRuleDestinationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestination)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationOutput) ToBucketReplicationConfigRuleDestinationOutput() BucketReplicationConfigRuleDestinationOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationOutput) ToBucketReplicationConfigRuleDestinationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationOutput { + return o +} + +// Configuration block that specifies the overrides to use for object owners on replication. See below. Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object. Must be used in conjunction with `account` owner override configuration. +func (o BucketReplicationConfigRuleDestinationOutput) AccessControlTranslation() BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) *BucketReplicationConfigRuleDestinationAccessControlTranslation { + return v.AccessControlTranslation + }).(BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) +} + +// Account ID to specify the replica ownership. Must be used in conjunction with `accessControlTranslation` override configuration. +func (o BucketReplicationConfigRuleDestinationOutput) Account() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) *string { return v.Account }).(pulumi.StringPtrOutput) +} + +// ARN of the bucket where you want Amazon S3 to store the results. +func (o BucketReplicationConfigRuleDestinationOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) string { return v.Bucket }).(pulumi.StringOutput) +} + +// Configuration block that provides information about encryption. See below. If `sourceSelectionCriteria` is specified, you must specify this element. +func (o BucketReplicationConfigRuleDestinationOutput) EncryptionConfiguration() BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) *BucketReplicationConfigRuleDestinationEncryptionConfiguration { + return v.EncryptionConfiguration + }).(BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) +} + +// Configuration block that specifies replication metrics-related settings enabling replication metrics and events. See below. +func (o BucketReplicationConfigRuleDestinationOutput) Metrics() BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) *BucketReplicationConfigRuleDestinationMetrics { + return v.Metrics + }).(BucketReplicationConfigRuleDestinationMetricsPtrOutput) +} + +// Configuration block that specifies S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. See below. Replication Time Control must be used in conjunction with `metrics`. +func (o BucketReplicationConfigRuleDestinationOutput) ReplicationTime() BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) *BucketReplicationConfigRuleDestinationReplicationTime { + return v.ReplicationTime + }).(BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) +} + +// The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. +func (o BucketReplicationConfigRuleDestinationOutput) StorageClass() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestination) *string { return v.StorageClass }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleDestinationAccessControlTranslation struct { + // Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the Amazon S3 API Reference. Valid values: `Destination`. + Owner string `pulumi:"owner"` +} + +// BucketReplicationConfigRuleDestinationAccessControlTranslationInput is an input type that accepts BucketReplicationConfigRuleDestinationAccessControlTranslationArgs and BucketReplicationConfigRuleDestinationAccessControlTranslationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationAccessControlTranslationInput` via: +// +// BucketReplicationConfigRuleDestinationAccessControlTranslationArgs{...} +type BucketReplicationConfigRuleDestinationAccessControlTranslationInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationOutput + ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationOutput +} + +type BucketReplicationConfigRuleDestinationAccessControlTranslationArgs struct { + // Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the Amazon S3 API Reference. Valid values: `Destination`. + Owner pulumi.StringInput `pulumi:"owner"` +} + +func (BucketReplicationConfigRuleDestinationAccessControlTranslationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationOutput { + return i.ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) +} + +func (i BucketReplicationConfigRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationAccessControlTranslationOutput).ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDestinationAccessControlTranslationPtrInput is an input type that accepts BucketReplicationConfigRuleDestinationAccessControlTranslationArgs, BucketReplicationConfigRuleDestinationAccessControlTranslationPtr and BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationAccessControlTranslationPtrInput` via: +// +// BucketReplicationConfigRuleDestinationAccessControlTranslationArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDestinationAccessControlTranslationPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput + ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput +} + +type bucketReplicationConfigRuleDestinationAccessControlTranslationPtrType BucketReplicationConfigRuleDestinationAccessControlTranslationArgs + +func BucketReplicationConfigRuleDestinationAccessControlTranslationPtr(v *BucketReplicationConfigRuleDestinationAccessControlTranslationArgs) BucketReplicationConfigRuleDestinationAccessControlTranslationPtrInput { + return (*bucketReplicationConfigRuleDestinationAccessControlTranslationPtrType)(v) +} + +func (*bucketReplicationConfigRuleDestinationAccessControlTranslationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDestinationAccessControlTranslationPtrType) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDestinationAccessControlTranslationPtrType) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) +} + +type BucketReplicationConfigRuleDestinationAccessControlTranslationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigRuleDestinationAccessControlTranslationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return o.ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDestinationAccessControlTranslation) *BucketReplicationConfigRuleDestinationAccessControlTranslation { + return &v + }).(BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) +} + +// Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the Amazon S3 API Reference. Valid values: `Destination`. +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationAccessControlTranslation) string { return v.Owner }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) ToBucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) Elem() BucketReplicationConfigRuleDestinationAccessControlTranslationOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationAccessControlTranslation) BucketReplicationConfigRuleDestinationAccessControlTranslation { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDestinationAccessControlTranslation + return ret + }).(BucketReplicationConfigRuleDestinationAccessControlTranslationOutput) +} + +// Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the Amazon S3 API Reference. Valid values: `Destination`. +func (o BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput) Owner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationAccessControlTranslation) *string { + if v == nil { + return nil + } + return &v.Owner + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleDestinationEncryptionConfiguration struct { + // ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. + ReplicaKmsKeyId string `pulumi:"replicaKmsKeyId"` +} + +// BucketReplicationConfigRuleDestinationEncryptionConfigurationInput is an input type that accepts BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs and BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationEncryptionConfigurationInput` via: +// +// BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs{...} +type BucketReplicationConfigRuleDestinationEncryptionConfigurationInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput + ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput +} + +type BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs struct { + // ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. + ReplicaKmsKeyId pulumi.StringInput `pulumi:"replicaKmsKeyId"` +} + +func (BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationEncryptionConfiguration)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput { + return i.ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) +} + +func (i BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput).ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrInput is an input type that accepts BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs, BucketReplicationConfigRuleDestinationEncryptionConfigurationPtr and BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrInput` via: +// +// BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput + ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput +} + +type bucketReplicationConfigRuleDestinationEncryptionConfigurationPtrType BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs + +func BucketReplicationConfigRuleDestinationEncryptionConfigurationPtr(v *BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs) BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrInput { + return (*bucketReplicationConfigRuleDestinationEncryptionConfigurationPtrType)(v) +} + +func (*bucketReplicationConfigRuleDestinationEncryptionConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationEncryptionConfiguration)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDestinationEncryptionConfigurationPtrType) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDestinationEncryptionConfigurationPtrType) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) +} + +type BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationEncryptionConfiguration)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return o.ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDestinationEncryptionConfiguration) *BucketReplicationConfigRuleDestinationEncryptionConfiguration { + return &v + }).(BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) +} + +// ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) ReplicaKmsKeyId() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationEncryptionConfiguration) string { return v.ReplicaKmsKeyId }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationEncryptionConfiguration)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput() BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) ToBucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) Elem() BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationEncryptionConfiguration) BucketReplicationConfigRuleDestinationEncryptionConfiguration { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDestinationEncryptionConfiguration + return ret + }).(BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput) +} + +// ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. +func (o BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput) ReplicaKmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationEncryptionConfiguration) *string { + if v == nil { + return nil + } + return &v.ReplicaKmsKeyId + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleDestinationMetrics struct { + // Configuration block that specifies the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event. See below. + EventThreshold *BucketReplicationConfigRuleDestinationMetricsEventThreshold `pulumi:"eventThreshold"` + // Status of the Destination Metrics. Either `"Enabled"` or `"Disabled"`. + Status string `pulumi:"status"` +} + +// BucketReplicationConfigRuleDestinationMetricsInput is an input type that accepts BucketReplicationConfigRuleDestinationMetricsArgs and BucketReplicationConfigRuleDestinationMetricsOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationMetricsInput` via: +// +// BucketReplicationConfigRuleDestinationMetricsArgs{...} +type BucketReplicationConfigRuleDestinationMetricsInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationMetricsOutput() BucketReplicationConfigRuleDestinationMetricsOutput + ToBucketReplicationConfigRuleDestinationMetricsOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationMetricsOutput +} + +type BucketReplicationConfigRuleDestinationMetricsArgs struct { + // Configuration block that specifies the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event. See below. + EventThreshold BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrInput `pulumi:"eventThreshold"` + // Status of the Destination Metrics. Either `"Enabled"` or `"Disabled"`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigRuleDestinationMetricsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetrics)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationMetricsArgs) ToBucketReplicationConfigRuleDestinationMetricsOutput() BucketReplicationConfigRuleDestinationMetricsOutput { + return i.ToBucketReplicationConfigRuleDestinationMetricsOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationMetricsArgs) ToBucketReplicationConfigRuleDestinationMetricsOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationMetricsOutput) +} + +func (i BucketReplicationConfigRuleDestinationMetricsArgs) ToBucketReplicationConfigRuleDestinationMetricsPtrOutput() BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationMetricsArgs) ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationMetricsOutput).ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDestinationMetricsPtrInput is an input type that accepts BucketReplicationConfigRuleDestinationMetricsArgs, BucketReplicationConfigRuleDestinationMetricsPtr and BucketReplicationConfigRuleDestinationMetricsPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationMetricsPtrInput` via: +// +// BucketReplicationConfigRuleDestinationMetricsArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDestinationMetricsPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationMetricsPtrOutput() BucketReplicationConfigRuleDestinationMetricsPtrOutput + ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationMetricsPtrOutput +} + +type bucketReplicationConfigRuleDestinationMetricsPtrType BucketReplicationConfigRuleDestinationMetricsArgs + +func BucketReplicationConfigRuleDestinationMetricsPtr(v *BucketReplicationConfigRuleDestinationMetricsArgs) BucketReplicationConfigRuleDestinationMetricsPtrInput { + return (*bucketReplicationConfigRuleDestinationMetricsPtrType)(v) +} + +func (*bucketReplicationConfigRuleDestinationMetricsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationMetrics)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDestinationMetricsPtrType) ToBucketReplicationConfigRuleDestinationMetricsPtrOutput() BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDestinationMetricsPtrType) ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationMetricsPtrOutput) +} + +type BucketReplicationConfigRuleDestinationMetricsOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationMetricsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetrics)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationMetricsOutput) ToBucketReplicationConfigRuleDestinationMetricsOutput() BucketReplicationConfigRuleDestinationMetricsOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsOutput) ToBucketReplicationConfigRuleDestinationMetricsOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsOutput) ToBucketReplicationConfigRuleDestinationMetricsPtrOutput() BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return o.ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDestinationMetricsOutput) ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDestinationMetrics) *BucketReplicationConfigRuleDestinationMetrics { + return &v + }).(BucketReplicationConfigRuleDestinationMetricsPtrOutput) +} + +// Configuration block that specifies the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event. See below. +func (o BucketReplicationConfigRuleDestinationMetricsOutput) EventThreshold() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationMetrics) *BucketReplicationConfigRuleDestinationMetricsEventThreshold { + return v.EventThreshold + }).(BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) +} + +// Status of the Destination Metrics. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleDestinationMetricsOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationMetrics) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleDestinationMetricsPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationMetricsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationMetrics)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationMetricsPtrOutput) ToBucketReplicationConfigRuleDestinationMetricsPtrOutput() BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsPtrOutput) ToBucketReplicationConfigRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsPtrOutput) Elem() BucketReplicationConfigRuleDestinationMetricsOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationMetrics) BucketReplicationConfigRuleDestinationMetrics { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDestinationMetrics + return ret + }).(BucketReplicationConfigRuleDestinationMetricsOutput) +} + +// Configuration block that specifies the time threshold for emitting the `s3:Replication:OperationMissedThreshold` event. See below. +func (o BucketReplicationConfigRuleDestinationMetricsPtrOutput) EventThreshold() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationMetrics) *BucketReplicationConfigRuleDestinationMetricsEventThreshold { + if v == nil { + return nil + } + return v.EventThreshold + }).(BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) +} + +// Status of the Destination Metrics. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleDestinationMetricsPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationMetrics) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleDestinationMetricsEventThreshold struct { + // Time in minutes. Valid values: `15`. + Minutes int `pulumi:"minutes"` +} + +// BucketReplicationConfigRuleDestinationMetricsEventThresholdInput is an input type that accepts BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs and BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationMetricsEventThresholdInput` via: +// +// BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs{...} +type BucketReplicationConfigRuleDestinationMetricsEventThresholdInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput + ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput +} + +type BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs struct { + // Time in minutes. Valid values: `15`. + Minutes pulumi.IntInput `pulumi:"minutes"` +} + +func (BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetricsEventThreshold)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput { + return i.ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) +} + +func (i BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput).ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrInput is an input type that accepts BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs, BucketReplicationConfigRuleDestinationMetricsEventThresholdPtr and BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrInput` via: +// +// BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput + ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput +} + +type bucketReplicationConfigRuleDestinationMetricsEventThresholdPtrType BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs + +func BucketReplicationConfigRuleDestinationMetricsEventThresholdPtr(v *BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs) BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrInput { + return (*bucketReplicationConfigRuleDestinationMetricsEventThresholdPtrType)(v) +} + +func (*bucketReplicationConfigRuleDestinationMetricsEventThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationMetricsEventThreshold)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDestinationMetricsEventThresholdPtrType) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return i.ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDestinationMetricsEventThresholdPtrType) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) +} + +type BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetricsEventThreshold)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return o.ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDestinationMetricsEventThreshold) *BucketReplicationConfigRuleDestinationMetricsEventThreshold { + return &v + }).(BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) +} + +// Time in minutes. Valid values: `15`. +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) Minutes() pulumi.IntOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationMetricsEventThreshold) int { return v.Minutes }).(pulumi.IntOutput) +} + +type BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationMetricsEventThreshold)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput() BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) ToBucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) Elem() BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationMetricsEventThreshold) BucketReplicationConfigRuleDestinationMetricsEventThreshold { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDestinationMetricsEventThreshold + return ret + }).(BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput) +} + +// Time in minutes. Valid values: `15`. +func (o BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationMetricsEventThreshold) *int { + if v == nil { + return nil + } + return &v.Minutes + }).(pulumi.IntPtrOutput) +} + +type BucketReplicationConfigRuleDestinationReplicationTime struct { + // Status of the Replication Time Control. Either `"Enabled"` or `"Disabled"`. + Status string `pulumi:"status"` + // Configuration block specifying the time by which replication should be complete for all objects and operations on objects. See below. + Time BucketReplicationConfigRuleDestinationReplicationTimeTime `pulumi:"time"` +} + +// BucketReplicationConfigRuleDestinationReplicationTimeInput is an input type that accepts BucketReplicationConfigRuleDestinationReplicationTimeArgs and BucketReplicationConfigRuleDestinationReplicationTimeOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationReplicationTimeInput` via: +// +// BucketReplicationConfigRuleDestinationReplicationTimeArgs{...} +type BucketReplicationConfigRuleDestinationReplicationTimeInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationReplicationTimeOutput() BucketReplicationConfigRuleDestinationReplicationTimeOutput + ToBucketReplicationConfigRuleDestinationReplicationTimeOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationReplicationTimeOutput +} + +type BucketReplicationConfigRuleDestinationReplicationTimeArgs struct { + // Status of the Replication Time Control. Either `"Enabled"` or `"Disabled"`. + Status pulumi.StringInput `pulumi:"status"` + // Configuration block specifying the time by which replication should be complete for all objects and operations on objects. See below. + Time BucketReplicationConfigRuleDestinationReplicationTimeTimeInput `pulumi:"time"` +} + +func (BucketReplicationConfigRuleDestinationReplicationTimeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTime)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimeOutput() BucketReplicationConfigRuleDestinationReplicationTimeOutput { + return i.ToBucketReplicationConfigRuleDestinationReplicationTimeOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimeOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationReplicationTimeOutput) +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return i.ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationReplicationTimeOutput).ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDestinationReplicationTimePtrInput is an input type that accepts BucketReplicationConfigRuleDestinationReplicationTimeArgs, BucketReplicationConfigRuleDestinationReplicationTimePtr and BucketReplicationConfigRuleDestinationReplicationTimePtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationReplicationTimePtrInput` via: +// +// BucketReplicationConfigRuleDestinationReplicationTimeArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDestinationReplicationTimePtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimePtrOutput + ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationReplicationTimePtrOutput +} + +type bucketReplicationConfigRuleDestinationReplicationTimePtrType BucketReplicationConfigRuleDestinationReplicationTimeArgs + +func BucketReplicationConfigRuleDestinationReplicationTimePtr(v *BucketReplicationConfigRuleDestinationReplicationTimeArgs) BucketReplicationConfigRuleDestinationReplicationTimePtrInput { + return (*bucketReplicationConfigRuleDestinationReplicationTimePtrType)(v) +} + +func (*bucketReplicationConfigRuleDestinationReplicationTimePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationReplicationTime)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDestinationReplicationTimePtrType) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return i.ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDestinationReplicationTimePtrType) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) +} + +type BucketReplicationConfigRuleDestinationReplicationTimeOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationReplicationTimeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTime)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeOutput() BucketReplicationConfigRuleDestinationReplicationTimeOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return o.ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDestinationReplicationTime) *BucketReplicationConfigRuleDestinationReplicationTime { + return &v + }).(BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) +} + +// Status of the Replication Time Control. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleDestinationReplicationTimeOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationReplicationTime) string { return v.Status }).(pulumi.StringOutput) +} + +// Configuration block specifying the time by which replication should be complete for all objects and operations on objects. See below. +func (o BucketReplicationConfigRuleDestinationReplicationTimeOutput) Time() BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationReplicationTime) BucketReplicationConfigRuleDestinationReplicationTimeTime { + return v.Time + }).(BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) +} + +type BucketReplicationConfigRuleDestinationReplicationTimePtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationReplicationTime)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) ToBucketReplicationConfigRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimePtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) Elem() BucketReplicationConfigRuleDestinationReplicationTimeOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationReplicationTime) BucketReplicationConfigRuleDestinationReplicationTime { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDestinationReplicationTime + return ret + }).(BucketReplicationConfigRuleDestinationReplicationTimeOutput) +} + +// Status of the Replication Time Control. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationReplicationTime) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +// Configuration block specifying the time by which replication should be complete for all objects and operations on objects. See below. +func (o BucketReplicationConfigRuleDestinationReplicationTimePtrOutput) Time() BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationReplicationTime) *BucketReplicationConfigRuleDestinationReplicationTimeTime { + if v == nil { + return nil + } + return &v.Time + }).(BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) +} + +type BucketReplicationConfigRuleDestinationReplicationTimeTime struct { + // Time in minutes. Valid values: `15`. + Minutes int `pulumi:"minutes"` +} + +// BucketReplicationConfigRuleDestinationReplicationTimeTimeInput is an input type that accepts BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs and BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationReplicationTimeTimeInput` via: +// +// BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs{...} +type BucketReplicationConfigRuleDestinationReplicationTimeTimeInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput + ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput +} + +type BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs struct { + // Time in minutes. Valid values: `15`. + Minutes pulumi.IntInput `pulumi:"minutes"` +} + +func (BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTimeTime)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput { + return i.ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return i.ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput).ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleDestinationReplicationTimeTimePtrInput is an input type that accepts BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs, BucketReplicationConfigRuleDestinationReplicationTimeTimePtr and BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleDestinationReplicationTimeTimePtrInput` via: +// +// BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleDestinationReplicationTimeTimePtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput + ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput +} + +type bucketReplicationConfigRuleDestinationReplicationTimeTimePtrType BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs + +func BucketReplicationConfigRuleDestinationReplicationTimeTimePtr(v *BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs) BucketReplicationConfigRuleDestinationReplicationTimeTimePtrInput { + return (*bucketReplicationConfigRuleDestinationReplicationTimeTimePtrType)(v) +} + +func (*bucketReplicationConfigRuleDestinationReplicationTimeTimePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationReplicationTimeTime)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleDestinationReplicationTimeTimePtrType) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return i.ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleDestinationReplicationTimeTimePtrType) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) +} + +type BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTimeTime)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeTimeOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return o.ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleDestinationReplicationTimeTime) *BucketReplicationConfigRuleDestinationReplicationTimeTime { + return &v + }).(BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) +} + +// Time in minutes. Valid values: `15`. +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) Minutes() pulumi.IntOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleDestinationReplicationTimeTime) int { return v.Minutes }).(pulumi.IntOutput) +} + +type BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleDestinationReplicationTimeTime)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput() BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) ToBucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput { + return o +} + +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) Elem() BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationReplicationTimeTime) BucketReplicationConfigRuleDestinationReplicationTimeTime { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleDestinationReplicationTimeTime + return ret + }).(BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput) +} + +// Time in minutes. Valid values: `15`. +func (o BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleDestinationReplicationTimeTime) *int { + if v == nil { + return nil + } + return &v.Minutes + }).(pulumi.IntPtrOutput) +} + +type BucketReplicationConfigRuleExistingObjectReplication struct { + // Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. + Status string `pulumi:"status"` +} + +// BucketReplicationConfigRuleExistingObjectReplicationInput is an input type that accepts BucketReplicationConfigRuleExistingObjectReplicationArgs and BucketReplicationConfigRuleExistingObjectReplicationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleExistingObjectReplicationInput` via: +// +// BucketReplicationConfigRuleExistingObjectReplicationArgs{...} +type BucketReplicationConfigRuleExistingObjectReplicationInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleExistingObjectReplicationOutput() BucketReplicationConfigRuleExistingObjectReplicationOutput + ToBucketReplicationConfigRuleExistingObjectReplicationOutputWithContext(context.Context) BucketReplicationConfigRuleExistingObjectReplicationOutput +} + +type BucketReplicationConfigRuleExistingObjectReplicationArgs struct { + // Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigRuleExistingObjectReplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleExistingObjectReplication)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleExistingObjectReplicationArgs) ToBucketReplicationConfigRuleExistingObjectReplicationOutput() BucketReplicationConfigRuleExistingObjectReplicationOutput { + return i.ToBucketReplicationConfigRuleExistingObjectReplicationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleExistingObjectReplicationArgs) ToBucketReplicationConfigRuleExistingObjectReplicationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleExistingObjectReplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleExistingObjectReplicationOutput) +} + +func (i BucketReplicationConfigRuleExistingObjectReplicationArgs) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutput() BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return i.ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleExistingObjectReplicationArgs) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleExistingObjectReplicationOutput).ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleExistingObjectReplicationPtrInput is an input type that accepts BucketReplicationConfigRuleExistingObjectReplicationArgs, BucketReplicationConfigRuleExistingObjectReplicationPtr and BucketReplicationConfigRuleExistingObjectReplicationPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleExistingObjectReplicationPtrInput` via: +// +// BucketReplicationConfigRuleExistingObjectReplicationArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleExistingObjectReplicationPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutput() BucketReplicationConfigRuleExistingObjectReplicationPtrOutput + ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(context.Context) BucketReplicationConfigRuleExistingObjectReplicationPtrOutput +} + +type bucketReplicationConfigRuleExistingObjectReplicationPtrType BucketReplicationConfigRuleExistingObjectReplicationArgs + +func BucketReplicationConfigRuleExistingObjectReplicationPtr(v *BucketReplicationConfigRuleExistingObjectReplicationArgs) BucketReplicationConfigRuleExistingObjectReplicationPtrInput { + return (*bucketReplicationConfigRuleExistingObjectReplicationPtrType)(v) +} + +func (*bucketReplicationConfigRuleExistingObjectReplicationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleExistingObjectReplication)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleExistingObjectReplicationPtrType) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutput() BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return i.ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleExistingObjectReplicationPtrType) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) +} + +type BucketReplicationConfigRuleExistingObjectReplicationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleExistingObjectReplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleExistingObjectReplication)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationOutput) ToBucketReplicationConfigRuleExistingObjectReplicationOutput() BucketReplicationConfigRuleExistingObjectReplicationOutput { + return o +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationOutput) ToBucketReplicationConfigRuleExistingObjectReplicationOutputWithContext(ctx context.Context) BucketReplicationConfigRuleExistingObjectReplicationOutput { + return o +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationOutput) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutput() BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return o.ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationOutput) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleExistingObjectReplication) *BucketReplicationConfigRuleExistingObjectReplication { + return &v + }).(BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) +} + +// Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleExistingObjectReplicationOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleExistingObjectReplication) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleExistingObjectReplicationPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleExistingObjectReplication)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutput() BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) ToBucketReplicationConfigRuleExistingObjectReplicationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleExistingObjectReplicationPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) Elem() BucketReplicationConfigRuleExistingObjectReplicationOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleExistingObjectReplication) BucketReplicationConfigRuleExistingObjectReplication { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleExistingObjectReplication + return ret + }).(BucketReplicationConfigRuleExistingObjectReplicationOutput) +} + +// Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleExistingObjectReplicationPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleExistingObjectReplication) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleFilter struct { + // Configuration block for specifying rule filters. This element is required only if you specify more than one filter. See and below for more details. + And *BucketReplicationConfigRuleFilterAnd `pulumi:"and"` + // Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix *string `pulumi:"prefix"` + // Configuration block for specifying a tag key and value. See below. + Tag *BucketReplicationConfigRuleFilterTag `pulumi:"tag"` +} + +// BucketReplicationConfigRuleFilterInput is an input type that accepts BucketReplicationConfigRuleFilterArgs and BucketReplicationConfigRuleFilterOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleFilterInput` via: +// +// BucketReplicationConfigRuleFilterArgs{...} +type BucketReplicationConfigRuleFilterInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleFilterOutput() BucketReplicationConfigRuleFilterOutput + ToBucketReplicationConfigRuleFilterOutputWithContext(context.Context) BucketReplicationConfigRuleFilterOutput +} + +type BucketReplicationConfigRuleFilterArgs struct { + // Configuration block for specifying rule filters. This element is required only if you specify more than one filter. See and below for more details. + And BucketReplicationConfigRuleFilterAndPtrInput `pulumi:"and"` + // Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Configuration block for specifying a tag key and value. See below. + Tag BucketReplicationConfigRuleFilterTagPtrInput `pulumi:"tag"` +} + +func (BucketReplicationConfigRuleFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleFilter)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleFilterArgs) ToBucketReplicationConfigRuleFilterOutput() BucketReplicationConfigRuleFilterOutput { + return i.ToBucketReplicationConfigRuleFilterOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleFilterArgs) ToBucketReplicationConfigRuleFilterOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterOutput) +} + +func (i BucketReplicationConfigRuleFilterArgs) ToBucketReplicationConfigRuleFilterPtrOutput() BucketReplicationConfigRuleFilterPtrOutput { + return i.ToBucketReplicationConfigRuleFilterPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleFilterArgs) ToBucketReplicationConfigRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterOutput).ToBucketReplicationConfigRuleFilterPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleFilterPtrInput is an input type that accepts BucketReplicationConfigRuleFilterArgs, BucketReplicationConfigRuleFilterPtr and BucketReplicationConfigRuleFilterPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleFilterPtrInput` via: +// +// BucketReplicationConfigRuleFilterArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleFilterPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleFilterPtrOutput() BucketReplicationConfigRuleFilterPtrOutput + ToBucketReplicationConfigRuleFilterPtrOutputWithContext(context.Context) BucketReplicationConfigRuleFilterPtrOutput +} + +type bucketReplicationConfigRuleFilterPtrType BucketReplicationConfigRuleFilterArgs + +func BucketReplicationConfigRuleFilterPtr(v *BucketReplicationConfigRuleFilterArgs) BucketReplicationConfigRuleFilterPtrInput { + return (*bucketReplicationConfigRuleFilterPtrType)(v) +} + +func (*bucketReplicationConfigRuleFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleFilter)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleFilterPtrType) ToBucketReplicationConfigRuleFilterPtrOutput() BucketReplicationConfigRuleFilterPtrOutput { + return i.ToBucketReplicationConfigRuleFilterPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleFilterPtrType) ToBucketReplicationConfigRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterPtrOutput) +} + +type BucketReplicationConfigRuleFilterOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleFilter)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleFilterOutput) ToBucketReplicationConfigRuleFilterOutput() BucketReplicationConfigRuleFilterOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterOutput) ToBucketReplicationConfigRuleFilterOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterOutput) ToBucketReplicationConfigRuleFilterPtrOutput() BucketReplicationConfigRuleFilterPtrOutput { + return o.ToBucketReplicationConfigRuleFilterPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleFilterOutput) ToBucketReplicationConfigRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleFilter) *BucketReplicationConfigRuleFilter { + return &v + }).(BucketReplicationConfigRuleFilterPtrOutput) +} + +// Configuration block for specifying rule filters. This element is required only if you specify more than one filter. See and below for more details. +func (o BucketReplicationConfigRuleFilterOutput) And() BucketReplicationConfigRuleFilterAndPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilter) *BucketReplicationConfigRuleFilterAnd { return v.And }).(BucketReplicationConfigRuleFilterAndPtrOutput) +} + +// Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigRuleFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Configuration block for specifying a tag key and value. See below. +func (o BucketReplicationConfigRuleFilterOutput) Tag() BucketReplicationConfigRuleFilterTagPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilter) *BucketReplicationConfigRuleFilterTag { return v.Tag }).(BucketReplicationConfigRuleFilterTagPtrOutput) +} + +type BucketReplicationConfigRuleFilterPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleFilter)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleFilterPtrOutput) ToBucketReplicationConfigRuleFilterPtrOutput() BucketReplicationConfigRuleFilterPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterPtrOutput) ToBucketReplicationConfigRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterPtrOutput) Elem() BucketReplicationConfigRuleFilterOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilter) BucketReplicationConfigRuleFilter { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleFilter + return ret + }).(BucketReplicationConfigRuleFilterOutput) +} + +// Configuration block for specifying rule filters. This element is required only if you specify more than one filter. See and below for more details. +func (o BucketReplicationConfigRuleFilterPtrOutput) And() BucketReplicationConfigRuleFilterAndPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilter) *BucketReplicationConfigRuleFilterAnd { + if v == nil { + return nil + } + return v.And + }).(BucketReplicationConfigRuleFilterAndPtrOutput) +} + +// Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigRuleFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// Configuration block for specifying a tag key and value. See below. +func (o BucketReplicationConfigRuleFilterPtrOutput) Tag() BucketReplicationConfigRuleFilterTagPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilter) *BucketReplicationConfigRuleFilterTag { + if v == nil { + return nil + } + return v.Tag + }).(BucketReplicationConfigRuleFilterTagPtrOutput) +} + +type BucketReplicationConfigRuleFilterAnd struct { + // Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix *string `pulumi:"prefix"` + // Map of tags (key and value pairs) that identifies a subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. + Tags map[string]string `pulumi:"tags"` +} + +// BucketReplicationConfigRuleFilterAndInput is an input type that accepts BucketReplicationConfigRuleFilterAndArgs and BucketReplicationConfigRuleFilterAndOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleFilterAndInput` via: +// +// BucketReplicationConfigRuleFilterAndArgs{...} +type BucketReplicationConfigRuleFilterAndInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleFilterAndOutput() BucketReplicationConfigRuleFilterAndOutput + ToBucketReplicationConfigRuleFilterAndOutputWithContext(context.Context) BucketReplicationConfigRuleFilterAndOutput +} + +type BucketReplicationConfigRuleFilterAndArgs struct { + // Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Map of tags (key and value pairs) that identifies a subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketReplicationConfigRuleFilterAndArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleFilterAnd)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleFilterAndArgs) ToBucketReplicationConfigRuleFilterAndOutput() BucketReplicationConfigRuleFilterAndOutput { + return i.ToBucketReplicationConfigRuleFilterAndOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleFilterAndArgs) ToBucketReplicationConfigRuleFilterAndOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterAndOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterAndOutput) +} + +func (i BucketReplicationConfigRuleFilterAndArgs) ToBucketReplicationConfigRuleFilterAndPtrOutput() BucketReplicationConfigRuleFilterAndPtrOutput { + return i.ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleFilterAndArgs) ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterAndPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterAndOutput).ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleFilterAndPtrInput is an input type that accepts BucketReplicationConfigRuleFilterAndArgs, BucketReplicationConfigRuleFilterAndPtr and BucketReplicationConfigRuleFilterAndPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleFilterAndPtrInput` via: +// +// BucketReplicationConfigRuleFilterAndArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleFilterAndPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleFilterAndPtrOutput() BucketReplicationConfigRuleFilterAndPtrOutput + ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(context.Context) BucketReplicationConfigRuleFilterAndPtrOutput +} + +type bucketReplicationConfigRuleFilterAndPtrType BucketReplicationConfigRuleFilterAndArgs + +func BucketReplicationConfigRuleFilterAndPtr(v *BucketReplicationConfigRuleFilterAndArgs) BucketReplicationConfigRuleFilterAndPtrInput { + return (*bucketReplicationConfigRuleFilterAndPtrType)(v) +} + +func (*bucketReplicationConfigRuleFilterAndPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleFilterAnd)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleFilterAndPtrType) ToBucketReplicationConfigRuleFilterAndPtrOutput() BucketReplicationConfigRuleFilterAndPtrOutput { + return i.ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleFilterAndPtrType) ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterAndPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterAndPtrOutput) +} + +type BucketReplicationConfigRuleFilterAndOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleFilterAndOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleFilterAnd)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleFilterAndOutput) ToBucketReplicationConfigRuleFilterAndOutput() BucketReplicationConfigRuleFilterAndOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterAndOutput) ToBucketReplicationConfigRuleFilterAndOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterAndOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterAndOutput) ToBucketReplicationConfigRuleFilterAndPtrOutput() BucketReplicationConfigRuleFilterAndPtrOutput { + return o.ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleFilterAndOutput) ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterAndPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleFilterAnd) *BucketReplicationConfigRuleFilterAnd { + return &v + }).(BucketReplicationConfigRuleFilterAndPtrOutput) +} + +// Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigRuleFilterAndOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilterAnd) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Map of tags (key and value pairs) that identifies a subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. +func (o BucketReplicationConfigRuleFilterAndOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilterAnd) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketReplicationConfigRuleFilterAndPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleFilterAndPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleFilterAnd)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleFilterAndPtrOutput) ToBucketReplicationConfigRuleFilterAndPtrOutput() BucketReplicationConfigRuleFilterAndPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterAndPtrOutput) ToBucketReplicationConfigRuleFilterAndPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterAndPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterAndPtrOutput) Elem() BucketReplicationConfigRuleFilterAndOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilterAnd) BucketReplicationConfigRuleFilterAnd { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleFilterAnd + return ret + }).(BucketReplicationConfigRuleFilterAndOutput) +} + +// Object key name prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigRuleFilterAndPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilterAnd) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// Map of tags (key and value pairs) that identifies a subset of objects to which the rule applies. The rule applies only to objects having all the tags in its tagset. +func (o BucketReplicationConfigRuleFilterAndPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilterAnd) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type BucketReplicationConfigRuleFilterTag struct { + // Name of the object key. + Key string `pulumi:"key"` + // Value of the tag. + Value string `pulumi:"value"` +} + +// BucketReplicationConfigRuleFilterTagInput is an input type that accepts BucketReplicationConfigRuleFilterTagArgs and BucketReplicationConfigRuleFilterTagOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleFilterTagInput` via: +// +// BucketReplicationConfigRuleFilterTagArgs{...} +type BucketReplicationConfigRuleFilterTagInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleFilterTagOutput() BucketReplicationConfigRuleFilterTagOutput + ToBucketReplicationConfigRuleFilterTagOutputWithContext(context.Context) BucketReplicationConfigRuleFilterTagOutput +} + +type BucketReplicationConfigRuleFilterTagArgs struct { + // Name of the object key. + Key pulumi.StringInput `pulumi:"key"` + // Value of the tag. + Value pulumi.StringInput `pulumi:"value"` +} + +func (BucketReplicationConfigRuleFilterTagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleFilterTag)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleFilterTagArgs) ToBucketReplicationConfigRuleFilterTagOutput() BucketReplicationConfigRuleFilterTagOutput { + return i.ToBucketReplicationConfigRuleFilterTagOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleFilterTagArgs) ToBucketReplicationConfigRuleFilterTagOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterTagOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterTagOutput) +} + +func (i BucketReplicationConfigRuleFilterTagArgs) ToBucketReplicationConfigRuleFilterTagPtrOutput() BucketReplicationConfigRuleFilterTagPtrOutput { + return i.ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleFilterTagArgs) ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterTagPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterTagOutput).ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleFilterTagPtrInput is an input type that accepts BucketReplicationConfigRuleFilterTagArgs, BucketReplicationConfigRuleFilterTagPtr and BucketReplicationConfigRuleFilterTagPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleFilterTagPtrInput` via: +// +// BucketReplicationConfigRuleFilterTagArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleFilterTagPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleFilterTagPtrOutput() BucketReplicationConfigRuleFilterTagPtrOutput + ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(context.Context) BucketReplicationConfigRuleFilterTagPtrOutput +} + +type bucketReplicationConfigRuleFilterTagPtrType BucketReplicationConfigRuleFilterTagArgs + +func BucketReplicationConfigRuleFilterTagPtr(v *BucketReplicationConfigRuleFilterTagArgs) BucketReplicationConfigRuleFilterTagPtrInput { + return (*bucketReplicationConfigRuleFilterTagPtrType)(v) +} + +func (*bucketReplicationConfigRuleFilterTagPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleFilterTag)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleFilterTagPtrType) ToBucketReplicationConfigRuleFilterTagPtrOutput() BucketReplicationConfigRuleFilterTagPtrOutput { + return i.ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleFilterTagPtrType) ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterTagPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleFilterTagPtrOutput) +} + +type BucketReplicationConfigRuleFilterTagOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleFilterTagOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleFilterTag)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleFilterTagOutput) ToBucketReplicationConfigRuleFilterTagOutput() BucketReplicationConfigRuleFilterTagOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterTagOutput) ToBucketReplicationConfigRuleFilterTagOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterTagOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterTagOutput) ToBucketReplicationConfigRuleFilterTagPtrOutput() BucketReplicationConfigRuleFilterTagPtrOutput { + return o.ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleFilterTagOutput) ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterTagPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleFilterTag) *BucketReplicationConfigRuleFilterTag { + return &v + }).(BucketReplicationConfigRuleFilterTagPtrOutput) +} + +// Name of the object key. +func (o BucketReplicationConfigRuleFilterTagOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilterTag) string { return v.Key }).(pulumi.StringOutput) +} + +// Value of the tag. +func (o BucketReplicationConfigRuleFilterTagOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleFilterTag) string { return v.Value }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleFilterTagPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleFilterTagPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleFilterTag)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleFilterTagPtrOutput) ToBucketReplicationConfigRuleFilterTagPtrOutput() BucketReplicationConfigRuleFilterTagPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterTagPtrOutput) ToBucketReplicationConfigRuleFilterTagPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleFilterTagPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleFilterTagPtrOutput) Elem() BucketReplicationConfigRuleFilterTagOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilterTag) BucketReplicationConfigRuleFilterTag { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleFilterTag + return ret + }).(BucketReplicationConfigRuleFilterTagOutput) +} + +// Name of the object key. +func (o BucketReplicationConfigRuleFilterTagPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilterTag) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +// Value of the tag. +func (o BucketReplicationConfigRuleFilterTagPtrOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleFilterTag) *string { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteria struct { + // Configuration block that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate replica modifications by default. In the latest version of replication configuration (when `filter` is specified), you can specify this element and set the status to `Enabled` to replicate modifications on replicas. + ReplicaModifications *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications `pulumi:"replicaModifications"` + // Configuration block for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If specified, `replicaKmsKeyId` in `destination` `encryptionConfiguration` must be specified as well. + SseKmsEncryptedObjects *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects `pulumi:"sseKmsEncryptedObjects"` +} + +// BucketReplicationConfigRuleSourceSelectionCriteriaInput is an input type that accepts BucketReplicationConfigRuleSourceSelectionCriteriaArgs and BucketReplicationConfigRuleSourceSelectionCriteriaOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleSourceSelectionCriteriaInput` via: +// +// BucketReplicationConfigRuleSourceSelectionCriteriaArgs{...} +type BucketReplicationConfigRuleSourceSelectionCriteriaInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleSourceSelectionCriteriaOutput() BucketReplicationConfigRuleSourceSelectionCriteriaOutput + ToBucketReplicationConfigRuleSourceSelectionCriteriaOutputWithContext(context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaOutput +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaArgs struct { + // Configuration block that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate replica modifications by default. In the latest version of replication configuration (when `filter` is specified), you can specify this element and set the status to `Enabled` to replicate modifications on replicas. + ReplicaModifications BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrInput `pulumi:"replicaModifications"` + // Configuration block for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If specified, `replicaKmsKeyId` in `destination` `encryptionConfiguration` must be specified as well. + SseKmsEncryptedObjects BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput `pulumi:"sseKmsEncryptedObjects"` +} + +func (BucketReplicationConfigRuleSourceSelectionCriteriaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaOutput() BucketReplicationConfigRuleSourceSelectionCriteriaOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaOutput) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaOutput).ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleSourceSelectionCriteriaPtrInput is an input type that accepts BucketReplicationConfigRuleSourceSelectionCriteriaArgs, BucketReplicationConfigRuleSourceSelectionCriteriaPtr and BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleSourceSelectionCriteriaPtrInput` via: +// +// BucketReplicationConfigRuleSourceSelectionCriteriaArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleSourceSelectionCriteriaPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput + ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput +} + +type bucketReplicationConfigRuleSourceSelectionCriteriaPtrType BucketReplicationConfigRuleSourceSelectionCriteriaArgs + +func BucketReplicationConfigRuleSourceSelectionCriteriaPtr(v *BucketReplicationConfigRuleSourceSelectionCriteriaArgs) BucketReplicationConfigRuleSourceSelectionCriteriaPtrInput { + return (*bucketReplicationConfigRuleSourceSelectionCriteriaPtrType)(v) +} + +func (*bucketReplicationConfigRuleSourceSelectionCriteriaPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleSourceSelectionCriteriaPtrType) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleSourceSelectionCriteriaPtrType) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleSourceSelectionCriteriaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaOutput() BucketReplicationConfigRuleSourceSelectionCriteriaOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return o.ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleSourceSelectionCriteria) *BucketReplicationConfigRuleSourceSelectionCriteria { + return &v + }).(BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) +} + +// Configuration block that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate replica modifications by default. In the latest version of replication configuration (when `filter` is specified), you can specify this element and set the status to `Enabled` to replicate modifications on replicas. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaOutput) ReplicaModifications() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleSourceSelectionCriteria) *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications { + return v.ReplicaModifications + }).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) +} + +// Configuration block for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If specified, `replicaKmsKeyId` in `destination` `encryptionConfiguration` must be specified as well. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaOutput) SseKmsEncryptedObjects() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleSourceSelectionCriteria) *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + return v.SseKmsEncryptedObjects + }).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) Elem() BucketReplicationConfigRuleSourceSelectionCriteriaOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteria) BucketReplicationConfigRuleSourceSelectionCriteria { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleSourceSelectionCriteria + return ret + }).(BucketReplicationConfigRuleSourceSelectionCriteriaOutput) +} + +// Configuration block that you can specify for selections for modifications on replicas. Amazon S3 doesn't replicate replica modifications by default. In the latest version of replication configuration (when `filter` is specified), you can specify this element and set the status to `Enabled` to replicate modifications on replicas. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) ReplicaModifications() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteria) *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications { + if v == nil { + return nil + } + return v.ReplicaModifications + }).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) +} + +// Configuration block for filter information for the selection of Amazon S3 objects encrypted with AWS KMS. If specified, `replicaKmsKeyId` in `destination` `encryptionConfiguration` must be specified as well. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput) SseKmsEncryptedObjects() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteria) *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + if v == nil { + return nil + } + return v.SseKmsEncryptedObjects + }).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications struct { + // Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. + Status string `pulumi:"status"` +} + +// BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsInput is an input type that accepts BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs and BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsInput` via: +// +// BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs{...} +type BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput + ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutputWithContext(context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs struct { + // Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput).ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrInput is an input type that accepts BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs, BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtr and BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrInput` via: +// +// BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput + ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput +} + +type bucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrType BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs + +func BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtr(v *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrInput { + return (*bucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrType)(v) +} + +func (*bucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrType) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrType) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return o.ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications) *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications { + return &v + }).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) +} + +// Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) Elem() BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications) BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications + return ret + }).(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput) +} + +// Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModifications) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects struct { + // Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. + Status string `pulumi:"status"` +} + +// BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput is an input type that accepts BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs and BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput` via: +// +// BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{...} +type BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput + ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs struct { + // Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput).ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput is an input type that accepts BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs, BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtr and BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput` via: +// +// BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput + ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput +} + +type bucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs + +func BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtr(v *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput { + return (*bucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType)(v) +} + +func (*bucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (i *bucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return i.ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects) *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + return &v + }).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +// Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects) string { + return v.Status + }).(pulumi.StringOutput) +} + +type BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) ToBucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o +} + +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) Elem() BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects) BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + if v != nil { + return *v + } + var ret BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects + return ret + }).(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) +} + +// Whether the existing objects should be replicated. Either `"Enabled"` or `"Disabled"`. +func (o BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjects) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfiguration struct { + // The ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role string `pulumi:"role"` + // Specifies the rules managing the replication (documented below). + Rules []BucketReplicationConfigurationRule `pulumi:"rules"` +} + +// BucketReplicationConfigurationInput is an input type that accepts BucketReplicationConfigurationArgs and BucketReplicationConfigurationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationInput` via: +// +// BucketReplicationConfigurationArgs{...} +type BucketReplicationConfigurationInput interface { + pulumi.Input + + ToBucketReplicationConfigurationOutput() BucketReplicationConfigurationOutput + ToBucketReplicationConfigurationOutputWithContext(context.Context) BucketReplicationConfigurationOutput +} + +type BucketReplicationConfigurationArgs struct { + // The ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role pulumi.StringInput `pulumi:"role"` + // Specifies the rules managing the replication (documented below). + Rules BucketReplicationConfigurationRuleArrayInput `pulumi:"rules"` +} + +func (BucketReplicationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfiguration)(nil)).Elem() +} + +func (i BucketReplicationConfigurationArgs) ToBucketReplicationConfigurationOutput() BucketReplicationConfigurationOutput { + return i.ToBucketReplicationConfigurationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationArgs) ToBucketReplicationConfigurationOutputWithContext(ctx context.Context) BucketReplicationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationOutput) +} + +func (i BucketReplicationConfigurationArgs) ToBucketReplicationConfigurationPtrOutput() BucketReplicationConfigurationPtrOutput { + return i.ToBucketReplicationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationArgs) ToBucketReplicationConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationOutput).ToBucketReplicationConfigurationPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationPtrInput is an input type that accepts BucketReplicationConfigurationArgs, BucketReplicationConfigurationPtr and BucketReplicationConfigurationPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationPtrInput` via: +// +// BucketReplicationConfigurationArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationPtrOutput() BucketReplicationConfigurationPtrOutput + ToBucketReplicationConfigurationPtrOutputWithContext(context.Context) BucketReplicationConfigurationPtrOutput +} + +type bucketReplicationConfigurationPtrType BucketReplicationConfigurationArgs + +func BucketReplicationConfigurationPtr(v *BucketReplicationConfigurationArgs) BucketReplicationConfigurationPtrInput { + return (*bucketReplicationConfigurationPtrType)(v) +} + +func (*bucketReplicationConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfiguration)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationPtrType) ToBucketReplicationConfigurationPtrOutput() BucketReplicationConfigurationPtrOutput { + return i.ToBucketReplicationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationPtrType) ToBucketReplicationConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationPtrOutput) +} + +type BucketReplicationConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfiguration)(nil)).Elem() +} + +func (o BucketReplicationConfigurationOutput) ToBucketReplicationConfigurationOutput() BucketReplicationConfigurationOutput { + return o +} + +func (o BucketReplicationConfigurationOutput) ToBucketReplicationConfigurationOutputWithContext(ctx context.Context) BucketReplicationConfigurationOutput { + return o +} + +func (o BucketReplicationConfigurationOutput) ToBucketReplicationConfigurationPtrOutput() BucketReplicationConfigurationPtrOutput { + return o.ToBucketReplicationConfigurationPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationOutput) ToBucketReplicationConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfiguration) *BucketReplicationConfiguration { + return &v + }).(BucketReplicationConfigurationPtrOutput) +} + +// The ARN of the IAM role for Amazon S3 to assume when replicating the objects. +func (o BucketReplicationConfigurationOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfiguration) string { return v.Role }).(pulumi.StringOutput) +} + +// Specifies the rules managing the replication (documented below). +func (o BucketReplicationConfigurationOutput) Rules() BucketReplicationConfigurationRuleArrayOutput { + return o.ApplyT(func(v BucketReplicationConfiguration) []BucketReplicationConfigurationRule { return v.Rules }).(BucketReplicationConfigurationRuleArrayOutput) +} + +type BucketReplicationConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfiguration)(nil)).Elem() +} + +func (o BucketReplicationConfigurationPtrOutput) ToBucketReplicationConfigurationPtrOutput() BucketReplicationConfigurationPtrOutput { + return o +} + +func (o BucketReplicationConfigurationPtrOutput) ToBucketReplicationConfigurationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationPtrOutput { + return o +} + +func (o BucketReplicationConfigurationPtrOutput) Elem() BucketReplicationConfigurationOutput { + return o.ApplyT(func(v *BucketReplicationConfiguration) BucketReplicationConfiguration { + if v != nil { + return *v + } + var ret BucketReplicationConfiguration + return ret + }).(BucketReplicationConfigurationOutput) +} + +// The ARN of the IAM role for Amazon S3 to assume when replicating the objects. +func (o BucketReplicationConfigurationPtrOutput) Role() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfiguration) *string { + if v == nil { + return nil + } + return &v.Role + }).(pulumi.StringPtrOutput) +} + +// Specifies the rules managing the replication (documented below). +func (o BucketReplicationConfigurationPtrOutput) Rules() BucketReplicationConfigurationRuleArrayOutput { + return o.ApplyT(func(v *BucketReplicationConfiguration) []BucketReplicationConfigurationRule { + if v == nil { + return nil + } + return v.Rules + }).(BucketReplicationConfigurationRuleArrayOutput) +} + +type BucketReplicationConfigurationRule struct { + // Whether delete markers are replicated. The only valid value is `Enabled`. To disable, omit this argument. This argument is only valid with V2 replication configurations (i.e., when `filter` is used). + DeleteMarkerReplicationStatus *string `pulumi:"deleteMarkerReplicationStatus"` + // Specifies the destination for the rule (documented below). + Destination BucketReplicationConfigurationRuleDestination `pulumi:"destination"` + // Filter that identifies subset of objects to which the replication rule applies (documented below). + Filter *BucketReplicationConfigurationRuleFilter `pulumi:"filter"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id *string `pulumi:"id"` + // Object keyname prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix *string `pulumi:"prefix"` + // The priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. + Priority *int `pulumi:"priority"` + // Specifies special object selection criteria (documented below). + SourceSelectionCriteria *BucketReplicationConfigurationRuleSourceSelectionCriteria `pulumi:"sourceSelectionCriteria"` + // The status of the rule. Either `Enabled` or `Disabled`. The rule is ignored if status is not Enabled. + // + // > **NOTE:** Replication to multiple destination buckets requires that `priority` is specified in the `rules` object. If the corresponding rule requires no filter, an empty configuration block `filter {}` must be specified. + Status string `pulumi:"status"` +} + +// BucketReplicationConfigurationRuleInput is an input type that accepts BucketReplicationConfigurationRuleArgs and BucketReplicationConfigurationRuleOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleInput` via: +// +// BucketReplicationConfigurationRuleArgs{...} +type BucketReplicationConfigurationRuleInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleOutput() BucketReplicationConfigurationRuleOutput + ToBucketReplicationConfigurationRuleOutputWithContext(context.Context) BucketReplicationConfigurationRuleOutput +} + +type BucketReplicationConfigurationRuleArgs struct { + // Whether delete markers are replicated. The only valid value is `Enabled`. To disable, omit this argument. This argument is only valid with V2 replication configurations (i.e., when `filter` is used). + DeleteMarkerReplicationStatus pulumi.StringPtrInput `pulumi:"deleteMarkerReplicationStatus"` + // Specifies the destination for the rule (documented below). + Destination BucketReplicationConfigurationRuleDestinationInput `pulumi:"destination"` + // Filter that identifies subset of objects to which the replication rule applies (documented below). + Filter BucketReplicationConfigurationRuleFilterPtrInput `pulumi:"filter"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id pulumi.StringPtrInput `pulumi:"id"` + // Object keyname prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // Specifies special object selection criteria (documented below). + SourceSelectionCriteria BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrInput `pulumi:"sourceSelectionCriteria"` + // The status of the rule. Either `Enabled` or `Disabled`. The rule is ignored if status is not Enabled. + // + // > **NOTE:** Replication to multiple destination buckets requires that `priority` is specified in the `rules` object. If the corresponding rule requires no filter, an empty configuration block `filter {}` must be specified. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketReplicationConfigurationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRule)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleArgs) ToBucketReplicationConfigurationRuleOutput() BucketReplicationConfigurationRuleOutput { + return i.ToBucketReplicationConfigurationRuleOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleArgs) ToBucketReplicationConfigurationRuleOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleOutput) +} + +// BucketReplicationConfigurationRuleArrayInput is an input type that accepts BucketReplicationConfigurationRuleArray and BucketReplicationConfigurationRuleArrayOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleArrayInput` via: +// +// BucketReplicationConfigurationRuleArray{ BucketReplicationConfigurationRuleArgs{...} } +type BucketReplicationConfigurationRuleArrayInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleArrayOutput() BucketReplicationConfigurationRuleArrayOutput + ToBucketReplicationConfigurationRuleArrayOutputWithContext(context.Context) BucketReplicationConfigurationRuleArrayOutput +} + +type BucketReplicationConfigurationRuleArray []BucketReplicationConfigurationRuleInput + +func (BucketReplicationConfigurationRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketReplicationConfigurationRule)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleArray) ToBucketReplicationConfigurationRuleArrayOutput() BucketReplicationConfigurationRuleArrayOutput { + return i.ToBucketReplicationConfigurationRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleArray) ToBucketReplicationConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleArrayOutput) +} + +type BucketReplicationConfigurationRuleOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRule)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleOutput) ToBucketReplicationConfigurationRuleOutput() BucketReplicationConfigurationRuleOutput { + return o +} + +func (o BucketReplicationConfigurationRuleOutput) ToBucketReplicationConfigurationRuleOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleOutput { + return o +} + +// Whether delete markers are replicated. The only valid value is `Enabled`. To disable, omit this argument. This argument is only valid with V2 replication configurations (i.e., when `filter` is used). +func (o BucketReplicationConfigurationRuleOutput) DeleteMarkerReplicationStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) *string { return v.DeleteMarkerReplicationStatus }).(pulumi.StringPtrOutput) +} + +// Specifies the destination for the rule (documented below). +func (o BucketReplicationConfigurationRuleOutput) Destination() BucketReplicationConfigurationRuleDestinationOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) BucketReplicationConfigurationRuleDestination { + return v.Destination + }).(BucketReplicationConfigurationRuleDestinationOutput) +} + +// Filter that identifies subset of objects to which the replication rule applies (documented below). +func (o BucketReplicationConfigurationRuleOutput) Filter() BucketReplicationConfigurationRuleFilterPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) *BucketReplicationConfigurationRuleFilter { return v.Filter }).(BucketReplicationConfigurationRuleFilterPtrOutput) +} + +// Unique identifier for the rule. Must be less than or equal to 255 characters in length. +func (o BucketReplicationConfigurationRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Object keyname prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigurationRuleOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// The priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. +func (o BucketReplicationConfigurationRuleOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// Specifies special object selection criteria (documented below). +func (o BucketReplicationConfigurationRuleOutput) SourceSelectionCriteria() BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) *BucketReplicationConfigurationRuleSourceSelectionCriteria { + return v.SourceSelectionCriteria + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) +} + +// The status of the rule. Either `Enabled` or `Disabled`. The rule is ignored if status is not Enabled. +// +// > **NOTE:** Replication to multiple destination buckets requires that `priority` is specified in the `rules` object. If the corresponding rule requires no filter, an empty configuration block `filter {}` must be specified. +func (o BucketReplicationConfigurationRuleOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRule) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketReplicationConfigurationRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketReplicationConfigurationRule)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleArrayOutput) ToBucketReplicationConfigurationRuleArrayOutput() BucketReplicationConfigurationRuleArrayOutput { + return o +} + +func (o BucketReplicationConfigurationRuleArrayOutput) ToBucketReplicationConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleArrayOutput { + return o +} + +func (o BucketReplicationConfigurationRuleArrayOutput) Index(i pulumi.IntInput) BucketReplicationConfigurationRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketReplicationConfigurationRule { + return vs[0].([]BucketReplicationConfigurationRule)[vs[1].(int)] + }).(BucketReplicationConfigurationRuleOutput) +} + +type BucketReplicationConfigurationRuleDestination struct { + // Specifies the overrides to use for object owners on replication. Must be used in conjunction with `accountId` owner override configuration. + AccessControlTranslation *BucketReplicationConfigurationRuleDestinationAccessControlTranslation `pulumi:"accessControlTranslation"` + // The Account ID to use for overriding the object owner on replication. Must be used in conjunction with `accessControlTranslation` override configuration. + AccountId *string `pulumi:"accountId"` + // The ARN of the S3 bucket where you want Amazon S3 to store replicas of the object identified by the rule. + Bucket string `pulumi:"bucket"` + // Enables replication metrics (required for S3 RTC) (documented below). + Metrics *BucketReplicationConfigurationRuleDestinationMetrics `pulumi:"metrics"` + // Destination KMS encryption key ARN for SSE-KMS replication. Must be used in conjunction with + // `sseKmsEncryptedObjects` source selection criteria. + ReplicaKmsKeyId *string `pulumi:"replicaKmsKeyId"` + // Enables S3 Replication Time Control (S3 RTC) (documented below). + ReplicationTime *BucketReplicationConfigurationRuleDestinationReplicationTime `pulumi:"replicationTime"` + // The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. + StorageClass *string `pulumi:"storageClass"` +} + +// BucketReplicationConfigurationRuleDestinationInput is an input type that accepts BucketReplicationConfigurationRuleDestinationArgs and BucketReplicationConfigurationRuleDestinationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationInput` via: +// +// BucketReplicationConfigurationRuleDestinationArgs{...} +type BucketReplicationConfigurationRuleDestinationInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationOutput() BucketReplicationConfigurationRuleDestinationOutput + ToBucketReplicationConfigurationRuleDestinationOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationOutput +} + +type BucketReplicationConfigurationRuleDestinationArgs struct { + // Specifies the overrides to use for object owners on replication. Must be used in conjunction with `accountId` owner override configuration. + AccessControlTranslation BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrInput `pulumi:"accessControlTranslation"` + // The Account ID to use for overriding the object owner on replication. Must be used in conjunction with `accessControlTranslation` override configuration. + AccountId pulumi.StringPtrInput `pulumi:"accountId"` + // The ARN of the S3 bucket where you want Amazon S3 to store replicas of the object identified by the rule. + Bucket pulumi.StringInput `pulumi:"bucket"` + // Enables replication metrics (required for S3 RTC) (documented below). + Metrics BucketReplicationConfigurationRuleDestinationMetricsPtrInput `pulumi:"metrics"` + // Destination KMS encryption key ARN for SSE-KMS replication. Must be used in conjunction with + // `sseKmsEncryptedObjects` source selection criteria. + ReplicaKmsKeyId pulumi.StringPtrInput `pulumi:"replicaKmsKeyId"` + // Enables S3 Replication Time Control (S3 RTC) (documented below). + ReplicationTime BucketReplicationConfigurationRuleDestinationReplicationTimePtrInput `pulumi:"replicationTime"` + // The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. + StorageClass pulumi.StringPtrInput `pulumi:"storageClass"` +} + +func (BucketReplicationConfigurationRuleDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestination)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleDestinationArgs) ToBucketReplicationConfigurationRuleDestinationOutput() BucketReplicationConfigurationRuleDestinationOutput { + return i.ToBucketReplicationConfigurationRuleDestinationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationArgs) ToBucketReplicationConfigurationRuleDestinationOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationOutput) +} + +type BucketReplicationConfigurationRuleDestinationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestination)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationOutput) ToBucketReplicationConfigurationRuleDestinationOutput() BucketReplicationConfigurationRuleDestinationOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationOutput) ToBucketReplicationConfigurationRuleDestinationOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationOutput { + return o +} + +// Specifies the overrides to use for object owners on replication. Must be used in conjunction with `accountId` owner override configuration. +func (o BucketReplicationConfigurationRuleDestinationOutput) AccessControlTranslation() BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) *BucketReplicationConfigurationRuleDestinationAccessControlTranslation { + return v.AccessControlTranslation + }).(BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) +} + +// The Account ID to use for overriding the object owner on replication. Must be used in conjunction with `accessControlTranslation` override configuration. +func (o BucketReplicationConfigurationRuleDestinationOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) *string { return v.AccountId }).(pulumi.StringPtrOutput) +} + +// The ARN of the S3 bucket where you want Amazon S3 to store replicas of the object identified by the rule. +func (o BucketReplicationConfigurationRuleDestinationOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) string { return v.Bucket }).(pulumi.StringOutput) +} + +// Enables replication metrics (required for S3 RTC) (documented below). +func (o BucketReplicationConfigurationRuleDestinationOutput) Metrics() BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) *BucketReplicationConfigurationRuleDestinationMetrics { + return v.Metrics + }).(BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) +} + +// Destination KMS encryption key ARN for SSE-KMS replication. Must be used in conjunction with +// `sseKmsEncryptedObjects` source selection criteria. +func (o BucketReplicationConfigurationRuleDestinationOutput) ReplicaKmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) *string { return v.ReplicaKmsKeyId }).(pulumi.StringPtrOutput) +} + +// Enables S3 Replication Time Control (S3 RTC) (documented below). +func (o BucketReplicationConfigurationRuleDestinationOutput) ReplicationTime() BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) *BucketReplicationConfigurationRuleDestinationReplicationTime { + return v.ReplicationTime + }).(BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) +} + +// The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. +func (o BucketReplicationConfigurationRuleDestinationOutput) StorageClass() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestination) *string { return v.StorageClass }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationAccessControlTranslation struct { + // The override value for the owner on replicated objects. Currently only `Destination` is supported. + Owner string `pulumi:"owner"` +} + +// BucketReplicationConfigurationRuleDestinationAccessControlTranslationInput is an input type that accepts BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs and BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationAccessControlTranslationInput` via: +// +// BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs{...} +type BucketReplicationConfigurationRuleDestinationAccessControlTranslationInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput + ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput +} + +type BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs struct { + // The override value for the owner on replicated objects. Currently only `Destination` is supported. + Owner pulumi.StringInput `pulumi:"owner"` +} + +func (BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return i.ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) +} + +func (i BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return i.ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput).ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrInput is an input type that accepts BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs, BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtr and BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrInput` via: +// +// BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput + ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput +} + +type bucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrType BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs + +func BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtr(v *BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs) BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrInput { + return (*bucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrType)(v) +} + +func (*bucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrType) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return i.ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrType) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return o.ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigurationRuleDestinationAccessControlTranslation) *BucketReplicationConfigurationRuleDestinationAccessControlTranslation { + return &v + }).(BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) +} + +// The override value for the owner on replicated objects. Currently only `Destination` is supported. +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestinationAccessControlTranslation) string { return v.Owner }).(pulumi.StringOutput) +} + +type BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput() BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) ToBucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) Elem() BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationAccessControlTranslation) BucketReplicationConfigurationRuleDestinationAccessControlTranslation { + if v != nil { + return *v + } + var ret BucketReplicationConfigurationRuleDestinationAccessControlTranslation + return ret + }).(BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput) +} + +// The override value for the owner on replicated objects. Currently only `Destination` is supported. +func (o BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput) Owner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationAccessControlTranslation) *string { + if v == nil { + return nil + } + return &v.Owner + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationMetrics struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes *int `pulumi:"minutes"` + // The status of replication metrics. Either `Enabled` or `Disabled`. + Status *string `pulumi:"status"` +} + +// BucketReplicationConfigurationRuleDestinationMetricsInput is an input type that accepts BucketReplicationConfigurationRuleDestinationMetricsArgs and BucketReplicationConfigurationRuleDestinationMetricsOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationMetricsInput` via: +// +// BucketReplicationConfigurationRuleDestinationMetricsArgs{...} +type BucketReplicationConfigurationRuleDestinationMetricsInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationMetricsOutput() BucketReplicationConfigurationRuleDestinationMetricsOutput + ToBucketReplicationConfigurationRuleDestinationMetricsOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationMetricsOutput +} + +type BucketReplicationConfigurationRuleDestinationMetricsArgs struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes pulumi.IntPtrInput `pulumi:"minutes"` + // The status of replication metrics. Either `Enabled` or `Disabled`. + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (BucketReplicationConfigurationRuleDestinationMetricsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationMetrics)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleDestinationMetricsArgs) ToBucketReplicationConfigurationRuleDestinationMetricsOutput() BucketReplicationConfigurationRuleDestinationMetricsOutput { + return i.ToBucketReplicationConfigurationRuleDestinationMetricsOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationMetricsArgs) ToBucketReplicationConfigurationRuleDestinationMetricsOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationMetricsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationMetricsOutput) +} + +func (i BucketReplicationConfigurationRuleDestinationMetricsArgs) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutput() BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return i.ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationMetricsArgs) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationMetricsOutput).ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationRuleDestinationMetricsPtrInput is an input type that accepts BucketReplicationConfigurationRuleDestinationMetricsArgs, BucketReplicationConfigurationRuleDestinationMetricsPtr and BucketReplicationConfigurationRuleDestinationMetricsPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationMetricsPtrInput` via: +// +// BucketReplicationConfigurationRuleDestinationMetricsArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationRuleDestinationMetricsPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutput() BucketReplicationConfigurationRuleDestinationMetricsPtrOutput + ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationMetricsPtrOutput +} + +type bucketReplicationConfigurationRuleDestinationMetricsPtrType BucketReplicationConfigurationRuleDestinationMetricsArgs + +func BucketReplicationConfigurationRuleDestinationMetricsPtr(v *BucketReplicationConfigurationRuleDestinationMetricsArgs) BucketReplicationConfigurationRuleDestinationMetricsPtrInput { + return (*bucketReplicationConfigurationRuleDestinationMetricsPtrType)(v) +} + +func (*bucketReplicationConfigurationRuleDestinationMetricsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleDestinationMetrics)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationRuleDestinationMetricsPtrType) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutput() BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return i.ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationRuleDestinationMetricsPtrType) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationMetricsOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationMetricsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationMetrics)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsOutput) ToBucketReplicationConfigurationRuleDestinationMetricsOutput() BucketReplicationConfigurationRuleDestinationMetricsOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsOutput) ToBucketReplicationConfigurationRuleDestinationMetricsOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationMetricsOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsOutput) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutput() BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return o.ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsOutput) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigurationRuleDestinationMetrics) *BucketReplicationConfigurationRuleDestinationMetrics { + return &v + }).(BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) +} + +// Threshold within which objects are to be replicated. The only valid value is `15`. +func (o BucketReplicationConfigurationRuleDestinationMetricsOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestinationMetrics) *int { return v.Minutes }).(pulumi.IntPtrOutput) +} + +// The status of replication metrics. Either `Enabled` or `Disabled`. +func (o BucketReplicationConfigurationRuleDestinationMetricsOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestinationMetrics) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationMetricsPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleDestinationMetrics)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutput() BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) ToBucketReplicationConfigurationRuleDestinationMetricsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationMetricsPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) Elem() BucketReplicationConfigurationRuleDestinationMetricsOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationMetrics) BucketReplicationConfigurationRuleDestinationMetrics { + if v != nil { + return *v + } + var ret BucketReplicationConfigurationRuleDestinationMetrics + return ret + }).(BucketReplicationConfigurationRuleDestinationMetricsOutput) +} + +// Threshold within which objects are to be replicated. The only valid value is `15`. +func (o BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationMetrics) *int { + if v == nil { + return nil + } + return v.Minutes + }).(pulumi.IntPtrOutput) +} + +// The status of replication metrics. Either `Enabled` or `Disabled`. +func (o BucketReplicationConfigurationRuleDestinationMetricsPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationMetrics) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationReplicationTime struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes *int `pulumi:"minutes"` + // The status of RTC. Either `Enabled` or `Disabled`. + Status *string `pulumi:"status"` +} + +// BucketReplicationConfigurationRuleDestinationReplicationTimeInput is an input type that accepts BucketReplicationConfigurationRuleDestinationReplicationTimeArgs and BucketReplicationConfigurationRuleDestinationReplicationTimeOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationReplicationTimeInput` via: +// +// BucketReplicationConfigurationRuleDestinationReplicationTimeArgs{...} +type BucketReplicationConfigurationRuleDestinationReplicationTimeInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutput() BucketReplicationConfigurationRuleDestinationReplicationTimeOutput + ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimeOutput +} + +type BucketReplicationConfigurationRuleDestinationReplicationTimeArgs struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes pulumi.IntPtrInput `pulumi:"minutes"` + // The status of RTC. Either `Enabled` or `Disabled`. + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (BucketReplicationConfigurationRuleDestinationReplicationTimeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutput() BucketReplicationConfigurationRuleDestinationReplicationTimeOutput { + return i.ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimeOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) +} + +func (i BucketReplicationConfigurationRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return i.ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleDestinationReplicationTimeArgs) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationReplicationTimeOutput).ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationRuleDestinationReplicationTimePtrInput is an input type that accepts BucketReplicationConfigurationRuleDestinationReplicationTimeArgs, BucketReplicationConfigurationRuleDestinationReplicationTimePtr and BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleDestinationReplicationTimePtrInput` via: +// +// BucketReplicationConfigurationRuleDestinationReplicationTimeArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationRuleDestinationReplicationTimePtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput + ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput +} + +type bucketReplicationConfigurationRuleDestinationReplicationTimePtrType BucketReplicationConfigurationRuleDestinationReplicationTimeArgs + +func BucketReplicationConfigurationRuleDestinationReplicationTimePtr(v *BucketReplicationConfigurationRuleDestinationReplicationTimeArgs) BucketReplicationConfigurationRuleDestinationReplicationTimePtrInput { + return (*bucketReplicationConfigurationRuleDestinationReplicationTimePtrType)(v) +} + +func (*bucketReplicationConfigurationRuleDestinationReplicationTimePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationRuleDestinationReplicationTimePtrType) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return i.ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationRuleDestinationReplicationTimePtrType) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationReplicationTimeOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutput() BucketReplicationConfigurationRuleDestinationReplicationTimeOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimeOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return o.ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigurationRuleDestinationReplicationTime) *BucketReplicationConfigurationRuleDestinationReplicationTime { + return &v + }).(BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) +} + +// Threshold within which objects are to be replicated. The only valid value is `15`. +func (o BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestinationReplicationTime) *int { return v.Minutes }).(pulumi.IntPtrOutput) +} + +// The status of RTC. Either `Enabled` or `Disabled`. +func (o BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleDestinationReplicationTime) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput() BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) ToBucketReplicationConfigurationRuleDestinationReplicationTimePtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) Elem() BucketReplicationConfigurationRuleDestinationReplicationTimeOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationReplicationTime) BucketReplicationConfigurationRuleDestinationReplicationTime { + if v != nil { + return *v + } + var ret BucketReplicationConfigurationRuleDestinationReplicationTime + return ret + }).(BucketReplicationConfigurationRuleDestinationReplicationTimeOutput) +} + +// Threshold within which objects are to be replicated. The only valid value is `15`. +func (o BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationReplicationTime) *int { + if v == nil { + return nil + } + return v.Minutes + }).(pulumi.IntPtrOutput) +} + +// The status of RTC. Either `Enabled` or `Disabled`. +func (o BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleDestinationReplicationTime) *string { + if v == nil { + return nil + } + return v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketReplicationConfigurationRuleFilter struct { + // Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix *string `pulumi:"prefix"` + // A map of tags that identifies subset of objects to which the rule applies. + // The rule applies only to objects having all the tags in its tagset. + Tags map[string]string `pulumi:"tags"` +} + +// BucketReplicationConfigurationRuleFilterInput is an input type that accepts BucketReplicationConfigurationRuleFilterArgs and BucketReplicationConfigurationRuleFilterOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleFilterInput` via: +// +// BucketReplicationConfigurationRuleFilterArgs{...} +type BucketReplicationConfigurationRuleFilterInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleFilterOutput() BucketReplicationConfigurationRuleFilterOutput + ToBucketReplicationConfigurationRuleFilterOutputWithContext(context.Context) BucketReplicationConfigurationRuleFilterOutput +} + +type BucketReplicationConfigurationRuleFilterArgs struct { + // Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // A map of tags that identifies subset of objects to which the rule applies. + // The rule applies only to objects having all the tags in its tagset. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketReplicationConfigurationRuleFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleFilterArgs) ToBucketReplicationConfigurationRuleFilterOutput() BucketReplicationConfigurationRuleFilterOutput { + return i.ToBucketReplicationConfigurationRuleFilterOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleFilterArgs) ToBucketReplicationConfigurationRuleFilterOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleFilterOutput) +} + +func (i BucketReplicationConfigurationRuleFilterArgs) ToBucketReplicationConfigurationRuleFilterPtrOutput() BucketReplicationConfigurationRuleFilterPtrOutput { + return i.ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleFilterArgs) ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleFilterOutput).ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationRuleFilterPtrInput is an input type that accepts BucketReplicationConfigurationRuleFilterArgs, BucketReplicationConfigurationRuleFilterPtr and BucketReplicationConfigurationRuleFilterPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleFilterPtrInput` via: +// +// BucketReplicationConfigurationRuleFilterArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationRuleFilterPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleFilterPtrOutput() BucketReplicationConfigurationRuleFilterPtrOutput + ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(context.Context) BucketReplicationConfigurationRuleFilterPtrOutput +} + +type bucketReplicationConfigurationRuleFilterPtrType BucketReplicationConfigurationRuleFilterArgs + +func BucketReplicationConfigurationRuleFilterPtr(v *BucketReplicationConfigurationRuleFilterArgs) BucketReplicationConfigurationRuleFilterPtrInput { + return (*bucketReplicationConfigurationRuleFilterPtrType)(v) +} + +func (*bucketReplicationConfigurationRuleFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationRuleFilterPtrType) ToBucketReplicationConfigurationRuleFilterPtrOutput() BucketReplicationConfigurationRuleFilterPtrOutput { + return i.ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationRuleFilterPtrType) ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleFilterPtrOutput) +} + +type BucketReplicationConfigurationRuleFilterOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleFilterOutput) ToBucketReplicationConfigurationRuleFilterOutput() BucketReplicationConfigurationRuleFilterOutput { + return o +} + +func (o BucketReplicationConfigurationRuleFilterOutput) ToBucketReplicationConfigurationRuleFilterOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleFilterOutput { + return o +} + +func (o BucketReplicationConfigurationRuleFilterOutput) ToBucketReplicationConfigurationRuleFilterPtrOutput() BucketReplicationConfigurationRuleFilterPtrOutput { + return o.ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationRuleFilterOutput) ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigurationRuleFilter) *BucketReplicationConfigurationRuleFilter { + return &v + }).(BucketReplicationConfigurationRuleFilterPtrOutput) +} + +// Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigurationRuleFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// A map of tags that identifies subset of objects to which the rule applies. +// The rule applies only to objects having all the tags in its tagset. +func (o BucketReplicationConfigurationRuleFilterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleFilter) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketReplicationConfigurationRuleFilterPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleFilterPtrOutput) ToBucketReplicationConfigurationRuleFilterPtrOutput() BucketReplicationConfigurationRuleFilterPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleFilterPtrOutput) ToBucketReplicationConfigurationRuleFilterPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleFilterPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleFilterPtrOutput) Elem() BucketReplicationConfigurationRuleFilterOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleFilter) BucketReplicationConfigurationRuleFilter { + if v != nil { + return *v + } + var ret BucketReplicationConfigurationRuleFilter + return ret + }).(BucketReplicationConfigurationRuleFilterOutput) +} + +// Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketReplicationConfigurationRuleFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// A map of tags that identifies subset of objects to which the rule applies. +// The rule applies only to objects having all the tags in its tagset. +func (o BucketReplicationConfigurationRuleFilterPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleFilter) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteria struct { + // Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` + // in `destination` must be specified as well. + SseKmsEncryptedObjects *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects `pulumi:"sseKmsEncryptedObjects"` +} + +// BucketReplicationConfigurationRuleSourceSelectionCriteriaInput is an input type that accepts BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs and BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleSourceSelectionCriteriaInput` via: +// +// BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs{...} +type BucketReplicationConfigurationRuleSourceSelectionCriteriaInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs struct { + // Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` + // in `destination` must be specified as well. + SseKmsEncryptedObjects BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput `pulumi:"sseKmsEncryptedObjects"` +} + +func (BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return i.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return i.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput).ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrInput is an input type that accepts BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs, BucketReplicationConfigurationRuleSourceSelectionCriteriaPtr and BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrInput` via: +// +// BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput +} + +type bucketReplicationConfigurationRuleSourceSelectionCriteriaPtrType BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs + +func BucketReplicationConfigurationRuleSourceSelectionCriteriaPtr(v *BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs) BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrInput { + return (*bucketReplicationConfigurationRuleSourceSelectionCriteriaPtrType)(v) +} + +func (*bucketReplicationConfigurationRuleSourceSelectionCriteriaPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationRuleSourceSelectionCriteriaPtrType) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return i.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationRuleSourceSelectionCriteriaPtrType) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return o.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigurationRuleSourceSelectionCriteria) *BucketReplicationConfigurationRuleSourceSelectionCriteria { + return &v + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) +} + +// Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` +// in `destination` must be specified as well. +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) SseKmsEncryptedObjects() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleSourceSelectionCriteria) *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + return v.SseKmsEncryptedObjects + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) Elem() BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleSourceSelectionCriteria) BucketReplicationConfigurationRuleSourceSelectionCriteria { + if v != nil { + return *v + } + var ret BucketReplicationConfigurationRuleSourceSelectionCriteria + return ret + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput) +} + +// Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` +// in `destination` must be specified as well. +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput) SseKmsEncryptedObjects() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleSourceSelectionCriteria) *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + if v == nil { + return nil + } + return v.SseKmsEncryptedObjects + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects struct { + // Boolean which indicates if this criteria is enabled. + Enabled bool `pulumi:"enabled"` +} + +// BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput is an input type that accepts BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs and BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput` via: +// +// BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{...} +type BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs struct { + // Boolean which indicates if this criteria is enabled. + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return i.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return i.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Background()) +} + +func (i BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput).ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx) +} + +// BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput is an input type that accepts BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs, BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtr and BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput values. +// You can construct a concrete instance of `BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput` via: +// +// BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{...} +// +// or: +// +// nil +type BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput interface { + pulumi.Input + + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput + ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput +} + +type bucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs + +func BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtr(v *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput { + return (*bucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType)(v) +} + +func (*bucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (i *bucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return i.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Background()) +} + +func (i *bucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrType) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(context.Background()) +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects) *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + return &v + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) +} + +// Boolean which indicates if this criteria is enabled. +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects) bool { + return v.Enabled + }).(pulumi.BoolOutput) +} + +type BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput struct{ *pulumi.OutputState } + +func (BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects)(nil)).Elem() +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) ToBucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutputWithContext(ctx context.Context) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput { + return o +} + +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) Elem() BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects) BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects { + if v != nil { + return *v + } + var ret BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects + return ret + }).(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput) +} + +// Boolean which indicates if this criteria is enabled. +func (o BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjects) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + +type BucketServerSideEncryptionConfiguration struct { + // A single object for server-side encryption by default configuration. (documented below) + Rule BucketServerSideEncryptionConfigurationRule `pulumi:"rule"` +} + +// BucketServerSideEncryptionConfigurationInput is an input type that accepts BucketServerSideEncryptionConfigurationArgs and BucketServerSideEncryptionConfigurationOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationInput` via: +// +// BucketServerSideEncryptionConfigurationArgs{...} +type BucketServerSideEncryptionConfigurationInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationOutput() BucketServerSideEncryptionConfigurationOutput + ToBucketServerSideEncryptionConfigurationOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationOutput +} + +type BucketServerSideEncryptionConfigurationArgs struct { + // A single object for server-side encryption by default configuration. (documented below) + Rule BucketServerSideEncryptionConfigurationRuleInput `pulumi:"rule"` +} + +func (BucketServerSideEncryptionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationArgs) ToBucketServerSideEncryptionConfigurationOutput() BucketServerSideEncryptionConfigurationOutput { + return i.ToBucketServerSideEncryptionConfigurationOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationArgs) ToBucketServerSideEncryptionConfigurationOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationOutput) +} + +func (i BucketServerSideEncryptionConfigurationArgs) ToBucketServerSideEncryptionConfigurationPtrOutput() BucketServerSideEncryptionConfigurationPtrOutput { + return i.ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationArgs) ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationOutput).ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(ctx) +} + +// BucketServerSideEncryptionConfigurationPtrInput is an input type that accepts BucketServerSideEncryptionConfigurationArgs, BucketServerSideEncryptionConfigurationPtr and BucketServerSideEncryptionConfigurationPtrOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationPtrInput` via: +// +// BucketServerSideEncryptionConfigurationArgs{...} +// +// or: +// +// nil +type BucketServerSideEncryptionConfigurationPtrInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationPtrOutput() BucketServerSideEncryptionConfigurationPtrOutput + ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationPtrOutput +} + +type bucketServerSideEncryptionConfigurationPtrType BucketServerSideEncryptionConfigurationArgs + +func BucketServerSideEncryptionConfigurationPtr(v *BucketServerSideEncryptionConfigurationArgs) BucketServerSideEncryptionConfigurationPtrInput { + return (*bucketServerSideEncryptionConfigurationPtrType)(v) +} + +func (*bucketServerSideEncryptionConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (i *bucketServerSideEncryptionConfigurationPtrType) ToBucketServerSideEncryptionConfigurationPtrOutput() BucketServerSideEncryptionConfigurationPtrOutput { + return i.ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *bucketServerSideEncryptionConfigurationPtrType) ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationPtrOutput) +} + +type BucketServerSideEncryptionConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationOutput) ToBucketServerSideEncryptionConfigurationOutput() BucketServerSideEncryptionConfigurationOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationOutput) ToBucketServerSideEncryptionConfigurationOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationOutput) ToBucketServerSideEncryptionConfigurationPtrOutput() BucketServerSideEncryptionConfigurationPtrOutput { + return o.ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (o BucketServerSideEncryptionConfigurationOutput) ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketServerSideEncryptionConfiguration) *BucketServerSideEncryptionConfiguration { + return &v + }).(BucketServerSideEncryptionConfigurationPtrOutput) +} + +// A single object for server-side encryption by default configuration. (documented below) +func (o BucketServerSideEncryptionConfigurationOutput) Rule() BucketServerSideEncryptionConfigurationRuleOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfiguration) BucketServerSideEncryptionConfigurationRule { + return v.Rule + }).(BucketServerSideEncryptionConfigurationRuleOutput) +} + +type BucketServerSideEncryptionConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationPtrOutput) ToBucketServerSideEncryptionConfigurationPtrOutput() BucketServerSideEncryptionConfigurationPtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationPtrOutput) ToBucketServerSideEncryptionConfigurationPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationPtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationPtrOutput) Elem() BucketServerSideEncryptionConfigurationOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfiguration) BucketServerSideEncryptionConfiguration { + if v != nil { + return *v + } + var ret BucketServerSideEncryptionConfiguration + return ret + }).(BucketServerSideEncryptionConfigurationOutput) +} + +// A single object for server-side encryption by default configuration. (documented below) +func (o BucketServerSideEncryptionConfigurationPtrOutput) Rule() BucketServerSideEncryptionConfigurationRulePtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfiguration) *BucketServerSideEncryptionConfigurationRule { + if v == nil { + return nil + } + return &v.Rule + }).(BucketServerSideEncryptionConfigurationRulePtrOutput) +} + +type BucketServerSideEncryptionConfigurationRule struct { + // A single object for setting server-side encryption by default. (documented below) + ApplyServerSideEncryptionByDefault BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault `pulumi:"applyServerSideEncryptionByDefault"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` +} + +// BucketServerSideEncryptionConfigurationRuleInput is an input type that accepts BucketServerSideEncryptionConfigurationRuleArgs and BucketServerSideEncryptionConfigurationRuleOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationRuleInput` via: +// +// BucketServerSideEncryptionConfigurationRuleArgs{...} +type BucketServerSideEncryptionConfigurationRuleInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationRuleOutput() BucketServerSideEncryptionConfigurationRuleOutput + ToBucketServerSideEncryptionConfigurationRuleOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationRuleOutput +} + +type BucketServerSideEncryptionConfigurationRuleArgs struct { + // A single object for setting server-side encryption by default. (documented below) + ApplyServerSideEncryptionByDefault BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput `pulumi:"applyServerSideEncryptionByDefault"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput `pulumi:"bucketKeyEnabled"` +} + +func (BucketServerSideEncryptionConfigurationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationRuleArgs) ToBucketServerSideEncryptionConfigurationRuleOutput() BucketServerSideEncryptionConfigurationRuleOutput { + return i.ToBucketServerSideEncryptionConfigurationRuleOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationRuleArgs) ToBucketServerSideEncryptionConfigurationRuleOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationRuleOutput) +} + +func (i BucketServerSideEncryptionConfigurationRuleArgs) ToBucketServerSideEncryptionConfigurationRulePtrOutput() BucketServerSideEncryptionConfigurationRulePtrOutput { + return i.ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationRuleArgs) ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationRuleOutput).ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(ctx) +} + +// BucketServerSideEncryptionConfigurationRulePtrInput is an input type that accepts BucketServerSideEncryptionConfigurationRuleArgs, BucketServerSideEncryptionConfigurationRulePtr and BucketServerSideEncryptionConfigurationRulePtrOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationRulePtrInput` via: +// +// BucketServerSideEncryptionConfigurationRuleArgs{...} +// +// or: +// +// nil +type BucketServerSideEncryptionConfigurationRulePtrInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationRulePtrOutput() BucketServerSideEncryptionConfigurationRulePtrOutput + ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationRulePtrOutput +} + +type bucketServerSideEncryptionConfigurationRulePtrType BucketServerSideEncryptionConfigurationRuleArgs + +func BucketServerSideEncryptionConfigurationRulePtr(v *BucketServerSideEncryptionConfigurationRuleArgs) BucketServerSideEncryptionConfigurationRulePtrInput { + return (*bucketServerSideEncryptionConfigurationRulePtrType)(v) +} + +func (*bucketServerSideEncryptionConfigurationRulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (i *bucketServerSideEncryptionConfigurationRulePtrType) ToBucketServerSideEncryptionConfigurationRulePtrOutput() BucketServerSideEncryptionConfigurationRulePtrOutput { + return i.ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(context.Background()) +} + +func (i *bucketServerSideEncryptionConfigurationRulePtrType) ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationRulePtrOutput) +} + +type BucketServerSideEncryptionConfigurationRuleOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationRuleOutput) ToBucketServerSideEncryptionConfigurationRuleOutput() BucketServerSideEncryptionConfigurationRuleOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRuleOutput) ToBucketServerSideEncryptionConfigurationRuleOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRuleOutput) ToBucketServerSideEncryptionConfigurationRulePtrOutput() BucketServerSideEncryptionConfigurationRulePtrOutput { + return o.ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(context.Background()) +} + +func (o BucketServerSideEncryptionConfigurationRuleOutput) ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketServerSideEncryptionConfigurationRule) *BucketServerSideEncryptionConfigurationRule { + return &v + }).(BucketServerSideEncryptionConfigurationRulePtrOutput) +} + +// A single object for setting server-side encryption by default. (documented below) +func (o BucketServerSideEncryptionConfigurationRuleOutput) ApplyServerSideEncryptionByDefault() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationRule) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault { + return v.ApplyServerSideEncryptionByDefault + }).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) +} + +// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o BucketServerSideEncryptionConfigurationRuleOutput) BucketKeyEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationRule) *bool { return v.BucketKeyEnabled }).(pulumi.BoolPtrOutput) +} + +type BucketServerSideEncryptionConfigurationRulePtrOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationRulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationRulePtrOutput) ToBucketServerSideEncryptionConfigurationRulePtrOutput() BucketServerSideEncryptionConfigurationRulePtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRulePtrOutput) ToBucketServerSideEncryptionConfigurationRulePtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRulePtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRulePtrOutput) Elem() BucketServerSideEncryptionConfigurationRuleOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationRule) BucketServerSideEncryptionConfigurationRule { + if v != nil { + return *v + } + var ret BucketServerSideEncryptionConfigurationRule + return ret + }).(BucketServerSideEncryptionConfigurationRuleOutput) +} + +// A single object for setting server-side encryption by default. (documented below) +func (o BucketServerSideEncryptionConfigurationRulePtrOutput) ApplyServerSideEncryptionByDefault() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationRule) *BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault { + if v == nil { + return nil + } + return &v.ApplyServerSideEncryptionByDefault + }).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) +} + +// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o BucketServerSideEncryptionConfigurationRulePtrOutput) BucketKeyEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationRule) *bool { + if v == nil { + return nil + } + return v.BucketKeyEnabled + }).(pulumi.BoolPtrOutput) +} + +type BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault struct { + // The AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. + KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"` + // The server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` + SseAlgorithm string `pulumi:"sseAlgorithm"` +} + +// BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput is an input type that accepts BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs and BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput` via: +// +// BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{...} +type BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput + ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput +} + +type BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs struct { + // The AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. + KmsMasterKeyId pulumi.StringPtrInput `pulumi:"kmsMasterKeyId"` + // The server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` + SseAlgorithm pulumi.StringInput `pulumi:"sseAlgorithm"` +} + +func (BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return i.ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) +} + +func (i BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return i.ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput).ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx) +} + +// BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrInput is an input type that accepts BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs, BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtr and BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrInput` via: +// +// BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{...} +// +// or: +// +// nil +type BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput + ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput +} + +type bucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrType BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs + +func BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtr(v *BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrInput { + return (*bucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrType)(v) +} + +func (*bucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (i *bucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrType) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return i.ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Background()) +} + +func (i *bucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrType) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) +} + +type BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return o.ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Background()) +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) *BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault { + return &v + }).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) +} + +// The AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) KmsMasterKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) *string { + return v.KmsMasterKeyId + }).(pulumi.StringPtrOutput) +} + +// The server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) SseAlgorithm() pulumi.StringOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) string { + return v.SseAlgorithm + }).(pulumi.StringOutput) +} + +type BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) ToBucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) Elem() BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault { + if v != nil { + return *v + } + var ret BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault + return ret + }).(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) +} + +// The AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) KmsMasterKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) *string { + if v == nil { + return nil + } + return v.KmsMasterKeyId + }).(pulumi.StringPtrOutput) +} + +// The server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` +func (o BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput) SseAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) *string { + if v == nil { + return nil + } + return &v.SseAlgorithm + }).(pulumi.StringPtrOutput) +} + +type BucketServerSideEncryptionConfigurationV2Rule struct { + // Single object for setting server-side encryption by default. See below. + ApplyServerSideEncryptionByDefault *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault `pulumi:"applyServerSideEncryptionByDefault"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` +} + +// BucketServerSideEncryptionConfigurationV2RuleInput is an input type that accepts BucketServerSideEncryptionConfigurationV2RuleArgs and BucketServerSideEncryptionConfigurationV2RuleOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationV2RuleInput` via: +// +// BucketServerSideEncryptionConfigurationV2RuleArgs{...} +type BucketServerSideEncryptionConfigurationV2RuleInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2RuleOutput() BucketServerSideEncryptionConfigurationV2RuleOutput + ToBucketServerSideEncryptionConfigurationV2RuleOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationV2RuleOutput +} + +type BucketServerSideEncryptionConfigurationV2RuleArgs struct { + // Single object for setting server-side encryption by default. See below. + ApplyServerSideEncryptionByDefault BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrInput `pulumi:"applyServerSideEncryptionByDefault"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput `pulumi:"bucketKeyEnabled"` +} + +func (BucketServerSideEncryptionConfigurationV2RuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2Rule)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationV2RuleArgs) ToBucketServerSideEncryptionConfigurationV2RuleOutput() BucketServerSideEncryptionConfigurationV2RuleOutput { + return i.ToBucketServerSideEncryptionConfigurationV2RuleOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationV2RuleArgs) ToBucketServerSideEncryptionConfigurationV2RuleOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2RuleOutput) +} + +// BucketServerSideEncryptionConfigurationV2RuleArrayInput is an input type that accepts BucketServerSideEncryptionConfigurationV2RuleArray and BucketServerSideEncryptionConfigurationV2RuleArrayOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationV2RuleArrayInput` via: +// +// BucketServerSideEncryptionConfigurationV2RuleArray{ BucketServerSideEncryptionConfigurationV2RuleArgs{...} } +type BucketServerSideEncryptionConfigurationV2RuleArrayInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2RuleArrayOutput() BucketServerSideEncryptionConfigurationV2RuleArrayOutput + ToBucketServerSideEncryptionConfigurationV2RuleArrayOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationV2RuleArrayOutput +} + +type BucketServerSideEncryptionConfigurationV2RuleArray []BucketServerSideEncryptionConfigurationV2RuleInput + +func (BucketServerSideEncryptionConfigurationV2RuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketServerSideEncryptionConfigurationV2Rule)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationV2RuleArray) ToBucketServerSideEncryptionConfigurationV2RuleArrayOutput() BucketServerSideEncryptionConfigurationV2RuleArrayOutput { + return i.ToBucketServerSideEncryptionConfigurationV2RuleArrayOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationV2RuleArray) ToBucketServerSideEncryptionConfigurationV2RuleArrayOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2RuleArrayOutput) +} + +type BucketServerSideEncryptionConfigurationV2RuleOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2RuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2Rule)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2RuleOutput) ToBucketServerSideEncryptionConfigurationV2RuleOutput() BucketServerSideEncryptionConfigurationV2RuleOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleOutput) ToBucketServerSideEncryptionConfigurationV2RuleOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleOutput { + return o +} + +// Single object for setting server-side encryption by default. See below. +func (o BucketServerSideEncryptionConfigurationV2RuleOutput) ApplyServerSideEncryptionByDefault() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationV2Rule) *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault { + return v.ApplyServerSideEncryptionByDefault + }).(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) +} + +// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o BucketServerSideEncryptionConfigurationV2RuleOutput) BucketKeyEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationV2Rule) *bool { return v.BucketKeyEnabled }).(pulumi.BoolPtrOutput) +} + +type BucketServerSideEncryptionConfigurationV2RuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2RuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketServerSideEncryptionConfigurationV2Rule)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2RuleArrayOutput) ToBucketServerSideEncryptionConfigurationV2RuleArrayOutput() BucketServerSideEncryptionConfigurationV2RuleArrayOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleArrayOutput) ToBucketServerSideEncryptionConfigurationV2RuleArrayOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleArrayOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleArrayOutput) Index(i pulumi.IntInput) BucketServerSideEncryptionConfigurationV2RuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketServerSideEncryptionConfigurationV2Rule { + return vs[0].([]BucketServerSideEncryptionConfigurationV2Rule)[vs[1].(int)] + }).(BucketServerSideEncryptionConfigurationV2RuleOutput) +} + +type BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault struct { + // AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. + KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"` + // Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`, and `aws:kms:dsse` + SseAlgorithm string `pulumi:"sseAlgorithm"` +} + +// BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultInput is an input type that accepts BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs and BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultInput` via: +// +// BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs{...} +type BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput + ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput +} + +type BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs struct { + // AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. + KmsMasterKeyId pulumi.StringPtrInput `pulumi:"kmsMasterKeyId"` + // Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`, and `aws:kms:dsse` + SseAlgorithm pulumi.StringInput `pulumi:"sseAlgorithm"` +} + +func (BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (i BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput { + return i.ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) +} + +func (i BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return i.ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Background()) +} + +func (i BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput).ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx) +} + +// BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrInput is an input type that accepts BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs, BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtr and BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput values. +// You can construct a concrete instance of `BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrInput` via: +// +// BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs{...} +// +// or: +// +// nil +type BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrInput interface { + pulumi.Input + + ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput + ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput +} + +type bucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrType BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs + +func BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtr(v *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrInput { + return (*bucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrType)(v) +} + +func (*bucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (i *bucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrType) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return i.ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Background()) +} + +func (i *bucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrType) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) +} + +type BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return o.ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(context.Background()) +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault) *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault { + return &v + }).(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) +} + +// AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) KmsMasterKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault) *string { + return v.KmsMasterKeyId + }).(pulumi.StringPtrOutput) +} + +// Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`, and `aws:kms:dsse` +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) SseAlgorithm() pulumi.StringOutput { + return o.ApplyT(func(v BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault) string { + return v.SseAlgorithm + }).(pulumi.StringOutput) +} + +type BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput struct{ *pulumi.OutputState } + +func (BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) ToBucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutputWithContext(ctx context.Context) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput { + return o +} + +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) Elem() BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault) BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault { + if v != nil { + return *v + } + var ret BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault + return ret + }).(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput) +} + +// AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) KmsMasterKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault) *string { + if v == nil { + return nil + } + return v.KmsMasterKeyId + }).(pulumi.StringPtrOutput) +} + +// Server-side encryption algorithm to use. Valid values are `AES256`, `aws:kms`, and `aws:kms:dsse` +func (o BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput) SseAlgorithm() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefault) *string { + if v == nil { + return nil + } + return &v.SseAlgorithm + }).(pulumi.StringPtrOutput) +} + +type BucketV2CorsRule struct { + // List of headers allowed. + AllowedHeaders []string `pulumi:"allowedHeaders"` + // One or more HTTP methods that you allow the origin to execute. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`. + AllowedMethods []string `pulumi:"allowedMethods"` + // One or more origins you want customers to be able to access the bucket from. + AllowedOrigins []string `pulumi:"allowedOrigins"` + // One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Specifies time in seconds that browser can cache the response for a preflight request. + MaxAgeSeconds *int `pulumi:"maxAgeSeconds"` +} + +// BucketV2CorsRuleInput is an input type that accepts BucketV2CorsRuleArgs and BucketV2CorsRuleOutput values. +// You can construct a concrete instance of `BucketV2CorsRuleInput` via: +// +// BucketV2CorsRuleArgs{...} +type BucketV2CorsRuleInput interface { + pulumi.Input + + ToBucketV2CorsRuleOutput() BucketV2CorsRuleOutput + ToBucketV2CorsRuleOutputWithContext(context.Context) BucketV2CorsRuleOutput +} + +type BucketV2CorsRuleArgs struct { + // List of headers allowed. + AllowedHeaders pulumi.StringArrayInput `pulumi:"allowedHeaders"` + // One or more HTTP methods that you allow the origin to execute. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`. + AllowedMethods pulumi.StringArrayInput `pulumi:"allowedMethods"` + // One or more origins you want customers to be able to access the bucket from. + AllowedOrigins pulumi.StringArrayInput `pulumi:"allowedOrigins"` + // One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Specifies time in seconds that browser can cache the response for a preflight request. + MaxAgeSeconds pulumi.IntPtrInput `pulumi:"maxAgeSeconds"` +} + +func (BucketV2CorsRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2CorsRule)(nil)).Elem() +} + +func (i BucketV2CorsRuleArgs) ToBucketV2CorsRuleOutput() BucketV2CorsRuleOutput { + return i.ToBucketV2CorsRuleOutputWithContext(context.Background()) +} + +func (i BucketV2CorsRuleArgs) ToBucketV2CorsRuleOutputWithContext(ctx context.Context) BucketV2CorsRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2CorsRuleOutput) +} + +// BucketV2CorsRuleArrayInput is an input type that accepts BucketV2CorsRuleArray and BucketV2CorsRuleArrayOutput values. +// You can construct a concrete instance of `BucketV2CorsRuleArrayInput` via: +// +// BucketV2CorsRuleArray{ BucketV2CorsRuleArgs{...} } +type BucketV2CorsRuleArrayInput interface { + pulumi.Input + + ToBucketV2CorsRuleArrayOutput() BucketV2CorsRuleArrayOutput + ToBucketV2CorsRuleArrayOutputWithContext(context.Context) BucketV2CorsRuleArrayOutput +} + +type BucketV2CorsRuleArray []BucketV2CorsRuleInput + +func (BucketV2CorsRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2CorsRule)(nil)).Elem() +} + +func (i BucketV2CorsRuleArray) ToBucketV2CorsRuleArrayOutput() BucketV2CorsRuleArrayOutput { + return i.ToBucketV2CorsRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketV2CorsRuleArray) ToBucketV2CorsRuleArrayOutputWithContext(ctx context.Context) BucketV2CorsRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2CorsRuleArrayOutput) +} + +type BucketV2CorsRuleOutput struct{ *pulumi.OutputState } + +func (BucketV2CorsRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2CorsRule)(nil)).Elem() +} + +func (o BucketV2CorsRuleOutput) ToBucketV2CorsRuleOutput() BucketV2CorsRuleOutput { + return o +} + +func (o BucketV2CorsRuleOutput) ToBucketV2CorsRuleOutputWithContext(ctx context.Context) BucketV2CorsRuleOutput { + return o +} + +// List of headers allowed. +func (o BucketV2CorsRuleOutput) AllowedHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketV2CorsRule) []string { return v.AllowedHeaders }).(pulumi.StringArrayOutput) +} + +// One or more HTTP methods that you allow the origin to execute. Can be `GET`, `PUT`, `POST`, `DELETE` or `HEAD`. +func (o BucketV2CorsRuleOutput) AllowedMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketV2CorsRule) []string { return v.AllowedMethods }).(pulumi.StringArrayOutput) +} + +// One or more origins you want customers to be able to access the bucket from. +func (o BucketV2CorsRuleOutput) AllowedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketV2CorsRule) []string { return v.AllowedOrigins }).(pulumi.StringArrayOutput) +} + +// One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript `XMLHttpRequest` object). +func (o BucketV2CorsRuleOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketV2CorsRule) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +} + +// Specifies time in seconds that browser can cache the response for a preflight request. +func (o BucketV2CorsRuleOutput) MaxAgeSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2CorsRule) *int { return v.MaxAgeSeconds }).(pulumi.IntPtrOutput) +} + +type BucketV2CorsRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2CorsRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2CorsRule)(nil)).Elem() +} + +func (o BucketV2CorsRuleArrayOutput) ToBucketV2CorsRuleArrayOutput() BucketV2CorsRuleArrayOutput { + return o +} + +func (o BucketV2CorsRuleArrayOutput) ToBucketV2CorsRuleArrayOutputWithContext(ctx context.Context) BucketV2CorsRuleArrayOutput { + return o +} + +func (o BucketV2CorsRuleArrayOutput) Index(i pulumi.IntInput) BucketV2CorsRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2CorsRule { + return vs[0].([]BucketV2CorsRule)[vs[1].(int)] + }).(BucketV2CorsRuleOutput) +} + +type BucketV2Grant struct { + // Canonical user id to grant for. Used only when `type` is `CanonicalUser`. + Id *string `pulumi:"id"` + // List of permissions to apply for grantee. Valid values are `READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. + Permissions []string `pulumi:"permissions"` + // Type of grantee to apply for. Valid values are `CanonicalUser` and `Group`. `AmazonCustomerByEmail` is not supported. + Type string `pulumi:"type"` + // Uri address to grant for. Used only when `type` is `Group`. + Uri *string `pulumi:"uri"` +} + +// BucketV2GrantInput is an input type that accepts BucketV2GrantArgs and BucketV2GrantOutput values. +// You can construct a concrete instance of `BucketV2GrantInput` via: +// +// BucketV2GrantArgs{...} +type BucketV2GrantInput interface { + pulumi.Input + + ToBucketV2GrantOutput() BucketV2GrantOutput + ToBucketV2GrantOutputWithContext(context.Context) BucketV2GrantOutput +} + +type BucketV2GrantArgs struct { + // Canonical user id to grant for. Used only when `type` is `CanonicalUser`. + Id pulumi.StringPtrInput `pulumi:"id"` + // List of permissions to apply for grantee. Valid values are `READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. + Permissions pulumi.StringArrayInput `pulumi:"permissions"` + // Type of grantee to apply for. Valid values are `CanonicalUser` and `Group`. `AmazonCustomerByEmail` is not supported. + Type pulumi.StringInput `pulumi:"type"` + // Uri address to grant for. Used only when `type` is `Group`. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (BucketV2GrantArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Grant)(nil)).Elem() +} + +func (i BucketV2GrantArgs) ToBucketV2GrantOutput() BucketV2GrantOutput { + return i.ToBucketV2GrantOutputWithContext(context.Background()) +} + +func (i BucketV2GrantArgs) ToBucketV2GrantOutputWithContext(ctx context.Context) BucketV2GrantOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2GrantOutput) +} + +// BucketV2GrantArrayInput is an input type that accepts BucketV2GrantArray and BucketV2GrantArrayOutput values. +// You can construct a concrete instance of `BucketV2GrantArrayInput` via: +// +// BucketV2GrantArray{ BucketV2GrantArgs{...} } +type BucketV2GrantArrayInput interface { + pulumi.Input + + ToBucketV2GrantArrayOutput() BucketV2GrantArrayOutput + ToBucketV2GrantArrayOutputWithContext(context.Context) BucketV2GrantArrayOutput +} + +type BucketV2GrantArray []BucketV2GrantInput + +func (BucketV2GrantArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Grant)(nil)).Elem() +} + +func (i BucketV2GrantArray) ToBucketV2GrantArrayOutput() BucketV2GrantArrayOutput { + return i.ToBucketV2GrantArrayOutputWithContext(context.Background()) +} + +func (i BucketV2GrantArray) ToBucketV2GrantArrayOutputWithContext(ctx context.Context) BucketV2GrantArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2GrantArrayOutput) +} + +type BucketV2GrantOutput struct{ *pulumi.OutputState } + +func (BucketV2GrantOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Grant)(nil)).Elem() +} + +func (o BucketV2GrantOutput) ToBucketV2GrantOutput() BucketV2GrantOutput { + return o +} + +func (o BucketV2GrantOutput) ToBucketV2GrantOutputWithContext(ctx context.Context) BucketV2GrantOutput { + return o +} + +// Canonical user id to grant for. Used only when `type` is `CanonicalUser`. +func (o BucketV2GrantOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Grant) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// List of permissions to apply for grantee. Valid values are `READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. +func (o BucketV2GrantOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v BucketV2Grant) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Type of grantee to apply for. Valid values are `CanonicalUser` and `Group`. `AmazonCustomerByEmail` is not supported. +func (o BucketV2GrantOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2Grant) string { return v.Type }).(pulumi.StringOutput) +} + +// Uri address to grant for. Used only when `type` is `Group`. +func (o BucketV2GrantOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Grant) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type BucketV2GrantArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2GrantArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Grant)(nil)).Elem() +} + +func (o BucketV2GrantArrayOutput) ToBucketV2GrantArrayOutput() BucketV2GrantArrayOutput { + return o +} + +func (o BucketV2GrantArrayOutput) ToBucketV2GrantArrayOutputWithContext(ctx context.Context) BucketV2GrantArrayOutput { + return o +} + +func (o BucketV2GrantArrayOutput) Index(i pulumi.IntInput) BucketV2GrantOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2Grant { + return vs[0].([]BucketV2Grant)[vs[1].(int)] + }).(BucketV2GrantOutput) +} + +type BucketV2LifecycleRule struct { + // Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. + AbortIncompleteMultipartUploadDays *int `pulumi:"abortIncompleteMultipartUploadDays"` + // Specifies lifecycle rule status. + Enabled bool `pulumi:"enabled"` + // Specifies a period in the object's expire. See Expiration below for details. + Expirations []BucketV2LifecycleRuleExpiration `pulumi:"expirations"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id *string `pulumi:"id"` + // Specifies when noncurrent object versions expire. See Noncurrent Version Expiration below for details. + NoncurrentVersionExpirations []BucketV2LifecycleRuleNoncurrentVersionExpiration `pulumi:"noncurrentVersionExpirations"` + // Specifies when noncurrent object versions transitions. See Noncurrent Version Transition below for details. + NoncurrentVersionTransitions []BucketV2LifecycleRuleNoncurrentVersionTransition `pulumi:"noncurrentVersionTransitions"` + // Object key prefix identifying one or more objects to which the rule applies. + Prefix *string `pulumi:"prefix"` + // Specifies object tags key and value. + Tags map[string]string `pulumi:"tags"` + // Specifies a period in the object's transitions. See Transition below for details. + Transitions []BucketV2LifecycleRuleTransition `pulumi:"transitions"` +} + +// BucketV2LifecycleRuleInput is an input type that accepts BucketV2LifecycleRuleArgs and BucketV2LifecycleRuleOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleInput` via: +// +// BucketV2LifecycleRuleArgs{...} +type BucketV2LifecycleRuleInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleOutput() BucketV2LifecycleRuleOutput + ToBucketV2LifecycleRuleOutputWithContext(context.Context) BucketV2LifecycleRuleOutput +} + +type BucketV2LifecycleRuleArgs struct { + // Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. + AbortIncompleteMultipartUploadDays pulumi.IntPtrInput `pulumi:"abortIncompleteMultipartUploadDays"` + // Specifies lifecycle rule status. + Enabled pulumi.BoolInput `pulumi:"enabled"` + // Specifies a period in the object's expire. See Expiration below for details. + Expirations BucketV2LifecycleRuleExpirationArrayInput `pulumi:"expirations"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id pulumi.StringPtrInput `pulumi:"id"` + // Specifies when noncurrent object versions expire. See Noncurrent Version Expiration below for details. + NoncurrentVersionExpirations BucketV2LifecycleRuleNoncurrentVersionExpirationArrayInput `pulumi:"noncurrentVersionExpirations"` + // Specifies when noncurrent object versions transitions. See Noncurrent Version Transition below for details. + NoncurrentVersionTransitions BucketV2LifecycleRuleNoncurrentVersionTransitionArrayInput `pulumi:"noncurrentVersionTransitions"` + // Object key prefix identifying one or more objects to which the rule applies. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Specifies object tags key and value. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Specifies a period in the object's transitions. See Transition below for details. + Transitions BucketV2LifecycleRuleTransitionArrayInput `pulumi:"transitions"` +} + +func (BucketV2LifecycleRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRule)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleArgs) ToBucketV2LifecycleRuleOutput() BucketV2LifecycleRuleOutput { + return i.ToBucketV2LifecycleRuleOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleArgs) ToBucketV2LifecycleRuleOutputWithContext(ctx context.Context) BucketV2LifecycleRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleOutput) +} + +// BucketV2LifecycleRuleArrayInput is an input type that accepts BucketV2LifecycleRuleArray and BucketV2LifecycleRuleArrayOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleArrayInput` via: +// +// BucketV2LifecycleRuleArray{ BucketV2LifecycleRuleArgs{...} } +type BucketV2LifecycleRuleArrayInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleArrayOutput() BucketV2LifecycleRuleArrayOutput + ToBucketV2LifecycleRuleArrayOutputWithContext(context.Context) BucketV2LifecycleRuleArrayOutput +} + +type BucketV2LifecycleRuleArray []BucketV2LifecycleRuleInput + +func (BucketV2LifecycleRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRule)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleArray) ToBucketV2LifecycleRuleArrayOutput() BucketV2LifecycleRuleArrayOutput { + return i.ToBucketV2LifecycleRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleArray) ToBucketV2LifecycleRuleArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleArrayOutput) +} + +type BucketV2LifecycleRuleOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRule)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleOutput) ToBucketV2LifecycleRuleOutput() BucketV2LifecycleRuleOutput { + return o +} + +func (o BucketV2LifecycleRuleOutput) ToBucketV2LifecycleRuleOutputWithContext(ctx context.Context) BucketV2LifecycleRuleOutput { + return o +} + +// Specifies the number of days after initiating a multipart upload when the multipart upload must be completed. +func (o BucketV2LifecycleRuleOutput) AbortIncompleteMultipartUploadDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) *int { return v.AbortIncompleteMultipartUploadDays }).(pulumi.IntPtrOutput) +} + +// Specifies lifecycle rule status. +func (o BucketV2LifecycleRuleOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// Specifies a period in the object's expire. See Expiration below for details. +func (o BucketV2LifecycleRuleOutput) Expirations() BucketV2LifecycleRuleExpirationArrayOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) []BucketV2LifecycleRuleExpiration { return v.Expirations }).(BucketV2LifecycleRuleExpirationArrayOutput) +} + +// Unique identifier for the rule. Must be less than or equal to 255 characters in length. +func (o BucketV2LifecycleRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Specifies when noncurrent object versions expire. See Noncurrent Version Expiration below for details. +func (o BucketV2LifecycleRuleOutput) NoncurrentVersionExpirations() BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) []BucketV2LifecycleRuleNoncurrentVersionExpiration { + return v.NoncurrentVersionExpirations + }).(BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput) +} + +// Specifies when noncurrent object versions transitions. See Noncurrent Version Transition below for details. +func (o BucketV2LifecycleRuleOutput) NoncurrentVersionTransitions() BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) []BucketV2LifecycleRuleNoncurrentVersionTransition { + return v.NoncurrentVersionTransitions + }).(BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput) +} + +// Object key prefix identifying one or more objects to which the rule applies. +func (o BucketV2LifecycleRuleOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Specifies object tags key and value. +func (o BucketV2LifecycleRuleOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Specifies a period in the object's transitions. See Transition below for details. +func (o BucketV2LifecycleRuleOutput) Transitions() BucketV2LifecycleRuleTransitionArrayOutput { + return o.ApplyT(func(v BucketV2LifecycleRule) []BucketV2LifecycleRuleTransition { return v.Transitions }).(BucketV2LifecycleRuleTransitionArrayOutput) +} + +type BucketV2LifecycleRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRule)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleArrayOutput) ToBucketV2LifecycleRuleArrayOutput() BucketV2LifecycleRuleArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleArrayOutput) ToBucketV2LifecycleRuleArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleArrayOutput) Index(i pulumi.IntInput) BucketV2LifecycleRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2LifecycleRule { + return vs[0].([]BucketV2LifecycleRule)[vs[1].(int)] + }).(BucketV2LifecycleRuleOutput) +} + +type BucketV2LifecycleRuleExpiration struct { + // Specifies the date after which you want the corresponding action to take effect. + Date *string `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *int `pulumi:"days"` + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. + ExpiredObjectDeleteMarker *bool `pulumi:"expiredObjectDeleteMarker"` +} + +// BucketV2LifecycleRuleExpirationInput is an input type that accepts BucketV2LifecycleRuleExpirationArgs and BucketV2LifecycleRuleExpirationOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleExpirationInput` via: +// +// BucketV2LifecycleRuleExpirationArgs{...} +type BucketV2LifecycleRuleExpirationInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleExpirationOutput() BucketV2LifecycleRuleExpirationOutput + ToBucketV2LifecycleRuleExpirationOutputWithContext(context.Context) BucketV2LifecycleRuleExpirationOutput +} + +type BucketV2LifecycleRuleExpirationArgs struct { + // Specifies the date after which you want the corresponding action to take effect. + Date pulumi.StringPtrInput `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days pulumi.IntPtrInput `pulumi:"days"` + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. + ExpiredObjectDeleteMarker pulumi.BoolPtrInput `pulumi:"expiredObjectDeleteMarker"` +} + +func (BucketV2LifecycleRuleExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleExpiration)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleExpirationArgs) ToBucketV2LifecycleRuleExpirationOutput() BucketV2LifecycleRuleExpirationOutput { + return i.ToBucketV2LifecycleRuleExpirationOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleExpirationArgs) ToBucketV2LifecycleRuleExpirationOutputWithContext(ctx context.Context) BucketV2LifecycleRuleExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleExpirationOutput) +} + +// BucketV2LifecycleRuleExpirationArrayInput is an input type that accepts BucketV2LifecycleRuleExpirationArray and BucketV2LifecycleRuleExpirationArrayOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleExpirationArrayInput` via: +// +// BucketV2LifecycleRuleExpirationArray{ BucketV2LifecycleRuleExpirationArgs{...} } +type BucketV2LifecycleRuleExpirationArrayInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleExpirationArrayOutput() BucketV2LifecycleRuleExpirationArrayOutput + ToBucketV2LifecycleRuleExpirationArrayOutputWithContext(context.Context) BucketV2LifecycleRuleExpirationArrayOutput +} + +type BucketV2LifecycleRuleExpirationArray []BucketV2LifecycleRuleExpirationInput + +func (BucketV2LifecycleRuleExpirationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleExpiration)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleExpirationArray) ToBucketV2LifecycleRuleExpirationArrayOutput() BucketV2LifecycleRuleExpirationArrayOutput { + return i.ToBucketV2LifecycleRuleExpirationArrayOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleExpirationArray) ToBucketV2LifecycleRuleExpirationArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleExpirationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleExpirationArrayOutput) +} + +type BucketV2LifecycleRuleExpirationOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleExpiration)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleExpirationOutput) ToBucketV2LifecycleRuleExpirationOutput() BucketV2LifecycleRuleExpirationOutput { + return o +} + +func (o BucketV2LifecycleRuleExpirationOutput) ToBucketV2LifecycleRuleExpirationOutputWithContext(ctx context.Context) BucketV2LifecycleRuleExpirationOutput { + return o +} + +// Specifies the date after which you want the corresponding action to take effect. +func (o BucketV2LifecycleRuleExpirationOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleExpiration) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days after object creation when the specific rule action takes effect. +func (o BucketV2LifecycleRuleExpirationOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleExpiration) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// On a versioned bucket (versioning-enabled or versioning-suspended bucket), you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. This cannot be specified with Days or Date in a Lifecycle Expiration Policy. +func (o BucketV2LifecycleRuleExpirationOutput) ExpiredObjectDeleteMarker() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleExpiration) *bool { return v.ExpiredObjectDeleteMarker }).(pulumi.BoolPtrOutput) +} + +type BucketV2LifecycleRuleExpirationArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleExpirationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleExpiration)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleExpirationArrayOutput) ToBucketV2LifecycleRuleExpirationArrayOutput() BucketV2LifecycleRuleExpirationArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleExpirationArrayOutput) ToBucketV2LifecycleRuleExpirationArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleExpirationArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleExpirationArrayOutput) Index(i pulumi.IntInput) BucketV2LifecycleRuleExpirationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2LifecycleRuleExpiration { + return vs[0].([]BucketV2LifecycleRuleExpiration)[vs[1].(int)] + }).(BucketV2LifecycleRuleExpirationOutput) +} + +type BucketV2LifecycleRuleNoncurrentVersionExpiration struct { + // Specifies the number of days noncurrent object versions expire. + Days *int `pulumi:"days"` +} + +// BucketV2LifecycleRuleNoncurrentVersionExpirationInput is an input type that accepts BucketV2LifecycleRuleNoncurrentVersionExpirationArgs and BucketV2LifecycleRuleNoncurrentVersionExpirationOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleNoncurrentVersionExpirationInput` via: +// +// BucketV2LifecycleRuleNoncurrentVersionExpirationArgs{...} +type BucketV2LifecycleRuleNoncurrentVersionExpirationInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutput() BucketV2LifecycleRuleNoncurrentVersionExpirationOutput + ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutputWithContext(context.Context) BucketV2LifecycleRuleNoncurrentVersionExpirationOutput +} + +type BucketV2LifecycleRuleNoncurrentVersionExpirationArgs struct { + // Specifies the number of days noncurrent object versions expire. + Days pulumi.IntPtrInput `pulumi:"days"` +} + +func (BucketV2LifecycleRuleNoncurrentVersionExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleNoncurrentVersionExpirationArgs) ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutput() BucketV2LifecycleRuleNoncurrentVersionExpirationOutput { + return i.ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleNoncurrentVersionExpirationArgs) ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleNoncurrentVersionExpirationOutput) +} + +// BucketV2LifecycleRuleNoncurrentVersionExpirationArrayInput is an input type that accepts BucketV2LifecycleRuleNoncurrentVersionExpirationArray and BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleNoncurrentVersionExpirationArrayInput` via: +// +// BucketV2LifecycleRuleNoncurrentVersionExpirationArray{ BucketV2LifecycleRuleNoncurrentVersionExpirationArgs{...} } +type BucketV2LifecycleRuleNoncurrentVersionExpirationArrayInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput() BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput + ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutputWithContext(context.Context) BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput +} + +type BucketV2LifecycleRuleNoncurrentVersionExpirationArray []BucketV2LifecycleRuleNoncurrentVersionExpirationInput + +func (BucketV2LifecycleRuleNoncurrentVersionExpirationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleNoncurrentVersionExpirationArray) ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput() BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput { + return i.ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleNoncurrentVersionExpirationArray) ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput) +} + +type BucketV2LifecycleRuleNoncurrentVersionExpirationOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleNoncurrentVersionExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleNoncurrentVersionExpirationOutput) ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutput() BucketV2LifecycleRuleNoncurrentVersionExpirationOutput { + return o +} + +func (o BucketV2LifecycleRuleNoncurrentVersionExpirationOutput) ToBucketV2LifecycleRuleNoncurrentVersionExpirationOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionExpirationOutput { + return o +} + +// Specifies the number of days noncurrent object versions expire. +func (o BucketV2LifecycleRuleNoncurrentVersionExpirationOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleNoncurrentVersionExpiration) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +type BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleNoncurrentVersionExpiration)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput) ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput() BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput) ToBucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput) Index(i pulumi.IntInput) BucketV2LifecycleRuleNoncurrentVersionExpirationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2LifecycleRuleNoncurrentVersionExpiration { + return vs[0].([]BucketV2LifecycleRuleNoncurrentVersionExpiration)[vs[1].(int)] + }).(BucketV2LifecycleRuleNoncurrentVersionExpirationOutput) +} + +type BucketV2LifecycleRuleNoncurrentVersionTransition struct { + // Specifies the number of days noncurrent object versions transition. + Days *int `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass string `pulumi:"storageClass"` +} + +// BucketV2LifecycleRuleNoncurrentVersionTransitionInput is an input type that accepts BucketV2LifecycleRuleNoncurrentVersionTransitionArgs and BucketV2LifecycleRuleNoncurrentVersionTransitionOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleNoncurrentVersionTransitionInput` via: +// +// BucketV2LifecycleRuleNoncurrentVersionTransitionArgs{...} +type BucketV2LifecycleRuleNoncurrentVersionTransitionInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutput() BucketV2LifecycleRuleNoncurrentVersionTransitionOutput + ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutputWithContext(context.Context) BucketV2LifecycleRuleNoncurrentVersionTransitionOutput +} + +type BucketV2LifecycleRuleNoncurrentVersionTransitionArgs struct { + // Specifies the number of days noncurrent object versions transition. + Days pulumi.IntPtrInput `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass pulumi.StringInput `pulumi:"storageClass"` +} + +func (BucketV2LifecycleRuleNoncurrentVersionTransitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleNoncurrentVersionTransitionArgs) ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutput() BucketV2LifecycleRuleNoncurrentVersionTransitionOutput { + return i.ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleNoncurrentVersionTransitionArgs) ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionTransitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) +} + +// BucketV2LifecycleRuleNoncurrentVersionTransitionArrayInput is an input type that accepts BucketV2LifecycleRuleNoncurrentVersionTransitionArray and BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleNoncurrentVersionTransitionArrayInput` via: +// +// BucketV2LifecycleRuleNoncurrentVersionTransitionArray{ BucketV2LifecycleRuleNoncurrentVersionTransitionArgs{...} } +type BucketV2LifecycleRuleNoncurrentVersionTransitionArrayInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput() BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput + ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(context.Context) BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput +} + +type BucketV2LifecycleRuleNoncurrentVersionTransitionArray []BucketV2LifecycleRuleNoncurrentVersionTransitionInput + +func (BucketV2LifecycleRuleNoncurrentVersionTransitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleNoncurrentVersionTransitionArray) ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput() BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput { + return i.ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleNoncurrentVersionTransitionArray) ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput) +} + +type BucketV2LifecycleRuleNoncurrentVersionTransitionOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutput() BucketV2LifecycleRuleNoncurrentVersionTransitionOutput { + return o +} + +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) ToBucketV2LifecycleRuleNoncurrentVersionTransitionOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionTransitionOutput { + return o +} + +// Specifies the number of days noncurrent object versions transition. +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleNoncurrentVersionTransition) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleNoncurrentVersionTransition) string { return v.StorageClass }).(pulumi.StringOutput) +} + +type BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleNoncurrentVersionTransition)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput) ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput() BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput) ToBucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput) Index(i pulumi.IntInput) BucketV2LifecycleRuleNoncurrentVersionTransitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2LifecycleRuleNoncurrentVersionTransition { + return vs[0].([]BucketV2LifecycleRuleNoncurrentVersionTransition)[vs[1].(int)] + }).(BucketV2LifecycleRuleNoncurrentVersionTransitionOutput) +} + +type BucketV2LifecycleRuleTransition struct { + // Specifies the date after which you want the corresponding action to take effect. + Date *string `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *int `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass string `pulumi:"storageClass"` +} + +// BucketV2LifecycleRuleTransitionInput is an input type that accepts BucketV2LifecycleRuleTransitionArgs and BucketV2LifecycleRuleTransitionOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleTransitionInput` via: +// +// BucketV2LifecycleRuleTransitionArgs{...} +type BucketV2LifecycleRuleTransitionInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleTransitionOutput() BucketV2LifecycleRuleTransitionOutput + ToBucketV2LifecycleRuleTransitionOutputWithContext(context.Context) BucketV2LifecycleRuleTransitionOutput +} + +type BucketV2LifecycleRuleTransitionArgs struct { + // Specifies the date after which you want the corresponding action to take effect. + Date pulumi.StringPtrInput `pulumi:"date"` + // Specifies the number of days after object creation when the specific rule action takes effect. + Days pulumi.IntPtrInput `pulumi:"days"` + // Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. + StorageClass pulumi.StringInput `pulumi:"storageClass"` +} + +func (BucketV2LifecycleRuleTransitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleTransition)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleTransitionArgs) ToBucketV2LifecycleRuleTransitionOutput() BucketV2LifecycleRuleTransitionOutput { + return i.ToBucketV2LifecycleRuleTransitionOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleTransitionArgs) ToBucketV2LifecycleRuleTransitionOutputWithContext(ctx context.Context) BucketV2LifecycleRuleTransitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleTransitionOutput) +} + +// BucketV2LifecycleRuleTransitionArrayInput is an input type that accepts BucketV2LifecycleRuleTransitionArray and BucketV2LifecycleRuleTransitionArrayOutput values. +// You can construct a concrete instance of `BucketV2LifecycleRuleTransitionArrayInput` via: +// +// BucketV2LifecycleRuleTransitionArray{ BucketV2LifecycleRuleTransitionArgs{...} } +type BucketV2LifecycleRuleTransitionArrayInput interface { + pulumi.Input + + ToBucketV2LifecycleRuleTransitionArrayOutput() BucketV2LifecycleRuleTransitionArrayOutput + ToBucketV2LifecycleRuleTransitionArrayOutputWithContext(context.Context) BucketV2LifecycleRuleTransitionArrayOutput +} + +type BucketV2LifecycleRuleTransitionArray []BucketV2LifecycleRuleTransitionInput + +func (BucketV2LifecycleRuleTransitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleTransition)(nil)).Elem() +} + +func (i BucketV2LifecycleRuleTransitionArray) ToBucketV2LifecycleRuleTransitionArrayOutput() BucketV2LifecycleRuleTransitionArrayOutput { + return i.ToBucketV2LifecycleRuleTransitionArrayOutputWithContext(context.Background()) +} + +func (i BucketV2LifecycleRuleTransitionArray) ToBucketV2LifecycleRuleTransitionArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleTransitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LifecycleRuleTransitionArrayOutput) +} + +type BucketV2LifecycleRuleTransitionOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleTransitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2LifecycleRuleTransition)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleTransitionOutput) ToBucketV2LifecycleRuleTransitionOutput() BucketV2LifecycleRuleTransitionOutput { + return o +} + +func (o BucketV2LifecycleRuleTransitionOutput) ToBucketV2LifecycleRuleTransitionOutputWithContext(ctx context.Context) BucketV2LifecycleRuleTransitionOutput { + return o +} + +// Specifies the date after which you want the corresponding action to take effect. +func (o BucketV2LifecycleRuleTransitionOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleTransition) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days after object creation when the specific rule action takes effect. +func (o BucketV2LifecycleRuleTransitionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleTransition) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Specifies the Amazon S3 [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Transition.html#AmazonS3-Type-Transition-StorageClass) to which you want the object to transition. +func (o BucketV2LifecycleRuleTransitionOutput) StorageClass() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2LifecycleRuleTransition) string { return v.StorageClass }).(pulumi.StringOutput) +} + +type BucketV2LifecycleRuleTransitionArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2LifecycleRuleTransitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2LifecycleRuleTransition)(nil)).Elem() +} + +func (o BucketV2LifecycleRuleTransitionArrayOutput) ToBucketV2LifecycleRuleTransitionArrayOutput() BucketV2LifecycleRuleTransitionArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleTransitionArrayOutput) ToBucketV2LifecycleRuleTransitionArrayOutputWithContext(ctx context.Context) BucketV2LifecycleRuleTransitionArrayOutput { + return o +} + +func (o BucketV2LifecycleRuleTransitionArrayOutput) Index(i pulumi.IntInput) BucketV2LifecycleRuleTransitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2LifecycleRuleTransition { + return vs[0].([]BucketV2LifecycleRuleTransition)[vs[1].(int)] + }).(BucketV2LifecycleRuleTransitionOutput) +} + +type BucketV2Logging struct { + // Name of the bucket that will receive the log objects. + TargetBucket string `pulumi:"targetBucket"` + // To specify a key prefix for log objects. + TargetPrefix *string `pulumi:"targetPrefix"` +} + +// BucketV2LoggingInput is an input type that accepts BucketV2LoggingArgs and BucketV2LoggingOutput values. +// You can construct a concrete instance of `BucketV2LoggingInput` via: +// +// BucketV2LoggingArgs{...} +type BucketV2LoggingInput interface { + pulumi.Input + + ToBucketV2LoggingOutput() BucketV2LoggingOutput + ToBucketV2LoggingOutputWithContext(context.Context) BucketV2LoggingOutput +} + +type BucketV2LoggingArgs struct { + // Name of the bucket that will receive the log objects. + TargetBucket pulumi.StringInput `pulumi:"targetBucket"` + // To specify a key prefix for log objects. + TargetPrefix pulumi.StringPtrInput `pulumi:"targetPrefix"` +} + +func (BucketV2LoggingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Logging)(nil)).Elem() +} + +func (i BucketV2LoggingArgs) ToBucketV2LoggingOutput() BucketV2LoggingOutput { + return i.ToBucketV2LoggingOutputWithContext(context.Background()) +} + +func (i BucketV2LoggingArgs) ToBucketV2LoggingOutputWithContext(ctx context.Context) BucketV2LoggingOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LoggingOutput) +} + +// BucketV2LoggingArrayInput is an input type that accepts BucketV2LoggingArray and BucketV2LoggingArrayOutput values. +// You can construct a concrete instance of `BucketV2LoggingArrayInput` via: +// +// BucketV2LoggingArray{ BucketV2LoggingArgs{...} } +type BucketV2LoggingArrayInput interface { + pulumi.Input + + ToBucketV2LoggingArrayOutput() BucketV2LoggingArrayOutput + ToBucketV2LoggingArrayOutputWithContext(context.Context) BucketV2LoggingArrayOutput +} + +type BucketV2LoggingArray []BucketV2LoggingInput + +func (BucketV2LoggingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Logging)(nil)).Elem() +} + +func (i BucketV2LoggingArray) ToBucketV2LoggingArrayOutput() BucketV2LoggingArrayOutput { + return i.ToBucketV2LoggingArrayOutputWithContext(context.Background()) +} + +func (i BucketV2LoggingArray) ToBucketV2LoggingArrayOutputWithContext(ctx context.Context) BucketV2LoggingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2LoggingArrayOutput) +} + +type BucketV2LoggingOutput struct{ *pulumi.OutputState } + +func (BucketV2LoggingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Logging)(nil)).Elem() +} + +func (o BucketV2LoggingOutput) ToBucketV2LoggingOutput() BucketV2LoggingOutput { + return o +} + +func (o BucketV2LoggingOutput) ToBucketV2LoggingOutputWithContext(ctx context.Context) BucketV2LoggingOutput { + return o +} + +// Name of the bucket that will receive the log objects. +func (o BucketV2LoggingOutput) TargetBucket() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2Logging) string { return v.TargetBucket }).(pulumi.StringOutput) +} + +// To specify a key prefix for log objects. +func (o BucketV2LoggingOutput) TargetPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Logging) *string { return v.TargetPrefix }).(pulumi.StringPtrOutput) +} + +type BucketV2LoggingArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2LoggingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Logging)(nil)).Elem() +} + +func (o BucketV2LoggingArrayOutput) ToBucketV2LoggingArrayOutput() BucketV2LoggingArrayOutput { + return o +} + +func (o BucketV2LoggingArrayOutput) ToBucketV2LoggingArrayOutputWithContext(ctx context.Context) BucketV2LoggingArrayOutput { + return o +} + +func (o BucketV2LoggingArrayOutput) Index(i pulumi.IntInput) BucketV2LoggingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2Logging { + return vs[0].([]BucketV2Logging)[vs[1].(int)] + }).(BucketV2LoggingOutput) +} + +type BucketV2ObjectLockConfiguration struct { + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + // + // Deprecated: Use the top-level parameter object_lock_enabled instead + ObjectLockEnabled *string `pulumi:"objectLockEnabled"` + // Object Lock rule in place for this bucket (documented below). + // + // Deprecated: Use the aws_s3_bucket_object_lock_configuration resource instead + Rules []BucketV2ObjectLockConfigurationRule `pulumi:"rules"` +} + +// BucketV2ObjectLockConfigurationInput is an input type that accepts BucketV2ObjectLockConfigurationArgs and BucketV2ObjectLockConfigurationOutput values. +// You can construct a concrete instance of `BucketV2ObjectLockConfigurationInput` via: +// +// BucketV2ObjectLockConfigurationArgs{...} +type BucketV2ObjectLockConfigurationInput interface { + pulumi.Input + + ToBucketV2ObjectLockConfigurationOutput() BucketV2ObjectLockConfigurationOutput + ToBucketV2ObjectLockConfigurationOutputWithContext(context.Context) BucketV2ObjectLockConfigurationOutput +} + +type BucketV2ObjectLockConfigurationArgs struct { + // Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. + // + // Deprecated: Use the top-level parameter object_lock_enabled instead + ObjectLockEnabled pulumi.StringPtrInput `pulumi:"objectLockEnabled"` + // Object Lock rule in place for this bucket (documented below). + // + // Deprecated: Use the aws_s3_bucket_object_lock_configuration resource instead + Rules BucketV2ObjectLockConfigurationRuleArrayInput `pulumi:"rules"` +} + +func (BucketV2ObjectLockConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ObjectLockConfiguration)(nil)).Elem() +} + +func (i BucketV2ObjectLockConfigurationArgs) ToBucketV2ObjectLockConfigurationOutput() BucketV2ObjectLockConfigurationOutput { + return i.ToBucketV2ObjectLockConfigurationOutputWithContext(context.Background()) +} + +func (i BucketV2ObjectLockConfigurationArgs) ToBucketV2ObjectLockConfigurationOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationOutput) +} + +func (i BucketV2ObjectLockConfigurationArgs) ToBucketV2ObjectLockConfigurationPtrOutput() BucketV2ObjectLockConfigurationPtrOutput { + return i.ToBucketV2ObjectLockConfigurationPtrOutputWithContext(context.Background()) +} + +func (i BucketV2ObjectLockConfigurationArgs) ToBucketV2ObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationOutput).ToBucketV2ObjectLockConfigurationPtrOutputWithContext(ctx) +} + +// BucketV2ObjectLockConfigurationPtrInput is an input type that accepts BucketV2ObjectLockConfigurationArgs, BucketV2ObjectLockConfigurationPtr and BucketV2ObjectLockConfigurationPtrOutput values. +// You can construct a concrete instance of `BucketV2ObjectLockConfigurationPtrInput` via: +// +// BucketV2ObjectLockConfigurationArgs{...} +// +// or: +// +// nil +type BucketV2ObjectLockConfigurationPtrInput interface { + pulumi.Input + + ToBucketV2ObjectLockConfigurationPtrOutput() BucketV2ObjectLockConfigurationPtrOutput + ToBucketV2ObjectLockConfigurationPtrOutputWithContext(context.Context) BucketV2ObjectLockConfigurationPtrOutput +} + +type bucketV2ObjectLockConfigurationPtrType BucketV2ObjectLockConfigurationArgs + +func BucketV2ObjectLockConfigurationPtr(v *BucketV2ObjectLockConfigurationArgs) BucketV2ObjectLockConfigurationPtrInput { + return (*bucketV2ObjectLockConfigurationPtrType)(v) +} + +func (*bucketV2ObjectLockConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketV2ObjectLockConfiguration)(nil)).Elem() +} + +func (i *bucketV2ObjectLockConfigurationPtrType) ToBucketV2ObjectLockConfigurationPtrOutput() BucketV2ObjectLockConfigurationPtrOutput { + return i.ToBucketV2ObjectLockConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *bucketV2ObjectLockConfigurationPtrType) ToBucketV2ObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationPtrOutput) +} + +type BucketV2ObjectLockConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketV2ObjectLockConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ObjectLockConfiguration)(nil)).Elem() +} + +func (o BucketV2ObjectLockConfigurationOutput) ToBucketV2ObjectLockConfigurationOutput() BucketV2ObjectLockConfigurationOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationOutput) ToBucketV2ObjectLockConfigurationOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationOutput) ToBucketV2ObjectLockConfigurationPtrOutput() BucketV2ObjectLockConfigurationPtrOutput { + return o.ToBucketV2ObjectLockConfigurationPtrOutputWithContext(context.Background()) +} + +func (o BucketV2ObjectLockConfigurationOutput) ToBucketV2ObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketV2ObjectLockConfiguration) *BucketV2ObjectLockConfiguration { + return &v + }).(BucketV2ObjectLockConfigurationPtrOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. +// +// Deprecated: Use the top-level parameter object_lock_enabled instead +func (o BucketV2ObjectLockConfigurationOutput) ObjectLockEnabled() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ObjectLockConfiguration) *string { return v.ObjectLockEnabled }).(pulumi.StringPtrOutput) +} + +// Object Lock rule in place for this bucket (documented below). +// +// Deprecated: Use the aws_s3_bucket_object_lock_configuration resource instead +func (o BucketV2ObjectLockConfigurationOutput) Rules() BucketV2ObjectLockConfigurationRuleArrayOutput { + return o.ApplyT(func(v BucketV2ObjectLockConfiguration) []BucketV2ObjectLockConfigurationRule { return v.Rules }).(BucketV2ObjectLockConfigurationRuleArrayOutput) +} + +type BucketV2ObjectLockConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (BucketV2ObjectLockConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketV2ObjectLockConfiguration)(nil)).Elem() +} + +func (o BucketV2ObjectLockConfigurationPtrOutput) ToBucketV2ObjectLockConfigurationPtrOutput() BucketV2ObjectLockConfigurationPtrOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationPtrOutput) ToBucketV2ObjectLockConfigurationPtrOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationPtrOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationPtrOutput) Elem() BucketV2ObjectLockConfigurationOutput { + return o.ApplyT(func(v *BucketV2ObjectLockConfiguration) BucketV2ObjectLockConfiguration { + if v != nil { + return *v + } + var ret BucketV2ObjectLockConfiguration + return ret + }).(BucketV2ObjectLockConfigurationOutput) +} + +// Indicates whether this bucket has an Object Lock configuration enabled. Valid values are `true` or `false`. This argument is not supported in all regions or partitions. +// +// Deprecated: Use the top-level parameter object_lock_enabled instead +func (o BucketV2ObjectLockConfigurationPtrOutput) ObjectLockEnabled() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketV2ObjectLockConfiguration) *string { + if v == nil { + return nil + } + return v.ObjectLockEnabled + }).(pulumi.StringPtrOutput) +} + +// Object Lock rule in place for this bucket (documented below). +// +// Deprecated: Use the aws_s3_bucket_object_lock_configuration resource instead +func (o BucketV2ObjectLockConfigurationPtrOutput) Rules() BucketV2ObjectLockConfigurationRuleArrayOutput { + return o.ApplyT(func(v *BucketV2ObjectLockConfiguration) []BucketV2ObjectLockConfigurationRule { + if v == nil { + return nil + } + return v.Rules + }).(BucketV2ObjectLockConfigurationRuleArrayOutput) +} + +type BucketV2ObjectLockConfigurationRule struct { + // Default retention period that you want to apply to new objects placed in this bucket (documented below). + DefaultRetentions []BucketV2ObjectLockConfigurationRuleDefaultRetention `pulumi:"defaultRetentions"` +} + +// BucketV2ObjectLockConfigurationRuleInput is an input type that accepts BucketV2ObjectLockConfigurationRuleArgs and BucketV2ObjectLockConfigurationRuleOutput values. +// You can construct a concrete instance of `BucketV2ObjectLockConfigurationRuleInput` via: +// +// BucketV2ObjectLockConfigurationRuleArgs{...} +type BucketV2ObjectLockConfigurationRuleInput interface { + pulumi.Input + + ToBucketV2ObjectLockConfigurationRuleOutput() BucketV2ObjectLockConfigurationRuleOutput + ToBucketV2ObjectLockConfigurationRuleOutputWithContext(context.Context) BucketV2ObjectLockConfigurationRuleOutput +} + +type BucketV2ObjectLockConfigurationRuleArgs struct { + // Default retention period that you want to apply to new objects placed in this bucket (documented below). + DefaultRetentions BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayInput `pulumi:"defaultRetentions"` +} + +func (BucketV2ObjectLockConfigurationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ObjectLockConfigurationRule)(nil)).Elem() +} + +func (i BucketV2ObjectLockConfigurationRuleArgs) ToBucketV2ObjectLockConfigurationRuleOutput() BucketV2ObjectLockConfigurationRuleOutput { + return i.ToBucketV2ObjectLockConfigurationRuleOutputWithContext(context.Background()) +} + +func (i BucketV2ObjectLockConfigurationRuleArgs) ToBucketV2ObjectLockConfigurationRuleOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationRuleOutput) +} + +// BucketV2ObjectLockConfigurationRuleArrayInput is an input type that accepts BucketV2ObjectLockConfigurationRuleArray and BucketV2ObjectLockConfigurationRuleArrayOutput values. +// You can construct a concrete instance of `BucketV2ObjectLockConfigurationRuleArrayInput` via: +// +// BucketV2ObjectLockConfigurationRuleArray{ BucketV2ObjectLockConfigurationRuleArgs{...} } +type BucketV2ObjectLockConfigurationRuleArrayInput interface { + pulumi.Input + + ToBucketV2ObjectLockConfigurationRuleArrayOutput() BucketV2ObjectLockConfigurationRuleArrayOutput + ToBucketV2ObjectLockConfigurationRuleArrayOutputWithContext(context.Context) BucketV2ObjectLockConfigurationRuleArrayOutput +} + +type BucketV2ObjectLockConfigurationRuleArray []BucketV2ObjectLockConfigurationRuleInput + +func (BucketV2ObjectLockConfigurationRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ObjectLockConfigurationRule)(nil)).Elem() +} + +func (i BucketV2ObjectLockConfigurationRuleArray) ToBucketV2ObjectLockConfigurationRuleArrayOutput() BucketV2ObjectLockConfigurationRuleArrayOutput { + return i.ToBucketV2ObjectLockConfigurationRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ObjectLockConfigurationRuleArray) ToBucketV2ObjectLockConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationRuleArrayOutput) +} + +type BucketV2ObjectLockConfigurationRuleOutput struct{ *pulumi.OutputState } + +func (BucketV2ObjectLockConfigurationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ObjectLockConfigurationRule)(nil)).Elem() +} + +func (o BucketV2ObjectLockConfigurationRuleOutput) ToBucketV2ObjectLockConfigurationRuleOutput() BucketV2ObjectLockConfigurationRuleOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationRuleOutput) ToBucketV2ObjectLockConfigurationRuleOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleOutput { + return o +} + +// Default retention period that you want to apply to new objects placed in this bucket (documented below). +func (o BucketV2ObjectLockConfigurationRuleOutput) DefaultRetentions() BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput { + return o.ApplyT(func(v BucketV2ObjectLockConfigurationRule) []BucketV2ObjectLockConfigurationRuleDefaultRetention { + return v.DefaultRetentions + }).(BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput) +} + +type BucketV2ObjectLockConfigurationRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ObjectLockConfigurationRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ObjectLockConfigurationRule)(nil)).Elem() +} + +func (o BucketV2ObjectLockConfigurationRuleArrayOutput) ToBucketV2ObjectLockConfigurationRuleArrayOutput() BucketV2ObjectLockConfigurationRuleArrayOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationRuleArrayOutput) ToBucketV2ObjectLockConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleArrayOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationRuleArrayOutput) Index(i pulumi.IntInput) BucketV2ObjectLockConfigurationRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ObjectLockConfigurationRule { + return vs[0].([]BucketV2ObjectLockConfigurationRule)[vs[1].(int)] + }).(BucketV2ObjectLockConfigurationRuleOutput) +} + +type BucketV2ObjectLockConfigurationRuleDefaultRetention struct { + // Number of days that you want to specify for the default retention period. + Days *int `pulumi:"days"` + // Default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. + Mode string `pulumi:"mode"` + // Number of years that you want to specify for the default retention period. + Years *int `pulumi:"years"` +} + +// BucketV2ObjectLockConfigurationRuleDefaultRetentionInput is an input type that accepts BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs and BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput values. +// You can construct a concrete instance of `BucketV2ObjectLockConfigurationRuleDefaultRetentionInput` via: +// +// BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs{...} +type BucketV2ObjectLockConfigurationRuleDefaultRetentionInput interface { + pulumi.Input + + ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutput() BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput + ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutputWithContext(context.Context) BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput +} + +type BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs struct { + // Number of days that you want to specify for the default retention period. + Days pulumi.IntPtrInput `pulumi:"days"` + // Default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. + Mode pulumi.StringInput `pulumi:"mode"` + // Number of years that you want to specify for the default retention period. + Years pulumi.IntPtrInput `pulumi:"years"` +} + +func (BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (i BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutput() BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput { + return i.ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutputWithContext(context.Background()) +} + +func (i BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) +} + +// BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayInput is an input type that accepts BucketV2ObjectLockConfigurationRuleDefaultRetentionArray and BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput values. +// You can construct a concrete instance of `BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayInput` via: +// +// BucketV2ObjectLockConfigurationRuleDefaultRetentionArray{ BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs{...} } +type BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayInput interface { + pulumi.Input + + ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput() BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput + ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutputWithContext(context.Context) BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput +} + +type BucketV2ObjectLockConfigurationRuleDefaultRetentionArray []BucketV2ObjectLockConfigurationRuleDefaultRetentionInput + +func (BucketV2ObjectLockConfigurationRuleDefaultRetentionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (i BucketV2ObjectLockConfigurationRuleDefaultRetentionArray) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput() BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput { + return i.ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ObjectLockConfigurationRuleDefaultRetentionArray) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput) +} + +type BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput struct{ *pulumi.OutputState } + +func (BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutput() BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput { + return o +} + +// Number of days that you want to specify for the default retention period. +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2ObjectLockConfigurationRuleDefaultRetention) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// Default Object Lock retention mode you want to apply to new objects placed in this bucket. Valid values are `GOVERNANCE` and `COMPLIANCE`. +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2ObjectLockConfigurationRuleDefaultRetention) string { return v.Mode }).(pulumi.StringOutput) +} + +// Number of years that you want to specify for the default retention period. +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) Years() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2ObjectLockConfigurationRuleDefaultRetention) *int { return v.Years }).(pulumi.IntPtrOutput) +} + +type BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ObjectLockConfigurationRuleDefaultRetention)(nil)).Elem() +} + +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput() BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput) ToBucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutputWithContext(ctx context.Context) BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput { + return o +} + +func (o BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput) Index(i pulumi.IntInput) BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ObjectLockConfigurationRuleDefaultRetention { + return vs[0].([]BucketV2ObjectLockConfigurationRuleDefaultRetention)[vs[1].(int)] + }).(BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput) +} + +type BucketV2ReplicationConfiguration struct { + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role string `pulumi:"role"` + // Specifies the rules managing the replication (documented below). + Rules []BucketV2ReplicationConfigurationRule `pulumi:"rules"` +} + +// BucketV2ReplicationConfigurationInput is an input type that accepts BucketV2ReplicationConfigurationArgs and BucketV2ReplicationConfigurationOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationInput` via: +// +// BucketV2ReplicationConfigurationArgs{...} +type BucketV2ReplicationConfigurationInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationOutput() BucketV2ReplicationConfigurationOutput + ToBucketV2ReplicationConfigurationOutputWithContext(context.Context) BucketV2ReplicationConfigurationOutput +} + +type BucketV2ReplicationConfigurationArgs struct { + // ARN of the IAM role for Amazon S3 to assume when replicating the objects. + Role pulumi.StringInput `pulumi:"role"` + // Specifies the rules managing the replication (documented below). + Rules BucketV2ReplicationConfigurationRuleArrayInput `pulumi:"rules"` +} + +func (BucketV2ReplicationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfiguration)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationArgs) ToBucketV2ReplicationConfigurationOutput() BucketV2ReplicationConfigurationOutput { + return i.ToBucketV2ReplicationConfigurationOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationArgs) ToBucketV2ReplicationConfigurationOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationOutput) +} + +// BucketV2ReplicationConfigurationArrayInput is an input type that accepts BucketV2ReplicationConfigurationArray and BucketV2ReplicationConfigurationArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationArrayInput` via: +// +// BucketV2ReplicationConfigurationArray{ BucketV2ReplicationConfigurationArgs{...} } +type BucketV2ReplicationConfigurationArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationArrayOutput() BucketV2ReplicationConfigurationArrayOutput + ToBucketV2ReplicationConfigurationArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationArrayOutput +} + +type BucketV2ReplicationConfigurationArray []BucketV2ReplicationConfigurationInput + +func (BucketV2ReplicationConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfiguration)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationArray) ToBucketV2ReplicationConfigurationArrayOutput() BucketV2ReplicationConfigurationArrayOutput { + return i.ToBucketV2ReplicationConfigurationArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationArray) ToBucketV2ReplicationConfigurationArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationArrayOutput) +} + +type BucketV2ReplicationConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfiguration)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationOutput) ToBucketV2ReplicationConfigurationOutput() BucketV2ReplicationConfigurationOutput { + return o +} + +func (o BucketV2ReplicationConfigurationOutput) ToBucketV2ReplicationConfigurationOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationOutput { + return o +} + +// ARN of the IAM role for Amazon S3 to assume when replicating the objects. +func (o BucketV2ReplicationConfigurationOutput) Role() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2ReplicationConfiguration) string { return v.Role }).(pulumi.StringOutput) +} + +// Specifies the rules managing the replication (documented below). +func (o BucketV2ReplicationConfigurationOutput) Rules() BucketV2ReplicationConfigurationRuleArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfiguration) []BucketV2ReplicationConfigurationRule { return v.Rules }).(BucketV2ReplicationConfigurationRuleArrayOutput) +} + +type BucketV2ReplicationConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfiguration)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationArrayOutput) ToBucketV2ReplicationConfigurationArrayOutput() BucketV2ReplicationConfigurationArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationArrayOutput) ToBucketV2ReplicationConfigurationArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfiguration { + return vs[0].([]BucketV2ReplicationConfiguration)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationOutput) +} + +type BucketV2ReplicationConfigurationRule struct { + // Whether delete markers are replicated. The only valid value is `Enabled`. To disable, omit this argument. This argument is only valid with V2 replication configurations (i.e., when `filter` is used). + DeleteMarkerReplicationStatus *string `pulumi:"deleteMarkerReplicationStatus"` + // Specifies the destination for the rule (documented below). + Destinations []BucketV2ReplicationConfigurationRuleDestination `pulumi:"destinations"` + // Filter that identifies subset of objects to which the replication rule applies (documented below). + Filters []BucketV2ReplicationConfigurationRuleFilter `pulumi:"filters"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id *string `pulumi:"id"` + // Object keyname prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix *string `pulumi:"prefix"` + // Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. + Priority *int `pulumi:"priority"` + // Specifies special object selection criteria (documented below). + SourceSelectionCriterias []BucketV2ReplicationConfigurationRuleSourceSelectionCriteria `pulumi:"sourceSelectionCriterias"` + // Status of the rule. Either `Enabled` or `Disabled`. The rule is ignored if status is not Enabled. + Status string `pulumi:"status"` +} + +// BucketV2ReplicationConfigurationRuleInput is an input type that accepts BucketV2ReplicationConfigurationRuleArgs and BucketV2ReplicationConfigurationRuleOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleInput` via: +// +// BucketV2ReplicationConfigurationRuleArgs{...} +type BucketV2ReplicationConfigurationRuleInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleOutput() BucketV2ReplicationConfigurationRuleOutput + ToBucketV2ReplicationConfigurationRuleOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleOutput +} + +type BucketV2ReplicationConfigurationRuleArgs struct { + // Whether delete markers are replicated. The only valid value is `Enabled`. To disable, omit this argument. This argument is only valid with V2 replication configurations (i.e., when `filter` is used). + DeleteMarkerReplicationStatus pulumi.StringPtrInput `pulumi:"deleteMarkerReplicationStatus"` + // Specifies the destination for the rule (documented below). + Destinations BucketV2ReplicationConfigurationRuleDestinationArrayInput `pulumi:"destinations"` + // Filter that identifies subset of objects to which the replication rule applies (documented below). + Filters BucketV2ReplicationConfigurationRuleFilterArrayInput `pulumi:"filters"` + // Unique identifier for the rule. Must be less than or equal to 255 characters in length. + Id pulumi.StringPtrInput `pulumi:"id"` + // Object keyname prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // Specifies special object selection criteria (documented below). + SourceSelectionCriterias BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayInput `pulumi:"sourceSelectionCriterias"` + // Status of the rule. Either `Enabled` or `Disabled`. The rule is ignored if status is not Enabled. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketV2ReplicationConfigurationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRule)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleArgs) ToBucketV2ReplicationConfigurationRuleOutput() BucketV2ReplicationConfigurationRuleOutput { + return i.ToBucketV2ReplicationConfigurationRuleOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleArgs) ToBucketV2ReplicationConfigurationRuleOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleOutput) +} + +// BucketV2ReplicationConfigurationRuleArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleArray and BucketV2ReplicationConfigurationRuleArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleArray{ BucketV2ReplicationConfigurationRuleArgs{...} } +type BucketV2ReplicationConfigurationRuleArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleArrayOutput() BucketV2ReplicationConfigurationRuleArrayOutput + ToBucketV2ReplicationConfigurationRuleArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleArrayOutput +} + +type BucketV2ReplicationConfigurationRuleArray []BucketV2ReplicationConfigurationRuleInput + +func (BucketV2ReplicationConfigurationRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRule)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleArray) ToBucketV2ReplicationConfigurationRuleArrayOutput() BucketV2ReplicationConfigurationRuleArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleArray) ToBucketV2ReplicationConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRule)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleOutput) ToBucketV2ReplicationConfigurationRuleOutput() BucketV2ReplicationConfigurationRuleOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleOutput) ToBucketV2ReplicationConfigurationRuleOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleOutput { + return o +} + +// Whether delete markers are replicated. The only valid value is `Enabled`. To disable, omit this argument. This argument is only valid with V2 replication configurations (i.e., when `filter` is used). +func (o BucketV2ReplicationConfigurationRuleOutput) DeleteMarkerReplicationStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) *string { return v.DeleteMarkerReplicationStatus }).(pulumi.StringPtrOutput) +} + +// Specifies the destination for the rule (documented below). +func (o BucketV2ReplicationConfigurationRuleOutput) Destinations() BucketV2ReplicationConfigurationRuleDestinationArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) []BucketV2ReplicationConfigurationRuleDestination { + return v.Destinations + }).(BucketV2ReplicationConfigurationRuleDestinationArrayOutput) +} + +// Filter that identifies subset of objects to which the replication rule applies (documented below). +func (o BucketV2ReplicationConfigurationRuleOutput) Filters() BucketV2ReplicationConfigurationRuleFilterArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) []BucketV2ReplicationConfigurationRuleFilter { + return v.Filters + }).(BucketV2ReplicationConfigurationRuleFilterArrayOutput) +} + +// Unique identifier for the rule. Must be less than or equal to 255 characters in length. +func (o BucketV2ReplicationConfigurationRuleOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Object keyname prefix identifying one or more objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketV2ReplicationConfigurationRuleOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// Priority associated with the rule. Priority should only be set if `filter` is configured. If not provided, defaults to `0`. Priority must be unique between multiple rules. +func (o BucketV2ReplicationConfigurationRuleOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) *int { return v.Priority }).(pulumi.IntPtrOutput) +} + +// Specifies special object selection criteria (documented below). +func (o BucketV2ReplicationConfigurationRuleOutput) SourceSelectionCriterias() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) []BucketV2ReplicationConfigurationRuleSourceSelectionCriteria { + return v.SourceSelectionCriterias + }).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput) +} + +// Status of the rule. Either `Enabled` or `Disabled`. The rule is ignored if status is not Enabled. +func (o BucketV2ReplicationConfigurationRuleOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRule) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketV2ReplicationConfigurationRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRule)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleArrayOutput) ToBucketV2ReplicationConfigurationRuleArrayOutput() BucketV2ReplicationConfigurationRuleArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleArrayOutput) ToBucketV2ReplicationConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRule { + return vs[0].([]BucketV2ReplicationConfigurationRule)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleOutput) +} + +type BucketV2ReplicationConfigurationRuleDestination struct { + // Specifies the overrides to use for object owners on replication. Must be used in conjunction with `accountId` owner override configuration. + AccessControlTranslations []BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation `pulumi:"accessControlTranslations"` + // Account ID to use for overriding the object owner on replication. Must be used in conjunction with `accessControlTranslation` override configuration. + AccountId *string `pulumi:"accountId"` + // ARN of the S3 bucket where you want Amazon S3 to store replicas of the object identified by the rule. + Bucket string `pulumi:"bucket"` + // Enables replication metrics (required for S3 RTC) (documented below). + Metrics []BucketV2ReplicationConfigurationRuleDestinationMetric `pulumi:"metrics"` + // Destination KMS encryption key ARN for SSE-KMS replication. Must be used in conjunction with + // `sseKmsEncryptedObjects` source selection criteria. + ReplicaKmsKeyId *string `pulumi:"replicaKmsKeyId"` + // Enables S3 Replication Time Control (S3 RTC) (documented below). + ReplicationTimes []BucketV2ReplicationConfigurationRuleDestinationReplicationTime `pulumi:"replicationTimes"` + // The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. + StorageClass *string `pulumi:"storageClass"` +} + +// BucketV2ReplicationConfigurationRuleDestinationInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationArgs and BucketV2ReplicationConfigurationRuleDestinationOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationArgs{...} +type BucketV2ReplicationConfigurationRuleDestinationInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationOutput() BucketV2ReplicationConfigurationRuleDestinationOutput + ToBucketV2ReplicationConfigurationRuleDestinationOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationArgs struct { + // Specifies the overrides to use for object owners on replication. Must be used in conjunction with `accountId` owner override configuration. + AccessControlTranslations BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayInput `pulumi:"accessControlTranslations"` + // Account ID to use for overriding the object owner on replication. Must be used in conjunction with `accessControlTranslation` override configuration. + AccountId pulumi.StringPtrInput `pulumi:"accountId"` + // ARN of the S3 bucket where you want Amazon S3 to store replicas of the object identified by the rule. + Bucket pulumi.StringInput `pulumi:"bucket"` + // Enables replication metrics (required for S3 RTC) (documented below). + Metrics BucketV2ReplicationConfigurationRuleDestinationMetricArrayInput `pulumi:"metrics"` + // Destination KMS encryption key ARN for SSE-KMS replication. Must be used in conjunction with + // `sseKmsEncryptedObjects` source selection criteria. + ReplicaKmsKeyId pulumi.StringPtrInput `pulumi:"replicaKmsKeyId"` + // Enables S3 Replication Time Control (S3 RTC) (documented below). + ReplicationTimes BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayInput `pulumi:"replicationTimes"` + // The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. + StorageClass pulumi.StringPtrInput `pulumi:"storageClass"` +} + +func (BucketV2ReplicationConfigurationRuleDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestination)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationArgs) ToBucketV2ReplicationConfigurationRuleDestinationOutput() BucketV2ReplicationConfigurationRuleDestinationOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationArgs) ToBucketV2ReplicationConfigurationRuleDestinationOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationOutput) +} + +// BucketV2ReplicationConfigurationRuleDestinationArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationArray and BucketV2ReplicationConfigurationRuleDestinationArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationArray{ BucketV2ReplicationConfigurationRuleDestinationArgs{...} } +type BucketV2ReplicationConfigurationRuleDestinationArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationArrayOutput() BucketV2ReplicationConfigurationRuleDestinationArrayOutput + ToBucketV2ReplicationConfigurationRuleDestinationArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationArrayOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationArray []BucketV2ReplicationConfigurationRuleDestinationInput + +func (BucketV2ReplicationConfigurationRuleDestinationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestination)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationArray) ToBucketV2ReplicationConfigurationRuleDestinationArrayOutput() BucketV2ReplicationConfigurationRuleDestinationArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationArray) ToBucketV2ReplicationConfigurationRuleDestinationArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestination)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) ToBucketV2ReplicationConfigurationRuleDestinationOutput() BucketV2ReplicationConfigurationRuleDestinationOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) ToBucketV2ReplicationConfigurationRuleDestinationOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationOutput { + return o +} + +// Specifies the overrides to use for object owners on replication. Must be used in conjunction with `accountId` owner override configuration. +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) AccessControlTranslations() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) []BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation { + return v.AccessControlTranslations + }).(BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput) +} + +// Account ID to use for overriding the object owner on replication. Must be used in conjunction with `accessControlTranslation` override configuration. +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) *string { return v.AccountId }).(pulumi.StringPtrOutput) +} + +// ARN of the S3 bucket where you want Amazon S3 to store replicas of the object identified by the rule. +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) Bucket() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) string { return v.Bucket }).(pulumi.StringOutput) +} + +// Enables replication metrics (required for S3 RTC) (documented below). +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) Metrics() BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) []BucketV2ReplicationConfigurationRuleDestinationMetric { + return v.Metrics + }).(BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput) +} + +// Destination KMS encryption key ARN for SSE-KMS replication. Must be used in conjunction with +// `sseKmsEncryptedObjects` source selection criteria. +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) ReplicaKmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) *string { return v.ReplicaKmsKeyId }).(pulumi.StringPtrOutput) +} + +// Enables S3 Replication Time Control (S3 RTC) (documented below). +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) ReplicationTimes() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) []BucketV2ReplicationConfigurationRuleDestinationReplicationTime { + return v.ReplicationTimes + }).(BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput) +} + +// The [storage class](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Destination.html#AmazonS3-Type-Destination-StorageClass) used to store the object. By default, Amazon S3 uses the storage class of the source object to create the object replica. +func (o BucketV2ReplicationConfigurationRuleDestinationOutput) StorageClass() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestination) *string { return v.StorageClass }).(pulumi.StringPtrOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestination)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationArrayOutput() BucketV2ReplicationConfigurationRuleDestinationArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleDestinationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleDestination { + return vs[0].([]BucketV2ReplicationConfigurationRuleDestination)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleDestinationOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation struct { + Owner string `pulumi:"owner"` +} + +// BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs and BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs{...} +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput + ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs struct { + Owner pulumi.StringInput `pulumi:"owner"` +} + +func (BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput) +} + +// BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray and BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray{ BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs{...} } +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput + ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray []BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationInput + +func (BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput) Owner() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation) string { return v.Owner }).(pulumi.StringOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput() BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation { + return vs[0].([]BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslation)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationMetric struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes *int `pulumi:"minutes"` + // Status of replication metrics. Either `Enabled` or `Disabled`. + Status *string `pulumi:"status"` +} + +// BucketV2ReplicationConfigurationRuleDestinationMetricInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationMetricArgs and BucketV2ReplicationConfigurationRuleDestinationMetricOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationMetricInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationMetricArgs{...} +type BucketV2ReplicationConfigurationRuleDestinationMetricInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationMetricOutput() BucketV2ReplicationConfigurationRuleDestinationMetricOutput + ToBucketV2ReplicationConfigurationRuleDestinationMetricOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationMetricOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationMetricArgs struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes pulumi.IntPtrInput `pulumi:"minutes"` + // Status of replication metrics. Either `Enabled` or `Disabled`. + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (BucketV2ReplicationConfigurationRuleDestinationMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationMetric)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationMetricArgs) ToBucketV2ReplicationConfigurationRuleDestinationMetricOutput() BucketV2ReplicationConfigurationRuleDestinationMetricOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationMetricOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationMetricArgs) ToBucketV2ReplicationConfigurationRuleDestinationMetricOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationMetricOutput) +} + +// BucketV2ReplicationConfigurationRuleDestinationMetricArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationMetricArray and BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationMetricArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationMetricArray{ BucketV2ReplicationConfigurationRuleDestinationMetricArgs{...} } +type BucketV2ReplicationConfigurationRuleDestinationMetricArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput() BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput + ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationMetricArray []BucketV2ReplicationConfigurationRuleDestinationMetricInput + +func (BucketV2ReplicationConfigurationRuleDestinationMetricArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestinationMetric)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationMetricArray) ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput() BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationMetricArray) ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationMetricOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationMetric)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationMetricOutput) ToBucketV2ReplicationConfigurationRuleDestinationMetricOutput() BucketV2ReplicationConfigurationRuleDestinationMetricOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationMetricOutput) ToBucketV2ReplicationConfigurationRuleDestinationMetricOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationMetricOutput { + return o +} + +// Threshold within which objects are to be replicated. The only valid value is `15`. +func (o BucketV2ReplicationConfigurationRuleDestinationMetricOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestinationMetric) *int { return v.Minutes }).(pulumi.IntPtrOutput) +} + +// Status of replication metrics. Either `Enabled` or `Disabled`. +func (o BucketV2ReplicationConfigurationRuleDestinationMetricOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestinationMetric) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestinationMetric)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput() BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationMetricArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleDestinationMetricOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleDestinationMetric { + return vs[0].([]BucketV2ReplicationConfigurationRuleDestinationMetric)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleDestinationMetricOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationReplicationTime struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes *int `pulumi:"minutes"` + // Status of RTC. Either `Enabled` or `Disabled`. + Status *string `pulumi:"status"` +} + +// BucketV2ReplicationConfigurationRuleDestinationReplicationTimeInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs and BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationReplicationTimeInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs{...} +type BucketV2ReplicationConfigurationRuleDestinationReplicationTimeInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput + ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs struct { + // Threshold within which objects are to be replicated. The only valid value is `15`. + Minutes pulumi.IntPtrInput `pulumi:"minutes"` + // Status of RTC. Either `Enabled` or `Disabled`. + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) +} + +// BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray and BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray{ BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs{...} } +type BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput + ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput +} + +type BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray []BucketV2ReplicationConfigurationRuleDestinationReplicationTimeInput + +func (BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput { + return o +} + +// Threshold within which objects are to be replicated. The only valid value is `15`. +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) Minutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestinationReplicationTime) *int { return v.Minutes }).(pulumi.IntPtrOutput) +} + +// Status of RTC. Either `Enabled` or `Disabled`. +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleDestinationReplicationTime) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleDestinationReplicationTime)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput() BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput) ToBucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleDestinationReplicationTime { + return vs[0].([]BucketV2ReplicationConfigurationRuleDestinationReplicationTime)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput) +} + +type BucketV2ReplicationConfigurationRuleFilter struct { + // Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix *string `pulumi:"prefix"` + // A map of tags that identifies subset of objects to which the rule applies. + // The rule applies only to objects having all the tags in its tagset. + Tags map[string]string `pulumi:"tags"` +} + +// BucketV2ReplicationConfigurationRuleFilterInput is an input type that accepts BucketV2ReplicationConfigurationRuleFilterArgs and BucketV2ReplicationConfigurationRuleFilterOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleFilterInput` via: +// +// BucketV2ReplicationConfigurationRuleFilterArgs{...} +type BucketV2ReplicationConfigurationRuleFilterInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleFilterOutput() BucketV2ReplicationConfigurationRuleFilterOutput + ToBucketV2ReplicationConfigurationRuleFilterOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleFilterOutput +} + +type BucketV2ReplicationConfigurationRuleFilterArgs struct { + // Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // A map of tags that identifies subset of objects to which the rule applies. + // The rule applies only to objects having all the tags in its tagset. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (BucketV2ReplicationConfigurationRuleFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleFilterArgs) ToBucketV2ReplicationConfigurationRuleFilterOutput() BucketV2ReplicationConfigurationRuleFilterOutput { + return i.ToBucketV2ReplicationConfigurationRuleFilterOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleFilterArgs) ToBucketV2ReplicationConfigurationRuleFilterOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleFilterOutput) +} + +// BucketV2ReplicationConfigurationRuleFilterArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleFilterArray and BucketV2ReplicationConfigurationRuleFilterArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleFilterArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleFilterArray{ BucketV2ReplicationConfigurationRuleFilterArgs{...} } +type BucketV2ReplicationConfigurationRuleFilterArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleFilterArrayOutput() BucketV2ReplicationConfigurationRuleFilterArrayOutput + ToBucketV2ReplicationConfigurationRuleFilterArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleFilterArrayOutput +} + +type BucketV2ReplicationConfigurationRuleFilterArray []BucketV2ReplicationConfigurationRuleFilterInput + +func (BucketV2ReplicationConfigurationRuleFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleFilterArray) ToBucketV2ReplicationConfigurationRuleFilterArrayOutput() BucketV2ReplicationConfigurationRuleFilterArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleFilterArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleFilterArray) ToBucketV2ReplicationConfigurationRuleFilterArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleFilterArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleFilterOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleFilterOutput) ToBucketV2ReplicationConfigurationRuleFilterOutput() BucketV2ReplicationConfigurationRuleFilterOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleFilterOutput) ToBucketV2ReplicationConfigurationRuleFilterOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleFilterOutput { + return o +} + +// Object keyname prefix that identifies subset of objects to which the rule applies. Must be less than or equal to 1024 characters in length. +func (o BucketV2ReplicationConfigurationRuleFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// A map of tags that identifies subset of objects to which the rule applies. +// The rule applies only to objects having all the tags in its tagset. +func (o BucketV2ReplicationConfigurationRuleFilterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleFilter) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type BucketV2ReplicationConfigurationRuleFilterArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleFilter)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleFilterArrayOutput) ToBucketV2ReplicationConfigurationRuleFilterArrayOutput() BucketV2ReplicationConfigurationRuleFilterArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleFilterArrayOutput) ToBucketV2ReplicationConfigurationRuleFilterArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleFilterArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleFilterArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleFilter { + return vs[0].([]BucketV2ReplicationConfigurationRuleFilter)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleFilterOutput) +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteria struct { + // Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` + // in `destination` must be specified as well. + SseKmsEncryptedObjects []BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject `pulumi:"sseKmsEncryptedObjects"` +} + +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaInput is an input type that accepts BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs and BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaInput` via: +// +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs{...} +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs struct { + // Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` + // in `destination` must be specified as well. + SseKmsEncryptedObjects BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayInput `pulumi:"sseKmsEncryptedObjects"` +} + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return i.ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput) +} + +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray and BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray{ BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs{...} } +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray []BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaInput + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return o +} + +// Match SSE-KMS encrypted objects (documented below). If specified, `replicaKmsKeyId` +// in `destination` must be specified as well. +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput) SseKmsEncryptedObjects() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleSourceSelectionCriteria) []BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject { + return v.SseKmsEncryptedObjects + }).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleSourceSelectionCriteria)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleSourceSelectionCriteria { + return vs[0].([]BucketV2ReplicationConfigurationRuleSourceSelectionCriteria)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput) +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject struct { + // Boolean which indicates if this criteria is enabled. + Enabled bool `pulumi:"enabled"` +} + +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectInput is an input type that accepts BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs and BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectInput` via: +// +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs{...} +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs struct { + // Boolean which indicates if this criteria is enabled. + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput { + return i.ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput) +} + +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayInput is an input type that accepts BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray and BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput values. +// You can construct a concrete instance of `BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayInput` via: +// +// BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray{ BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs{...} } +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayInput interface { + pulumi.Input + + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput + ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutputWithContext(context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray []BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectInput + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject)(nil)).Elem() +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput { + return i.ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput) +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput { + return o +} + +// Boolean which indicates if this criteria is enabled. +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject) bool { + return v.Enabled + }).(pulumi.BoolOutput) +} + +type BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject)(nil)).Elem() +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput() BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput) ToBucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutputWithContext(ctx context.Context) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput { + return o +} + +func (o BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput) Index(i pulumi.IntInput) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject { + return vs[0].([]BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObject)[vs[1].(int)] + }).(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput) +} + +type BucketV2ServerSideEncryptionConfiguration struct { + // Single object for server-side encryption by default configuration. (documented below) + Rules []BucketV2ServerSideEncryptionConfigurationRule `pulumi:"rules"` +} + +// BucketV2ServerSideEncryptionConfigurationInput is an input type that accepts BucketV2ServerSideEncryptionConfigurationArgs and BucketV2ServerSideEncryptionConfigurationOutput values. +// You can construct a concrete instance of `BucketV2ServerSideEncryptionConfigurationInput` via: +// +// BucketV2ServerSideEncryptionConfigurationArgs{...} +type BucketV2ServerSideEncryptionConfigurationInput interface { + pulumi.Input + + ToBucketV2ServerSideEncryptionConfigurationOutput() BucketV2ServerSideEncryptionConfigurationOutput + ToBucketV2ServerSideEncryptionConfigurationOutputWithContext(context.Context) BucketV2ServerSideEncryptionConfigurationOutput +} + +type BucketV2ServerSideEncryptionConfigurationArgs struct { + // Single object for server-side encryption by default configuration. (documented below) + Rules BucketV2ServerSideEncryptionConfigurationRuleArrayInput `pulumi:"rules"` +} + +func (BucketV2ServerSideEncryptionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (i BucketV2ServerSideEncryptionConfigurationArgs) ToBucketV2ServerSideEncryptionConfigurationOutput() BucketV2ServerSideEncryptionConfigurationOutput { + return i.ToBucketV2ServerSideEncryptionConfigurationOutputWithContext(context.Background()) +} + +func (i BucketV2ServerSideEncryptionConfigurationArgs) ToBucketV2ServerSideEncryptionConfigurationOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ServerSideEncryptionConfigurationOutput) +} + +// BucketV2ServerSideEncryptionConfigurationArrayInput is an input type that accepts BucketV2ServerSideEncryptionConfigurationArray and BucketV2ServerSideEncryptionConfigurationArrayOutput values. +// You can construct a concrete instance of `BucketV2ServerSideEncryptionConfigurationArrayInput` via: +// +// BucketV2ServerSideEncryptionConfigurationArray{ BucketV2ServerSideEncryptionConfigurationArgs{...} } +type BucketV2ServerSideEncryptionConfigurationArrayInput interface { + pulumi.Input + + ToBucketV2ServerSideEncryptionConfigurationArrayOutput() BucketV2ServerSideEncryptionConfigurationArrayOutput + ToBucketV2ServerSideEncryptionConfigurationArrayOutputWithContext(context.Context) BucketV2ServerSideEncryptionConfigurationArrayOutput +} + +type BucketV2ServerSideEncryptionConfigurationArray []BucketV2ServerSideEncryptionConfigurationInput + +func (BucketV2ServerSideEncryptionConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (i BucketV2ServerSideEncryptionConfigurationArray) ToBucketV2ServerSideEncryptionConfigurationArrayOutput() BucketV2ServerSideEncryptionConfigurationArrayOutput { + return i.ToBucketV2ServerSideEncryptionConfigurationArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ServerSideEncryptionConfigurationArray) ToBucketV2ServerSideEncryptionConfigurationArrayOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ServerSideEncryptionConfigurationArrayOutput) +} + +type BucketV2ServerSideEncryptionConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketV2ServerSideEncryptionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (o BucketV2ServerSideEncryptionConfigurationOutput) ToBucketV2ServerSideEncryptionConfigurationOutput() BucketV2ServerSideEncryptionConfigurationOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationOutput) ToBucketV2ServerSideEncryptionConfigurationOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationOutput { + return o +} + +// Single object for server-side encryption by default configuration. (documented below) +func (o BucketV2ServerSideEncryptionConfigurationOutput) Rules() BucketV2ServerSideEncryptionConfigurationRuleArrayOutput { + return o.ApplyT(func(v BucketV2ServerSideEncryptionConfiguration) []BucketV2ServerSideEncryptionConfigurationRule { + return v.Rules + }).(BucketV2ServerSideEncryptionConfigurationRuleArrayOutput) +} + +type BucketV2ServerSideEncryptionConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ServerSideEncryptionConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ServerSideEncryptionConfiguration)(nil)).Elem() +} + +func (o BucketV2ServerSideEncryptionConfigurationArrayOutput) ToBucketV2ServerSideEncryptionConfigurationArrayOutput() BucketV2ServerSideEncryptionConfigurationArrayOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationArrayOutput) ToBucketV2ServerSideEncryptionConfigurationArrayOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationArrayOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationArrayOutput) Index(i pulumi.IntInput) BucketV2ServerSideEncryptionConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ServerSideEncryptionConfiguration { + return vs[0].([]BucketV2ServerSideEncryptionConfiguration)[vs[1].(int)] + }).(BucketV2ServerSideEncryptionConfigurationOutput) +} + +type BucketV2ServerSideEncryptionConfigurationRule struct { + // Single object for setting server-side encryption by default. (documented below) + ApplyServerSideEncryptionByDefaults []BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault `pulumi:"applyServerSideEncryptionByDefaults"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled *bool `pulumi:"bucketKeyEnabled"` +} + +// BucketV2ServerSideEncryptionConfigurationRuleInput is an input type that accepts BucketV2ServerSideEncryptionConfigurationRuleArgs and BucketV2ServerSideEncryptionConfigurationRuleOutput values. +// You can construct a concrete instance of `BucketV2ServerSideEncryptionConfigurationRuleInput` via: +// +// BucketV2ServerSideEncryptionConfigurationRuleArgs{...} +type BucketV2ServerSideEncryptionConfigurationRuleInput interface { + pulumi.Input + + ToBucketV2ServerSideEncryptionConfigurationRuleOutput() BucketV2ServerSideEncryptionConfigurationRuleOutput + ToBucketV2ServerSideEncryptionConfigurationRuleOutputWithContext(context.Context) BucketV2ServerSideEncryptionConfigurationRuleOutput +} + +type BucketV2ServerSideEncryptionConfigurationRuleArgs struct { + // Single object for setting server-side encryption by default. (documented below) + ApplyServerSideEncryptionByDefaults BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayInput `pulumi:"applyServerSideEncryptionByDefaults"` + // Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. + BucketKeyEnabled pulumi.BoolPtrInput `pulumi:"bucketKeyEnabled"` +} + +func (BucketV2ServerSideEncryptionConfigurationRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleArgs) ToBucketV2ServerSideEncryptionConfigurationRuleOutput() BucketV2ServerSideEncryptionConfigurationRuleOutput { + return i.ToBucketV2ServerSideEncryptionConfigurationRuleOutputWithContext(context.Background()) +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleArgs) ToBucketV2ServerSideEncryptionConfigurationRuleOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ServerSideEncryptionConfigurationRuleOutput) +} + +// BucketV2ServerSideEncryptionConfigurationRuleArrayInput is an input type that accepts BucketV2ServerSideEncryptionConfigurationRuleArray and BucketV2ServerSideEncryptionConfigurationRuleArrayOutput values. +// You can construct a concrete instance of `BucketV2ServerSideEncryptionConfigurationRuleArrayInput` via: +// +// BucketV2ServerSideEncryptionConfigurationRuleArray{ BucketV2ServerSideEncryptionConfigurationRuleArgs{...} } +type BucketV2ServerSideEncryptionConfigurationRuleArrayInput interface { + pulumi.Input + + ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutput() BucketV2ServerSideEncryptionConfigurationRuleArrayOutput + ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutputWithContext(context.Context) BucketV2ServerSideEncryptionConfigurationRuleArrayOutput +} + +type BucketV2ServerSideEncryptionConfigurationRuleArray []BucketV2ServerSideEncryptionConfigurationRuleInput + +func (BucketV2ServerSideEncryptionConfigurationRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleArray) ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutput() BucketV2ServerSideEncryptionConfigurationRuleArrayOutput { + return i.ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleArray) ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ServerSideEncryptionConfigurationRuleArrayOutput) +} + +type BucketV2ServerSideEncryptionConfigurationRuleOutput struct{ *pulumi.OutputState } + +func (BucketV2ServerSideEncryptionConfigurationRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleOutput) ToBucketV2ServerSideEncryptionConfigurationRuleOutput() BucketV2ServerSideEncryptionConfigurationRuleOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleOutput) ToBucketV2ServerSideEncryptionConfigurationRuleOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleOutput { + return o +} + +// Single object for setting server-side encryption by default. (documented below) +func (o BucketV2ServerSideEncryptionConfigurationRuleOutput) ApplyServerSideEncryptionByDefaults() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput { + return o.ApplyT(func(v BucketV2ServerSideEncryptionConfigurationRule) []BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault { + return v.ApplyServerSideEncryptionByDefaults + }).(BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput) +} + +// Whether or not to use [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) for SSE-KMS. +func (o BucketV2ServerSideEncryptionConfigurationRuleOutput) BucketKeyEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketV2ServerSideEncryptionConfigurationRule) *bool { return v.BucketKeyEnabled }).(pulumi.BoolPtrOutput) +} + +type BucketV2ServerSideEncryptionConfigurationRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ServerSideEncryptionConfigurationRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ServerSideEncryptionConfigurationRule)(nil)).Elem() +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleArrayOutput) ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutput() BucketV2ServerSideEncryptionConfigurationRuleArrayOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleArrayOutput) ToBucketV2ServerSideEncryptionConfigurationRuleArrayOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleArrayOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleArrayOutput) Index(i pulumi.IntInput) BucketV2ServerSideEncryptionConfigurationRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ServerSideEncryptionConfigurationRule { + return vs[0].([]BucketV2ServerSideEncryptionConfigurationRule)[vs[1].(int)] + }).(BucketV2ServerSideEncryptionConfigurationRuleOutput) +} + +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault struct { + // AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. + KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"` + // Server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` + SseAlgorithm string `pulumi:"sseAlgorithm"` +} + +// BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput is an input type that accepts BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs and BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput values. +// You can construct a concrete instance of `BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput` via: +// +// BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{...} +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput interface { + pulumi.Input + + ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput + ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(context.Context) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput +} + +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs struct { + // AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. + KmsMasterKeyId pulumi.StringPtrInput `pulumi:"kmsMasterKeyId"` + // Server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` + SseAlgorithm pulumi.StringInput `pulumi:"sseAlgorithm"` +} + +func (BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return i.ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(context.Background()) +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) +} + +// BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayInput is an input type that accepts BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray and BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput values. +// You can construct a concrete instance of `BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayInput` via: +// +// BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray{ BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{...} } +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayInput interface { + pulumi.Input + + ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput + ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutputWithContext(context.Context) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput +} + +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray []BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput + +func (BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput { + return i.ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutputWithContext(context.Background()) +} + +func (i BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput) +} + +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput struct{ *pulumi.OutputState } + +func (BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return o +} + +// AWS KMS master key ID used for the SSE-KMS encryption. This can only be used when you set the value of `sseAlgorithm` as `aws:kms`. The default `aws/s3` AWS KMS master key is used if this element is absent while the `sseAlgorithm` is `aws:kms`. +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) KmsMasterKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) *string { + return v.KmsMasterKeyId + }).(pulumi.StringPtrOutput) +} + +// Server-side encryption algorithm to use. Valid values are `AES256` and `aws:kms` +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) SseAlgorithm() pulumi.StringOutput { + return o.ApplyT(func(v BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault) string { + return v.SseAlgorithm + }).(pulumi.StringOutput) +} + +type BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)(nil)).Elem() +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput() BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput) ToBucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutputWithContext(ctx context.Context) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput { + return o +} + +func (o BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput) Index(i pulumi.IntInput) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault { + return vs[0].([]BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefault)[vs[1].(int)] + }).(BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput) +} + +type BucketV2Versioning struct { + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. + Enabled *bool `pulumi:"enabled"` + // Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS + MfaDelete *bool `pulumi:"mfaDelete"` +} + +// BucketV2VersioningInput is an input type that accepts BucketV2VersioningArgs and BucketV2VersioningOutput values. +// You can construct a concrete instance of `BucketV2VersioningInput` via: +// +// BucketV2VersioningArgs{...} +type BucketV2VersioningInput interface { + pulumi.Input + + ToBucketV2VersioningOutput() BucketV2VersioningOutput + ToBucketV2VersioningOutputWithContext(context.Context) BucketV2VersioningOutput +} + +type BucketV2VersioningArgs struct { + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS + MfaDelete pulumi.BoolPtrInput `pulumi:"mfaDelete"` +} + +func (BucketV2VersioningArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Versioning)(nil)).Elem() +} + +func (i BucketV2VersioningArgs) ToBucketV2VersioningOutput() BucketV2VersioningOutput { + return i.ToBucketV2VersioningOutputWithContext(context.Background()) +} + +func (i BucketV2VersioningArgs) ToBucketV2VersioningOutputWithContext(ctx context.Context) BucketV2VersioningOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2VersioningOutput) +} + +// BucketV2VersioningArrayInput is an input type that accepts BucketV2VersioningArray and BucketV2VersioningArrayOutput values. +// You can construct a concrete instance of `BucketV2VersioningArrayInput` via: +// +// BucketV2VersioningArray{ BucketV2VersioningArgs{...} } +type BucketV2VersioningArrayInput interface { + pulumi.Input + + ToBucketV2VersioningArrayOutput() BucketV2VersioningArrayOutput + ToBucketV2VersioningArrayOutputWithContext(context.Context) BucketV2VersioningArrayOutput +} + +type BucketV2VersioningArray []BucketV2VersioningInput + +func (BucketV2VersioningArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Versioning)(nil)).Elem() +} + +func (i BucketV2VersioningArray) ToBucketV2VersioningArrayOutput() BucketV2VersioningArrayOutput { + return i.ToBucketV2VersioningArrayOutputWithContext(context.Background()) +} + +func (i BucketV2VersioningArray) ToBucketV2VersioningArrayOutputWithContext(ctx context.Context) BucketV2VersioningArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2VersioningArrayOutput) +} + +type BucketV2VersioningOutput struct{ *pulumi.OutputState } + +func (BucketV2VersioningOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Versioning)(nil)).Elem() +} + +func (o BucketV2VersioningOutput) ToBucketV2VersioningOutput() BucketV2VersioningOutput { + return o +} + +func (o BucketV2VersioningOutput) ToBucketV2VersioningOutputWithContext(ctx context.Context) BucketV2VersioningOutput { + return o +} + +// Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. +func (o BucketV2VersioningOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketV2Versioning) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS +func (o BucketV2VersioningOutput) MfaDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketV2Versioning) *bool { return v.MfaDelete }).(pulumi.BoolPtrOutput) +} + +type BucketV2VersioningArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2VersioningArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Versioning)(nil)).Elem() +} + +func (o BucketV2VersioningArrayOutput) ToBucketV2VersioningArrayOutput() BucketV2VersioningArrayOutput { + return o +} + +func (o BucketV2VersioningArrayOutput) ToBucketV2VersioningArrayOutputWithContext(ctx context.Context) BucketV2VersioningArrayOutput { + return o +} + +func (o BucketV2VersioningArrayOutput) Index(i pulumi.IntInput) BucketV2VersioningOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2Versioning { + return vs[0].([]BucketV2Versioning)[vs[1].(int)] + }).(BucketV2VersioningOutput) +} + +type BucketV2Website struct { + // Absolute path to the document to return in case of a 4XX error. + ErrorDocument *string `pulumi:"errorDocument"` + // Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. + IndexDocument *string `pulumi:"indexDocument"` + // Hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo *string `pulumi:"redirectAllRequestsTo"` + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. + RoutingRules *string `pulumi:"routingRules"` +} + +// BucketV2WebsiteInput is an input type that accepts BucketV2WebsiteArgs and BucketV2WebsiteOutput values. +// You can construct a concrete instance of `BucketV2WebsiteInput` via: +// +// BucketV2WebsiteArgs{...} +type BucketV2WebsiteInput interface { + pulumi.Input + + ToBucketV2WebsiteOutput() BucketV2WebsiteOutput + ToBucketV2WebsiteOutputWithContext(context.Context) BucketV2WebsiteOutput +} + +type BucketV2WebsiteArgs struct { + // Absolute path to the document to return in case of a 4XX error. + ErrorDocument pulumi.StringPtrInput `pulumi:"errorDocument"` + // Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. + IndexDocument pulumi.StringPtrInput `pulumi:"indexDocument"` + // Hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo pulumi.StringPtrInput `pulumi:"redirectAllRequestsTo"` + // JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. + RoutingRules pulumi.StringPtrInput `pulumi:"routingRules"` +} + +func (BucketV2WebsiteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Website)(nil)).Elem() +} + +func (i BucketV2WebsiteArgs) ToBucketV2WebsiteOutput() BucketV2WebsiteOutput { + return i.ToBucketV2WebsiteOutputWithContext(context.Background()) +} + +func (i BucketV2WebsiteArgs) ToBucketV2WebsiteOutputWithContext(ctx context.Context) BucketV2WebsiteOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2WebsiteOutput) +} + +// BucketV2WebsiteArrayInput is an input type that accepts BucketV2WebsiteArray and BucketV2WebsiteArrayOutput values. +// You can construct a concrete instance of `BucketV2WebsiteArrayInput` via: +// +// BucketV2WebsiteArray{ BucketV2WebsiteArgs{...} } +type BucketV2WebsiteArrayInput interface { + pulumi.Input + + ToBucketV2WebsiteArrayOutput() BucketV2WebsiteArrayOutput + ToBucketV2WebsiteArrayOutputWithContext(context.Context) BucketV2WebsiteArrayOutput +} + +type BucketV2WebsiteArray []BucketV2WebsiteInput + +func (BucketV2WebsiteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Website)(nil)).Elem() +} + +func (i BucketV2WebsiteArray) ToBucketV2WebsiteArrayOutput() BucketV2WebsiteArrayOutput { + return i.ToBucketV2WebsiteArrayOutputWithContext(context.Background()) +} + +func (i BucketV2WebsiteArray) ToBucketV2WebsiteArrayOutputWithContext(ctx context.Context) BucketV2WebsiteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketV2WebsiteArrayOutput) +} + +type BucketV2WebsiteOutput struct{ *pulumi.OutputState } + +func (BucketV2WebsiteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketV2Website)(nil)).Elem() +} + +func (o BucketV2WebsiteOutput) ToBucketV2WebsiteOutput() BucketV2WebsiteOutput { + return o +} + +func (o BucketV2WebsiteOutput) ToBucketV2WebsiteOutputWithContext(ctx context.Context) BucketV2WebsiteOutput { + return o +} + +// Absolute path to the document to return in case of a 4XX error. +func (o BucketV2WebsiteOutput) ErrorDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Website) *string { return v.ErrorDocument }).(pulumi.StringPtrOutput) +} + +// Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. +func (o BucketV2WebsiteOutput) IndexDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Website) *string { return v.IndexDocument }).(pulumi.StringPtrOutput) +} + +// Hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. +func (o BucketV2WebsiteOutput) RedirectAllRequestsTo() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Website) *string { return v.RedirectAllRequestsTo }).(pulumi.StringPtrOutput) +} + +// JSON array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) +// describing redirect behavior and when redirects are applied. +func (o BucketV2WebsiteOutput) RoutingRules() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketV2Website) *string { return v.RoutingRules }).(pulumi.StringPtrOutput) +} + +type BucketV2WebsiteArrayOutput struct{ *pulumi.OutputState } + +func (BucketV2WebsiteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketV2Website)(nil)).Elem() +} + +func (o BucketV2WebsiteArrayOutput) ToBucketV2WebsiteArrayOutput() BucketV2WebsiteArrayOutput { + return o +} + +func (o BucketV2WebsiteArrayOutput) ToBucketV2WebsiteArrayOutputWithContext(ctx context.Context) BucketV2WebsiteArrayOutput { + return o +} + +func (o BucketV2WebsiteArrayOutput) Index(i pulumi.IntInput) BucketV2WebsiteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketV2Website { + return vs[0].([]BucketV2Website)[vs[1].(int)] + }).(BucketV2WebsiteOutput) +} + +type BucketVersioning struct { + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. + Enabled *bool `pulumi:"enabled"` + // Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS + MfaDelete *bool `pulumi:"mfaDelete"` +} + +// BucketVersioningInput is an input type that accepts BucketVersioningArgs and BucketVersioningOutput values. +// You can construct a concrete instance of `BucketVersioningInput` via: +// +// BucketVersioningArgs{...} +type BucketVersioningInput interface { + pulumi.Input + + ToBucketVersioningOutput() BucketVersioningOutput + ToBucketVersioningOutputWithContext(context.Context) BucketVersioningOutput +} + +type BucketVersioningArgs struct { + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS + MfaDelete pulumi.BoolPtrInput `pulumi:"mfaDelete"` +} + +func (BucketVersioningArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketVersioning)(nil)).Elem() +} + +func (i BucketVersioningArgs) ToBucketVersioningOutput() BucketVersioningOutput { + return i.ToBucketVersioningOutputWithContext(context.Background()) +} + +func (i BucketVersioningArgs) ToBucketVersioningOutputWithContext(ctx context.Context) BucketVersioningOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningOutput) +} + +func (i BucketVersioningArgs) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput { + return i.ToBucketVersioningPtrOutputWithContext(context.Background()) +} + +func (i BucketVersioningArgs) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningOutput).ToBucketVersioningPtrOutputWithContext(ctx) +} + +// BucketVersioningPtrInput is an input type that accepts BucketVersioningArgs, BucketVersioningPtr and BucketVersioningPtrOutput values. +// You can construct a concrete instance of `BucketVersioningPtrInput` via: +// +// BucketVersioningArgs{...} +// +// or: +// +// nil +type BucketVersioningPtrInput interface { + pulumi.Input + + ToBucketVersioningPtrOutput() BucketVersioningPtrOutput + ToBucketVersioningPtrOutputWithContext(context.Context) BucketVersioningPtrOutput +} + +type bucketVersioningPtrType BucketVersioningArgs + +func BucketVersioningPtr(v *BucketVersioningArgs) BucketVersioningPtrInput { + return (*bucketVersioningPtrType)(v) +} + +func (*bucketVersioningPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketVersioning)(nil)).Elem() +} + +func (i *bucketVersioningPtrType) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput { + return i.ToBucketVersioningPtrOutputWithContext(context.Background()) +} + +func (i *bucketVersioningPtrType) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningPtrOutput) +} + +type BucketVersioningOutput struct{ *pulumi.OutputState } + +func (BucketVersioningOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketVersioning)(nil)).Elem() +} + +func (o BucketVersioningOutput) ToBucketVersioningOutput() BucketVersioningOutput { + return o +} + +func (o BucketVersioningOutput) ToBucketVersioningOutputWithContext(ctx context.Context) BucketVersioningOutput { + return o +} + +func (o BucketVersioningOutput) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput { + return o.ToBucketVersioningPtrOutputWithContext(context.Background()) +} + +func (o BucketVersioningOutput) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketVersioning) *BucketVersioning { + return &v + }).(BucketVersioningPtrOutput) +} + +// Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. +func (o BucketVersioningOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketVersioning) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS +func (o BucketVersioningOutput) MfaDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v BucketVersioning) *bool { return v.MfaDelete }).(pulumi.BoolPtrOutput) +} + +type BucketVersioningPtrOutput struct{ *pulumi.OutputState } + +func (BucketVersioningPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketVersioning)(nil)).Elem() +} + +func (o BucketVersioningPtrOutput) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput { + return o +} + +func (o BucketVersioningPtrOutput) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput { + return o +} + +func (o BucketVersioningPtrOutput) Elem() BucketVersioningOutput { + return o.ApplyT(func(v *BucketVersioning) BucketVersioning { + if v != nil { + return *v + } + var ret BucketVersioning + return ret + }).(BucketVersioningOutput) +} + +// Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. +func (o BucketVersioningPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketVersioning) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Enable MFA delete for either `Change the versioning state of your bucket` or `Permanently delete an object version`. Default is `false`. This cannot be used to toggle this setting but is available to allow managed buckets to reflect the state in AWS +func (o BucketVersioningPtrOutput) MfaDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *BucketVersioning) *bool { + if v == nil { + return nil + } + return v.MfaDelete + }).(pulumi.BoolPtrOutput) +} + +type BucketVersioningV2VersioningConfiguration struct { + // Specifies whether MFA delete is enabled in the bucket versioning configuration. Valid values: `Enabled` or `Disabled`. + MfaDelete *string `pulumi:"mfaDelete"` + // Versioning state of the bucket. Valid values: `Enabled`, `Suspended`, or `Disabled`. `Disabled` should only be used when creating or importing resources that correspond to unversioned S3 buckets. + Status string `pulumi:"status"` +} + +// BucketVersioningV2VersioningConfigurationInput is an input type that accepts BucketVersioningV2VersioningConfigurationArgs and BucketVersioningV2VersioningConfigurationOutput values. +// You can construct a concrete instance of `BucketVersioningV2VersioningConfigurationInput` via: +// +// BucketVersioningV2VersioningConfigurationArgs{...} +type BucketVersioningV2VersioningConfigurationInput interface { + pulumi.Input + + ToBucketVersioningV2VersioningConfigurationOutput() BucketVersioningV2VersioningConfigurationOutput + ToBucketVersioningV2VersioningConfigurationOutputWithContext(context.Context) BucketVersioningV2VersioningConfigurationOutput +} + +type BucketVersioningV2VersioningConfigurationArgs struct { + // Specifies whether MFA delete is enabled in the bucket versioning configuration. Valid values: `Enabled` or `Disabled`. + MfaDelete pulumi.StringPtrInput `pulumi:"mfaDelete"` + // Versioning state of the bucket. Valid values: `Enabled`, `Suspended`, or `Disabled`. `Disabled` should only be used when creating or importing resources that correspond to unversioned S3 buckets. + Status pulumi.StringInput `pulumi:"status"` +} + +func (BucketVersioningV2VersioningConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketVersioningV2VersioningConfiguration)(nil)).Elem() +} + +func (i BucketVersioningV2VersioningConfigurationArgs) ToBucketVersioningV2VersioningConfigurationOutput() BucketVersioningV2VersioningConfigurationOutput { + return i.ToBucketVersioningV2VersioningConfigurationOutputWithContext(context.Background()) +} + +func (i BucketVersioningV2VersioningConfigurationArgs) ToBucketVersioningV2VersioningConfigurationOutputWithContext(ctx context.Context) BucketVersioningV2VersioningConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningV2VersioningConfigurationOutput) +} + +func (i BucketVersioningV2VersioningConfigurationArgs) ToBucketVersioningV2VersioningConfigurationPtrOutput() BucketVersioningV2VersioningConfigurationPtrOutput { + return i.ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(context.Background()) +} + +func (i BucketVersioningV2VersioningConfigurationArgs) ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(ctx context.Context) BucketVersioningV2VersioningConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningV2VersioningConfigurationOutput).ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(ctx) +} + +// BucketVersioningV2VersioningConfigurationPtrInput is an input type that accepts BucketVersioningV2VersioningConfigurationArgs, BucketVersioningV2VersioningConfigurationPtr and BucketVersioningV2VersioningConfigurationPtrOutput values. +// You can construct a concrete instance of `BucketVersioningV2VersioningConfigurationPtrInput` via: +// +// BucketVersioningV2VersioningConfigurationArgs{...} +// +// or: +// +// nil +type BucketVersioningV2VersioningConfigurationPtrInput interface { + pulumi.Input + + ToBucketVersioningV2VersioningConfigurationPtrOutput() BucketVersioningV2VersioningConfigurationPtrOutput + ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(context.Context) BucketVersioningV2VersioningConfigurationPtrOutput +} + +type bucketVersioningV2VersioningConfigurationPtrType BucketVersioningV2VersioningConfigurationArgs + +func BucketVersioningV2VersioningConfigurationPtr(v *BucketVersioningV2VersioningConfigurationArgs) BucketVersioningV2VersioningConfigurationPtrInput { + return (*bucketVersioningV2VersioningConfigurationPtrType)(v) +} + +func (*bucketVersioningV2VersioningConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketVersioningV2VersioningConfiguration)(nil)).Elem() +} + +func (i *bucketVersioningV2VersioningConfigurationPtrType) ToBucketVersioningV2VersioningConfigurationPtrOutput() BucketVersioningV2VersioningConfigurationPtrOutput { + return i.ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *bucketVersioningV2VersioningConfigurationPtrType) ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(ctx context.Context) BucketVersioningV2VersioningConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketVersioningV2VersioningConfigurationPtrOutput) +} + +type BucketVersioningV2VersioningConfigurationOutput struct{ *pulumi.OutputState } + +func (BucketVersioningV2VersioningConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketVersioningV2VersioningConfiguration)(nil)).Elem() +} + +func (o BucketVersioningV2VersioningConfigurationOutput) ToBucketVersioningV2VersioningConfigurationOutput() BucketVersioningV2VersioningConfigurationOutput { + return o +} + +func (o BucketVersioningV2VersioningConfigurationOutput) ToBucketVersioningV2VersioningConfigurationOutputWithContext(ctx context.Context) BucketVersioningV2VersioningConfigurationOutput { + return o +} + +func (o BucketVersioningV2VersioningConfigurationOutput) ToBucketVersioningV2VersioningConfigurationPtrOutput() BucketVersioningV2VersioningConfigurationPtrOutput { + return o.ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(context.Background()) +} + +func (o BucketVersioningV2VersioningConfigurationOutput) ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(ctx context.Context) BucketVersioningV2VersioningConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketVersioningV2VersioningConfiguration) *BucketVersioningV2VersioningConfiguration { + return &v + }).(BucketVersioningV2VersioningConfigurationPtrOutput) +} + +// Specifies whether MFA delete is enabled in the bucket versioning configuration. Valid values: `Enabled` or `Disabled`. +func (o BucketVersioningV2VersioningConfigurationOutput) MfaDelete() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketVersioningV2VersioningConfiguration) *string { return v.MfaDelete }).(pulumi.StringPtrOutput) +} + +// Versioning state of the bucket. Valid values: `Enabled`, `Suspended`, or `Disabled`. `Disabled` should only be used when creating or importing resources that correspond to unversioned S3 buckets. +func (o BucketVersioningV2VersioningConfigurationOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v BucketVersioningV2VersioningConfiguration) string { return v.Status }).(pulumi.StringOutput) +} + +type BucketVersioningV2VersioningConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (BucketVersioningV2VersioningConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketVersioningV2VersioningConfiguration)(nil)).Elem() +} + +func (o BucketVersioningV2VersioningConfigurationPtrOutput) ToBucketVersioningV2VersioningConfigurationPtrOutput() BucketVersioningV2VersioningConfigurationPtrOutput { + return o +} + +func (o BucketVersioningV2VersioningConfigurationPtrOutput) ToBucketVersioningV2VersioningConfigurationPtrOutputWithContext(ctx context.Context) BucketVersioningV2VersioningConfigurationPtrOutput { + return o +} + +func (o BucketVersioningV2VersioningConfigurationPtrOutput) Elem() BucketVersioningV2VersioningConfigurationOutput { + return o.ApplyT(func(v *BucketVersioningV2VersioningConfiguration) BucketVersioningV2VersioningConfiguration { + if v != nil { + return *v + } + var ret BucketVersioningV2VersioningConfiguration + return ret + }).(BucketVersioningV2VersioningConfigurationOutput) +} + +// Specifies whether MFA delete is enabled in the bucket versioning configuration. Valid values: `Enabled` or `Disabled`. +func (o BucketVersioningV2VersioningConfigurationPtrOutput) MfaDelete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketVersioningV2VersioningConfiguration) *string { + if v == nil { + return nil + } + return v.MfaDelete + }).(pulumi.StringPtrOutput) +} + +// Versioning state of the bucket. Valid values: `Enabled`, `Suspended`, or `Disabled`. `Disabled` should only be used when creating or importing resources that correspond to unversioned S3 buckets. +func (o BucketVersioningV2VersioningConfigurationPtrOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketVersioningV2VersioningConfiguration) *string { + if v == nil { + return nil + } + return &v.Status + }).(pulumi.StringPtrOutput) +} + +type BucketWebsite struct { + // An absolute path to the document to return in case of a 4XX error. + ErrorDocument *string `pulumi:"errorDocument"` + // Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. + IndexDocument *string `pulumi:"indexDocument"` + // A hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo *string `pulumi:"redirectAllRequestsTo"` + // A json array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. + // + // The `CORS` object supports the following: + RoutingRules interface{} `pulumi:"routingRules"` +} + +// BucketWebsiteInput is an input type that accepts BucketWebsiteArgs and BucketWebsiteOutput values. +// You can construct a concrete instance of `BucketWebsiteInput` via: +// +// BucketWebsiteArgs{...} +type BucketWebsiteInput interface { + pulumi.Input + + ToBucketWebsiteOutput() BucketWebsiteOutput + ToBucketWebsiteOutputWithContext(context.Context) BucketWebsiteOutput +} + +type BucketWebsiteArgs struct { + // An absolute path to the document to return in case of a 4XX error. + ErrorDocument pulumi.StringPtrInput `pulumi:"errorDocument"` + // Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. + IndexDocument pulumi.StringPtrInput `pulumi:"indexDocument"` + // A hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo pulumi.StringPtrInput `pulumi:"redirectAllRequestsTo"` + // A json array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) + // describing redirect behavior and when redirects are applied. + // + // The `CORS` object supports the following: + RoutingRules pulumi.Input `pulumi:"routingRules"` +} + +func (BucketWebsiteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsite)(nil)).Elem() +} + +func (i BucketWebsiteArgs) ToBucketWebsiteOutput() BucketWebsiteOutput { + return i.ToBucketWebsiteOutputWithContext(context.Background()) +} + +func (i BucketWebsiteArgs) ToBucketWebsiteOutputWithContext(ctx context.Context) BucketWebsiteOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteOutput) +} + +func (i BucketWebsiteArgs) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput { + return i.ToBucketWebsitePtrOutputWithContext(context.Background()) +} + +func (i BucketWebsiteArgs) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteOutput).ToBucketWebsitePtrOutputWithContext(ctx) +} + +// BucketWebsitePtrInput is an input type that accepts BucketWebsiteArgs, BucketWebsitePtr and BucketWebsitePtrOutput values. +// You can construct a concrete instance of `BucketWebsitePtrInput` via: +// +// BucketWebsiteArgs{...} +// +// or: +// +// nil +type BucketWebsitePtrInput interface { + pulumi.Input + + ToBucketWebsitePtrOutput() BucketWebsitePtrOutput + ToBucketWebsitePtrOutputWithContext(context.Context) BucketWebsitePtrOutput +} + +type bucketWebsitePtrType BucketWebsiteArgs + +func BucketWebsitePtr(v *BucketWebsiteArgs) BucketWebsitePtrInput { + return (*bucketWebsitePtrType)(v) +} + +func (*bucketWebsitePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsite)(nil)).Elem() +} + +func (i *bucketWebsitePtrType) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput { + return i.ToBucketWebsitePtrOutputWithContext(context.Background()) +} + +func (i *bucketWebsitePtrType) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsitePtrOutput) +} + +type BucketWebsiteOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsite)(nil)).Elem() +} + +func (o BucketWebsiteOutput) ToBucketWebsiteOutput() BucketWebsiteOutput { + return o +} + +func (o BucketWebsiteOutput) ToBucketWebsiteOutputWithContext(ctx context.Context) BucketWebsiteOutput { + return o +} + +func (o BucketWebsiteOutput) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput { + return o.ToBucketWebsitePtrOutputWithContext(context.Background()) +} + +func (o BucketWebsiteOutput) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketWebsite) *BucketWebsite { + return &v + }).(BucketWebsitePtrOutput) +} + +// An absolute path to the document to return in case of a 4XX error. +func (o BucketWebsiteOutput) ErrorDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsite) *string { return v.ErrorDocument }).(pulumi.StringPtrOutput) +} + +// Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. +func (o BucketWebsiteOutput) IndexDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsite) *string { return v.IndexDocument }).(pulumi.StringPtrOutput) +} + +// A hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. +func (o BucketWebsiteOutput) RedirectAllRequestsTo() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsite) *string { return v.RedirectAllRequestsTo }).(pulumi.StringPtrOutput) +} + +// A json array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) +// describing redirect behavior and when redirects are applied. +// +// The `CORS` object supports the following: +func (o BucketWebsiteOutput) RoutingRules() pulumi.AnyOutput { + return o.ApplyT(func(v BucketWebsite) interface{} { return v.RoutingRules }).(pulumi.AnyOutput) +} + +type BucketWebsitePtrOutput struct{ *pulumi.OutputState } + +func (BucketWebsitePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsite)(nil)).Elem() +} + +func (o BucketWebsitePtrOutput) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput { + return o +} + +func (o BucketWebsitePtrOutput) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput { + return o +} + +func (o BucketWebsitePtrOutput) Elem() BucketWebsiteOutput { + return o.ApplyT(func(v *BucketWebsite) BucketWebsite { + if v != nil { + return *v + } + var ret BucketWebsite + return ret + }).(BucketWebsiteOutput) +} + +// An absolute path to the document to return in case of a 4XX error. +func (o BucketWebsitePtrOutput) ErrorDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsite) *string { + if v == nil { + return nil + } + return v.ErrorDocument + }).(pulumi.StringPtrOutput) +} + +// Amazon S3 returns this index document when requests are made to the root domain or any of the subfolders. +func (o BucketWebsitePtrOutput) IndexDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsite) *string { + if v == nil { + return nil + } + return v.IndexDocument + }).(pulumi.StringPtrOutput) +} + +// A hostname to redirect all website requests for this bucket to. Hostname can optionally be prefixed with a protocol (`http://` or `https://`) to use when redirecting requests. The default is the protocol that is used in the original request. +func (o BucketWebsitePtrOutput) RedirectAllRequestsTo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsite) *string { + if v == nil { + return nil + } + return v.RedirectAllRequestsTo + }).(pulumi.StringPtrOutput) +} + +// A json array containing [routing rules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-websiteconfiguration-routingrules.html) +// describing redirect behavior and when redirects are applied. +// +// The `CORS` object supports the following: +func (o BucketWebsitePtrOutput) RoutingRules() pulumi.AnyOutput { + return o.ApplyT(func(v *BucketWebsite) interface{} { + if v == nil { + return nil + } + return v.RoutingRules + }).(pulumi.AnyOutput) +} + +type BucketWebsiteConfigurationV2ErrorDocument struct { + // Object key name to use when a 4XX class error occurs. + Key string `pulumi:"key"` +} + +// BucketWebsiteConfigurationV2ErrorDocumentInput is an input type that accepts BucketWebsiteConfigurationV2ErrorDocumentArgs and BucketWebsiteConfigurationV2ErrorDocumentOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2ErrorDocumentInput` via: +// +// BucketWebsiteConfigurationV2ErrorDocumentArgs{...} +type BucketWebsiteConfigurationV2ErrorDocumentInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2ErrorDocumentOutput() BucketWebsiteConfigurationV2ErrorDocumentOutput + ToBucketWebsiteConfigurationV2ErrorDocumentOutputWithContext(context.Context) BucketWebsiteConfigurationV2ErrorDocumentOutput +} + +type BucketWebsiteConfigurationV2ErrorDocumentArgs struct { + // Object key name to use when a 4XX class error occurs. + Key pulumi.StringInput `pulumi:"key"` +} + +func (BucketWebsiteConfigurationV2ErrorDocumentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2ErrorDocument)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2ErrorDocumentArgs) ToBucketWebsiteConfigurationV2ErrorDocumentOutput() BucketWebsiteConfigurationV2ErrorDocumentOutput { + return i.ToBucketWebsiteConfigurationV2ErrorDocumentOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2ErrorDocumentArgs) ToBucketWebsiteConfigurationV2ErrorDocumentOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ErrorDocumentOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2ErrorDocumentOutput) +} + +func (i BucketWebsiteConfigurationV2ErrorDocumentArgs) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutput() BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return i.ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2ErrorDocumentArgs) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2ErrorDocumentOutput).ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(ctx) +} + +// BucketWebsiteConfigurationV2ErrorDocumentPtrInput is an input type that accepts BucketWebsiteConfigurationV2ErrorDocumentArgs, BucketWebsiteConfigurationV2ErrorDocumentPtr and BucketWebsiteConfigurationV2ErrorDocumentPtrOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2ErrorDocumentPtrInput` via: +// +// BucketWebsiteConfigurationV2ErrorDocumentArgs{...} +// +// or: +// +// nil +type BucketWebsiteConfigurationV2ErrorDocumentPtrInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutput() BucketWebsiteConfigurationV2ErrorDocumentPtrOutput + ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(context.Context) BucketWebsiteConfigurationV2ErrorDocumentPtrOutput +} + +type bucketWebsiteConfigurationV2ErrorDocumentPtrType BucketWebsiteConfigurationV2ErrorDocumentArgs + +func BucketWebsiteConfigurationV2ErrorDocumentPtr(v *BucketWebsiteConfigurationV2ErrorDocumentArgs) BucketWebsiteConfigurationV2ErrorDocumentPtrInput { + return (*bucketWebsiteConfigurationV2ErrorDocumentPtrType)(v) +} + +func (*bucketWebsiteConfigurationV2ErrorDocumentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2ErrorDocument)(nil)).Elem() +} + +func (i *bucketWebsiteConfigurationV2ErrorDocumentPtrType) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutput() BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return i.ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(context.Background()) +} + +func (i *bucketWebsiteConfigurationV2ErrorDocumentPtrType) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) +} + +type BucketWebsiteConfigurationV2ErrorDocumentOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2ErrorDocumentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2ErrorDocument)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentOutput) ToBucketWebsiteConfigurationV2ErrorDocumentOutput() BucketWebsiteConfigurationV2ErrorDocumentOutput { + return o +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentOutput) ToBucketWebsiteConfigurationV2ErrorDocumentOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ErrorDocumentOutput { + return o +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentOutput) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutput() BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return o.ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(context.Background()) +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentOutput) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketWebsiteConfigurationV2ErrorDocument) *BucketWebsiteConfigurationV2ErrorDocument { + return &v + }).(BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) +} + +// Object key name to use when a 4XX class error occurs. +func (o BucketWebsiteConfigurationV2ErrorDocumentOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2ErrorDocument) string { return v.Key }).(pulumi.StringOutput) +} + +type BucketWebsiteConfigurationV2ErrorDocumentPtrOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2ErrorDocument)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutput() BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) ToBucketWebsiteConfigurationV2ErrorDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2ErrorDocumentPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) Elem() BucketWebsiteConfigurationV2ErrorDocumentOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2ErrorDocument) BucketWebsiteConfigurationV2ErrorDocument { + if v != nil { + return *v + } + var ret BucketWebsiteConfigurationV2ErrorDocument + return ret + }).(BucketWebsiteConfigurationV2ErrorDocumentOutput) +} + +// Object key name to use when a 4XX class error occurs. +func (o BucketWebsiteConfigurationV2ErrorDocumentPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2ErrorDocument) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +type BucketWebsiteConfigurationV2IndexDocument struct { + // Suffix that is appended to a request that is for a directory on the website endpoint. + // For example, if the suffix is `index.html` and you make a request to `samplebucket/images/`, the data that is returned will be for the object with the key name `images/index.html`. + // The suffix must not be empty and must not include a slash character. + Suffix string `pulumi:"suffix"` +} + +// BucketWebsiteConfigurationV2IndexDocumentInput is an input type that accepts BucketWebsiteConfigurationV2IndexDocumentArgs and BucketWebsiteConfigurationV2IndexDocumentOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2IndexDocumentInput` via: +// +// BucketWebsiteConfigurationV2IndexDocumentArgs{...} +type BucketWebsiteConfigurationV2IndexDocumentInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2IndexDocumentOutput() BucketWebsiteConfigurationV2IndexDocumentOutput + ToBucketWebsiteConfigurationV2IndexDocumentOutputWithContext(context.Context) BucketWebsiteConfigurationV2IndexDocumentOutput +} + +type BucketWebsiteConfigurationV2IndexDocumentArgs struct { + // Suffix that is appended to a request that is for a directory on the website endpoint. + // For example, if the suffix is `index.html` and you make a request to `samplebucket/images/`, the data that is returned will be for the object with the key name `images/index.html`. + // The suffix must not be empty and must not include a slash character. + Suffix pulumi.StringInput `pulumi:"suffix"` +} + +func (BucketWebsiteConfigurationV2IndexDocumentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2IndexDocument)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2IndexDocumentArgs) ToBucketWebsiteConfigurationV2IndexDocumentOutput() BucketWebsiteConfigurationV2IndexDocumentOutput { + return i.ToBucketWebsiteConfigurationV2IndexDocumentOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2IndexDocumentArgs) ToBucketWebsiteConfigurationV2IndexDocumentOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2IndexDocumentOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2IndexDocumentOutput) +} + +func (i BucketWebsiteConfigurationV2IndexDocumentArgs) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutput() BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return i.ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2IndexDocumentArgs) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2IndexDocumentOutput).ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(ctx) +} + +// BucketWebsiteConfigurationV2IndexDocumentPtrInput is an input type that accepts BucketWebsiteConfigurationV2IndexDocumentArgs, BucketWebsiteConfigurationV2IndexDocumentPtr and BucketWebsiteConfigurationV2IndexDocumentPtrOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2IndexDocumentPtrInput` via: +// +// BucketWebsiteConfigurationV2IndexDocumentArgs{...} +// +// or: +// +// nil +type BucketWebsiteConfigurationV2IndexDocumentPtrInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2IndexDocumentPtrOutput() BucketWebsiteConfigurationV2IndexDocumentPtrOutput + ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(context.Context) BucketWebsiteConfigurationV2IndexDocumentPtrOutput +} + +type bucketWebsiteConfigurationV2IndexDocumentPtrType BucketWebsiteConfigurationV2IndexDocumentArgs + +func BucketWebsiteConfigurationV2IndexDocumentPtr(v *BucketWebsiteConfigurationV2IndexDocumentArgs) BucketWebsiteConfigurationV2IndexDocumentPtrInput { + return (*bucketWebsiteConfigurationV2IndexDocumentPtrType)(v) +} + +func (*bucketWebsiteConfigurationV2IndexDocumentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2IndexDocument)(nil)).Elem() +} + +func (i *bucketWebsiteConfigurationV2IndexDocumentPtrType) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutput() BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return i.ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(context.Background()) +} + +func (i *bucketWebsiteConfigurationV2IndexDocumentPtrType) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2IndexDocumentPtrOutput) +} + +type BucketWebsiteConfigurationV2IndexDocumentOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2IndexDocumentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2IndexDocument)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2IndexDocumentOutput) ToBucketWebsiteConfigurationV2IndexDocumentOutput() BucketWebsiteConfigurationV2IndexDocumentOutput { + return o +} + +func (o BucketWebsiteConfigurationV2IndexDocumentOutput) ToBucketWebsiteConfigurationV2IndexDocumentOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2IndexDocumentOutput { + return o +} + +func (o BucketWebsiteConfigurationV2IndexDocumentOutput) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutput() BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return o.ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(context.Background()) +} + +func (o BucketWebsiteConfigurationV2IndexDocumentOutput) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketWebsiteConfigurationV2IndexDocument) *BucketWebsiteConfigurationV2IndexDocument { + return &v + }).(BucketWebsiteConfigurationV2IndexDocumentPtrOutput) +} + +// Suffix that is appended to a request that is for a directory on the website endpoint. +// For example, if the suffix is `index.html` and you make a request to `samplebucket/images/`, the data that is returned will be for the object with the key name `images/index.html`. +// The suffix must not be empty and must not include a slash character. +func (o BucketWebsiteConfigurationV2IndexDocumentOutput) Suffix() pulumi.StringOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2IndexDocument) string { return v.Suffix }).(pulumi.StringOutput) +} + +type BucketWebsiteConfigurationV2IndexDocumentPtrOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2IndexDocumentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2IndexDocument)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2IndexDocumentPtrOutput) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutput() BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2IndexDocumentPtrOutput) ToBucketWebsiteConfigurationV2IndexDocumentPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2IndexDocumentPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2IndexDocumentPtrOutput) Elem() BucketWebsiteConfigurationV2IndexDocumentOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2IndexDocument) BucketWebsiteConfigurationV2IndexDocument { + if v != nil { + return *v + } + var ret BucketWebsiteConfigurationV2IndexDocument + return ret + }).(BucketWebsiteConfigurationV2IndexDocumentOutput) +} + +// Suffix that is appended to a request that is for a directory on the website endpoint. +// For example, if the suffix is `index.html` and you make a request to `samplebucket/images/`, the data that is returned will be for the object with the key name `images/index.html`. +// The suffix must not be empty and must not include a slash character. +func (o BucketWebsiteConfigurationV2IndexDocumentPtrOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2IndexDocument) *string { + if v == nil { + return nil + } + return &v.Suffix + }).(pulumi.StringPtrOutput) +} + +type BucketWebsiteConfigurationV2RedirectAllRequestsTo struct { + // Name of the host where requests are redirected. + HostName string `pulumi:"hostName"` + // Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. + Protocol *string `pulumi:"protocol"` +} + +// BucketWebsiteConfigurationV2RedirectAllRequestsToInput is an input type that accepts BucketWebsiteConfigurationV2RedirectAllRequestsToArgs and BucketWebsiteConfigurationV2RedirectAllRequestsToOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RedirectAllRequestsToInput` via: +// +// BucketWebsiteConfigurationV2RedirectAllRequestsToArgs{...} +type BucketWebsiteConfigurationV2RedirectAllRequestsToInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToOutput + ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutputWithContext(context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToOutput +} + +type BucketWebsiteConfigurationV2RedirectAllRequestsToArgs struct { + // Name of the host where requests are redirected. + HostName pulumi.StringInput `pulumi:"hostName"` + // Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` +} + +func (BucketWebsiteConfigurationV2RedirectAllRequestsToArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RedirectAllRequestsTo)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2RedirectAllRequestsToArgs) ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToOutput { + return i.ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RedirectAllRequestsToArgs) ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) +} + +func (i BucketWebsiteConfigurationV2RedirectAllRequestsToArgs) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return i.ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RedirectAllRequestsToArgs) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RedirectAllRequestsToOutput).ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(ctx) +} + +// BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput is an input type that accepts BucketWebsiteConfigurationV2RedirectAllRequestsToArgs, BucketWebsiteConfigurationV2RedirectAllRequestsToPtr and BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput` via: +// +// BucketWebsiteConfigurationV2RedirectAllRequestsToArgs{...} +// +// or: +// +// nil +type BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput + ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput +} + +type bucketWebsiteConfigurationV2RedirectAllRequestsToPtrType BucketWebsiteConfigurationV2RedirectAllRequestsToArgs + +func BucketWebsiteConfigurationV2RedirectAllRequestsToPtr(v *BucketWebsiteConfigurationV2RedirectAllRequestsToArgs) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput { + return (*bucketWebsiteConfigurationV2RedirectAllRequestsToPtrType)(v) +} + +func (*bucketWebsiteConfigurationV2RedirectAllRequestsToPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2RedirectAllRequestsTo)(nil)).Elem() +} + +func (i *bucketWebsiteConfigurationV2RedirectAllRequestsToPtrType) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return i.ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(context.Background()) +} + +func (i *bucketWebsiteConfigurationV2RedirectAllRequestsToPtrType) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) +} + +type BucketWebsiteConfigurationV2RedirectAllRequestsToOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RedirectAllRequestsTo)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) ToBucketWebsiteConfigurationV2RedirectAllRequestsToOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return o.ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(context.Background()) +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketWebsiteConfigurationV2RedirectAllRequestsTo) *BucketWebsiteConfigurationV2RedirectAllRequestsTo { + return &v + }).(BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) +} + +// Name of the host where requests are redirected. +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) HostName() pulumi.StringOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RedirectAllRequestsTo) string { return v.HostName }).(pulumi.StringOutput) +} + +// Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RedirectAllRequestsTo) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +type BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2RedirectAllRequestsTo)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput() BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) ToBucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) Elem() BucketWebsiteConfigurationV2RedirectAllRequestsToOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2RedirectAllRequestsTo) BucketWebsiteConfigurationV2RedirectAllRequestsTo { + if v != nil { + return *v + } + var ret BucketWebsiteConfigurationV2RedirectAllRequestsTo + return ret + }).(BucketWebsiteConfigurationV2RedirectAllRequestsToOutput) +} + +// Name of the host where requests are redirected. +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) HostName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2RedirectAllRequestsTo) *string { + if v == nil { + return nil + } + return &v.HostName + }).(pulumi.StringPtrOutput) +} + +// Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. +func (o BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2RedirectAllRequestsTo) *string { + if v == nil { + return nil + } + return v.Protocol + }).(pulumi.StringPtrOutput) +} + +type BucketWebsiteConfigurationV2RoutingRule struct { + // Configuration block for describing a condition that must be met for the specified redirect to apply. See below. + Condition *BucketWebsiteConfigurationV2RoutingRuleCondition `pulumi:"condition"` + // Configuration block for redirect information. See below. + Redirect BucketWebsiteConfigurationV2RoutingRuleRedirect `pulumi:"redirect"` +} + +// BucketWebsiteConfigurationV2RoutingRuleInput is an input type that accepts BucketWebsiteConfigurationV2RoutingRuleArgs and BucketWebsiteConfigurationV2RoutingRuleOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RoutingRuleInput` via: +// +// BucketWebsiteConfigurationV2RoutingRuleArgs{...} +type BucketWebsiteConfigurationV2RoutingRuleInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RoutingRuleOutput() BucketWebsiteConfigurationV2RoutingRuleOutput + ToBucketWebsiteConfigurationV2RoutingRuleOutputWithContext(context.Context) BucketWebsiteConfigurationV2RoutingRuleOutput +} + +type BucketWebsiteConfigurationV2RoutingRuleArgs struct { + // Configuration block for describing a condition that must be met for the specified redirect to apply. See below. + Condition BucketWebsiteConfigurationV2RoutingRuleConditionPtrInput `pulumi:"condition"` + // Configuration block for redirect information. See below. + Redirect BucketWebsiteConfigurationV2RoutingRuleRedirectInput `pulumi:"redirect"` +} + +func (BucketWebsiteConfigurationV2RoutingRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRule)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2RoutingRuleArgs) ToBucketWebsiteConfigurationV2RoutingRuleOutput() BucketWebsiteConfigurationV2RoutingRuleOutput { + return i.ToBucketWebsiteConfigurationV2RoutingRuleOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RoutingRuleArgs) ToBucketWebsiteConfigurationV2RoutingRuleOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RoutingRuleOutput) +} + +// BucketWebsiteConfigurationV2RoutingRuleArrayInput is an input type that accepts BucketWebsiteConfigurationV2RoutingRuleArray and BucketWebsiteConfigurationV2RoutingRuleArrayOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RoutingRuleArrayInput` via: +// +// BucketWebsiteConfigurationV2RoutingRuleArray{ BucketWebsiteConfigurationV2RoutingRuleArgs{...} } +type BucketWebsiteConfigurationV2RoutingRuleArrayInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RoutingRuleArrayOutput() BucketWebsiteConfigurationV2RoutingRuleArrayOutput + ToBucketWebsiteConfigurationV2RoutingRuleArrayOutputWithContext(context.Context) BucketWebsiteConfigurationV2RoutingRuleArrayOutput +} + +type BucketWebsiteConfigurationV2RoutingRuleArray []BucketWebsiteConfigurationV2RoutingRuleInput + +func (BucketWebsiteConfigurationV2RoutingRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketWebsiteConfigurationV2RoutingRule)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2RoutingRuleArray) ToBucketWebsiteConfigurationV2RoutingRuleArrayOutput() BucketWebsiteConfigurationV2RoutingRuleArrayOutput { + return i.ToBucketWebsiteConfigurationV2RoutingRuleArrayOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RoutingRuleArray) ToBucketWebsiteConfigurationV2RoutingRuleArrayOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RoutingRuleArrayOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RoutingRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRule)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RoutingRuleOutput) ToBucketWebsiteConfigurationV2RoutingRuleOutput() BucketWebsiteConfigurationV2RoutingRuleOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleOutput) ToBucketWebsiteConfigurationV2RoutingRuleOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleOutput { + return o +} + +// Configuration block for describing a condition that must be met for the specified redirect to apply. See below. +func (o BucketWebsiteConfigurationV2RoutingRuleOutput) Condition() BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRule) *BucketWebsiteConfigurationV2RoutingRuleCondition { + return v.Condition + }).(BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) +} + +// Configuration block for redirect information. See below. +func (o BucketWebsiteConfigurationV2RoutingRuleOutput) Redirect() BucketWebsiteConfigurationV2RoutingRuleRedirectOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRule) BucketWebsiteConfigurationV2RoutingRuleRedirect { + return v.Redirect + }).(BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleArrayOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RoutingRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]BucketWebsiteConfigurationV2RoutingRule)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RoutingRuleArrayOutput) ToBucketWebsiteConfigurationV2RoutingRuleArrayOutput() BucketWebsiteConfigurationV2RoutingRuleArrayOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleArrayOutput) ToBucketWebsiteConfigurationV2RoutingRuleArrayOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleArrayOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleArrayOutput) Index(i pulumi.IntInput) BucketWebsiteConfigurationV2RoutingRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) BucketWebsiteConfigurationV2RoutingRule { + return vs[0].([]BucketWebsiteConfigurationV2RoutingRule)[vs[1].(int)] + }).(BucketWebsiteConfigurationV2RoutingRuleOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleCondition struct { + // HTTP error code when the redirect is applied. If specified with `keyPrefixEquals`, then both must be true for the redirect to be applied. + HttpErrorCodeReturnedEquals *string `pulumi:"httpErrorCodeReturnedEquals"` + // Object key name prefix when the redirect is applied. If specified with `httpErrorCodeReturnedEquals`, then both must be true for the redirect to be applied. + KeyPrefixEquals *string `pulumi:"keyPrefixEquals"` +} + +// BucketWebsiteConfigurationV2RoutingRuleConditionInput is an input type that accepts BucketWebsiteConfigurationV2RoutingRuleConditionArgs and BucketWebsiteConfigurationV2RoutingRuleConditionOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RoutingRuleConditionInput` via: +// +// BucketWebsiteConfigurationV2RoutingRuleConditionArgs{...} +type BucketWebsiteConfigurationV2RoutingRuleConditionInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RoutingRuleConditionOutput() BucketWebsiteConfigurationV2RoutingRuleConditionOutput + ToBucketWebsiteConfigurationV2RoutingRuleConditionOutputWithContext(context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionOutput +} + +type BucketWebsiteConfigurationV2RoutingRuleConditionArgs struct { + // HTTP error code when the redirect is applied. If specified with `keyPrefixEquals`, then both must be true for the redirect to be applied. + HttpErrorCodeReturnedEquals pulumi.StringPtrInput `pulumi:"httpErrorCodeReturnedEquals"` + // Object key name prefix when the redirect is applied. If specified with `httpErrorCodeReturnedEquals`, then both must be true for the redirect to be applied. + KeyPrefixEquals pulumi.StringPtrInput `pulumi:"keyPrefixEquals"` +} + +func (BucketWebsiteConfigurationV2RoutingRuleConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleCondition)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2RoutingRuleConditionArgs) ToBucketWebsiteConfigurationV2RoutingRuleConditionOutput() BucketWebsiteConfigurationV2RoutingRuleConditionOutput { + return i.ToBucketWebsiteConfigurationV2RoutingRuleConditionOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RoutingRuleConditionArgs) ToBucketWebsiteConfigurationV2RoutingRuleConditionOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RoutingRuleConditionOutput) +} + +func (i BucketWebsiteConfigurationV2RoutingRuleConditionArgs) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput() BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return i.ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RoutingRuleConditionArgs) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RoutingRuleConditionOutput).ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(ctx) +} + +// BucketWebsiteConfigurationV2RoutingRuleConditionPtrInput is an input type that accepts BucketWebsiteConfigurationV2RoutingRuleConditionArgs, BucketWebsiteConfigurationV2RoutingRuleConditionPtr and BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RoutingRuleConditionPtrInput` via: +// +// BucketWebsiteConfigurationV2RoutingRuleConditionArgs{...} +// +// or: +// +// nil +type BucketWebsiteConfigurationV2RoutingRuleConditionPtrInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput() BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput + ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput +} + +type bucketWebsiteConfigurationV2RoutingRuleConditionPtrType BucketWebsiteConfigurationV2RoutingRuleConditionArgs + +func BucketWebsiteConfigurationV2RoutingRuleConditionPtr(v *BucketWebsiteConfigurationV2RoutingRuleConditionArgs) BucketWebsiteConfigurationV2RoutingRuleConditionPtrInput { + return (*bucketWebsiteConfigurationV2RoutingRuleConditionPtrType)(v) +} + +func (*bucketWebsiteConfigurationV2RoutingRuleConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2RoutingRuleCondition)(nil)).Elem() +} + +func (i *bucketWebsiteConfigurationV2RoutingRuleConditionPtrType) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput() BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return i.ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(context.Background()) +} + +func (i *bucketWebsiteConfigurationV2RoutingRuleConditionPtrType) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleConditionOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RoutingRuleConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleCondition)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionOutput) ToBucketWebsiteConfigurationV2RoutingRuleConditionOutput() BucketWebsiteConfigurationV2RoutingRuleConditionOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionOutput) ToBucketWebsiteConfigurationV2RoutingRuleConditionOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionOutput) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput() BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return o.ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(context.Background()) +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionOutput) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BucketWebsiteConfigurationV2RoutingRuleCondition) *BucketWebsiteConfigurationV2RoutingRuleCondition { + return &v + }).(BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) +} + +// HTTP error code when the redirect is applied. If specified with `keyPrefixEquals`, then both must be true for the redirect to be applied. +func (o BucketWebsiteConfigurationV2RoutingRuleConditionOutput) HttpErrorCodeReturnedEquals() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleCondition) *string { return v.HttpErrorCodeReturnedEquals }).(pulumi.StringPtrOutput) +} + +// Object key name prefix when the redirect is applied. If specified with `httpErrorCodeReturnedEquals`, then both must be true for the redirect to be applied. +func (o BucketWebsiteConfigurationV2RoutingRuleConditionOutput) KeyPrefixEquals() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleCondition) *string { return v.KeyPrefixEquals }).(pulumi.StringPtrOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BucketWebsiteConfigurationV2RoutingRuleCondition)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput() BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) ToBucketWebsiteConfigurationV2RoutingRuleConditionPtrOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) Elem() BucketWebsiteConfigurationV2RoutingRuleConditionOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2RoutingRuleCondition) BucketWebsiteConfigurationV2RoutingRuleCondition { + if v != nil { + return *v + } + var ret BucketWebsiteConfigurationV2RoutingRuleCondition + return ret + }).(BucketWebsiteConfigurationV2RoutingRuleConditionOutput) +} + +// HTTP error code when the redirect is applied. If specified with `keyPrefixEquals`, then both must be true for the redirect to be applied. +func (o BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) HttpErrorCodeReturnedEquals() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2RoutingRuleCondition) *string { + if v == nil { + return nil + } + return v.HttpErrorCodeReturnedEquals + }).(pulumi.StringPtrOutput) +} + +// Object key name prefix when the redirect is applied. If specified with `httpErrorCodeReturnedEquals`, then both must be true for the redirect to be applied. +func (o BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput) KeyPrefixEquals() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BucketWebsiteConfigurationV2RoutingRuleCondition) *string { + if v == nil { + return nil + } + return v.KeyPrefixEquals + }).(pulumi.StringPtrOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleRedirect struct { + // Host name to use in the redirect request. + HostName *string `pulumi:"hostName"` + // HTTP redirect code to use on the response. + HttpRedirectCode *string `pulumi:"httpRedirectCode"` + // Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. + Protocol *string `pulumi:"protocol"` + // Object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix `docs/` (objects in the `docs/` folder) to `documents/`, you can set a `condition` block with `keyPrefixEquals` set to `docs/` and in the `redirect` set `replaceKeyPrefixWith` to `/documents`. + ReplaceKeyPrefixWith *string `pulumi:"replaceKeyPrefixWith"` + // Specific object key to use in the redirect request. For example, redirect request to `error.html`. + ReplaceKeyWith *string `pulumi:"replaceKeyWith"` +} + +// BucketWebsiteConfigurationV2RoutingRuleRedirectInput is an input type that accepts BucketWebsiteConfigurationV2RoutingRuleRedirectArgs and BucketWebsiteConfigurationV2RoutingRuleRedirectOutput values. +// You can construct a concrete instance of `BucketWebsiteConfigurationV2RoutingRuleRedirectInput` via: +// +// BucketWebsiteConfigurationV2RoutingRuleRedirectArgs{...} +type BucketWebsiteConfigurationV2RoutingRuleRedirectInput interface { + pulumi.Input + + ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutput() BucketWebsiteConfigurationV2RoutingRuleRedirectOutput + ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutputWithContext(context.Context) BucketWebsiteConfigurationV2RoutingRuleRedirectOutput +} + +type BucketWebsiteConfigurationV2RoutingRuleRedirectArgs struct { + // Host name to use in the redirect request. + HostName pulumi.StringPtrInput `pulumi:"hostName"` + // HTTP redirect code to use on the response. + HttpRedirectCode pulumi.StringPtrInput `pulumi:"httpRedirectCode"` + // Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + // Object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix `docs/` (objects in the `docs/` folder) to `documents/`, you can set a `condition` block with `keyPrefixEquals` set to `docs/` and in the `redirect` set `replaceKeyPrefixWith` to `/documents`. + ReplaceKeyPrefixWith pulumi.StringPtrInput `pulumi:"replaceKeyPrefixWith"` + // Specific object key to use in the redirect request. For example, redirect request to `error.html`. + ReplaceKeyWith pulumi.StringPtrInput `pulumi:"replaceKeyWith"` +} + +func (BucketWebsiteConfigurationV2RoutingRuleRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleRedirect)(nil)).Elem() +} + +func (i BucketWebsiteConfigurationV2RoutingRuleRedirectArgs) ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutput() BucketWebsiteConfigurationV2RoutingRuleRedirectOutput { + return i.ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutputWithContext(context.Background()) +} + +func (i BucketWebsiteConfigurationV2RoutingRuleRedirectArgs) ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) +} + +type BucketWebsiteConfigurationV2RoutingRuleRedirectOutput struct{ *pulumi.OutputState } + +func (BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleRedirect)(nil)).Elem() +} + +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutput() BucketWebsiteConfigurationV2RoutingRuleRedirectOutput { + return o +} + +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) ToBucketWebsiteConfigurationV2RoutingRuleRedirectOutputWithContext(ctx context.Context) BucketWebsiteConfigurationV2RoutingRuleRedirectOutput { + return o +} + +// Host name to use in the redirect request. +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) HostName() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleRedirect) *string { return v.HostName }).(pulumi.StringPtrOutput) +} + +// HTTP redirect code to use on the response. +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) HttpRedirectCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleRedirect) *string { return v.HttpRedirectCode }).(pulumi.StringPtrOutput) +} + +// Protocol to use when redirecting requests. The default is the protocol that is used in the original request. Valid values: `http`, `https`. +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleRedirect) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +// Object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix `docs/` (objects in the `docs/` folder) to `documents/`, you can set a `condition` block with `keyPrefixEquals` set to `docs/` and in the `redirect` set `replaceKeyPrefixWith` to `/documents`. +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) ReplaceKeyPrefixWith() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleRedirect) *string { return v.ReplaceKeyPrefixWith }).(pulumi.StringPtrOutput) +} + +// Specific object key to use in the redirect request. For example, redirect request to `error.html`. +func (o BucketWebsiteConfigurationV2RoutingRuleRedirectOutput) ReplaceKeyWith() pulumi.StringPtrOutput { + return o.ApplyT(func(v BucketWebsiteConfigurationV2RoutingRuleRedirect) *string { return v.ReplaceKeyWith }).(pulumi.StringPtrOutput) +} + +type InventoryDestination struct { + // S3 bucket configuration where inventory results are published (documented below). + Bucket InventoryDestinationBucket `pulumi:"bucket"` +} + +// InventoryDestinationInput is an input type that accepts InventoryDestinationArgs and InventoryDestinationOutput values. +// You can construct a concrete instance of `InventoryDestinationInput` via: +// +// InventoryDestinationArgs{...} +type InventoryDestinationInput interface { + pulumi.Input + + ToInventoryDestinationOutput() InventoryDestinationOutput + ToInventoryDestinationOutputWithContext(context.Context) InventoryDestinationOutput +} + +type InventoryDestinationArgs struct { + // S3 bucket configuration where inventory results are published (documented below). + Bucket InventoryDestinationBucketInput `pulumi:"bucket"` +} + +func (InventoryDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestination)(nil)).Elem() +} + +func (i InventoryDestinationArgs) ToInventoryDestinationOutput() InventoryDestinationOutput { + return i.ToInventoryDestinationOutputWithContext(context.Background()) +} + +func (i InventoryDestinationArgs) ToInventoryDestinationOutputWithContext(ctx context.Context) InventoryDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationOutput) +} + +func (i InventoryDestinationArgs) ToInventoryDestinationPtrOutput() InventoryDestinationPtrOutput { + return i.ToInventoryDestinationPtrOutputWithContext(context.Background()) +} + +func (i InventoryDestinationArgs) ToInventoryDestinationPtrOutputWithContext(ctx context.Context) InventoryDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationOutput).ToInventoryDestinationPtrOutputWithContext(ctx) +} + +// InventoryDestinationPtrInput is an input type that accepts InventoryDestinationArgs, InventoryDestinationPtr and InventoryDestinationPtrOutput values. +// You can construct a concrete instance of `InventoryDestinationPtrInput` via: +// +// InventoryDestinationArgs{...} +// +// or: +// +// nil +type InventoryDestinationPtrInput interface { + pulumi.Input + + ToInventoryDestinationPtrOutput() InventoryDestinationPtrOutput + ToInventoryDestinationPtrOutputWithContext(context.Context) InventoryDestinationPtrOutput +} + +type inventoryDestinationPtrType InventoryDestinationArgs + +func InventoryDestinationPtr(v *InventoryDestinationArgs) InventoryDestinationPtrInput { + return (*inventoryDestinationPtrType)(v) +} + +func (*inventoryDestinationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestination)(nil)).Elem() +} + +func (i *inventoryDestinationPtrType) ToInventoryDestinationPtrOutput() InventoryDestinationPtrOutput { + return i.ToInventoryDestinationPtrOutputWithContext(context.Background()) +} + +func (i *inventoryDestinationPtrType) ToInventoryDestinationPtrOutputWithContext(ctx context.Context) InventoryDestinationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationPtrOutput) +} + +type InventoryDestinationOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestination)(nil)).Elem() +} + +func (o InventoryDestinationOutput) ToInventoryDestinationOutput() InventoryDestinationOutput { + return o +} + +func (o InventoryDestinationOutput) ToInventoryDestinationOutputWithContext(ctx context.Context) InventoryDestinationOutput { + return o +} + +func (o InventoryDestinationOutput) ToInventoryDestinationPtrOutput() InventoryDestinationPtrOutput { + return o.ToInventoryDestinationPtrOutputWithContext(context.Background()) +} + +func (o InventoryDestinationOutput) ToInventoryDestinationPtrOutputWithContext(ctx context.Context) InventoryDestinationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventoryDestination) *InventoryDestination { + return &v + }).(InventoryDestinationPtrOutput) +} + +// S3 bucket configuration where inventory results are published (documented below). +func (o InventoryDestinationOutput) Bucket() InventoryDestinationBucketOutput { + return o.ApplyT(func(v InventoryDestination) InventoryDestinationBucket { return v.Bucket }).(InventoryDestinationBucketOutput) +} + +type InventoryDestinationPtrOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestination)(nil)).Elem() +} + +func (o InventoryDestinationPtrOutput) ToInventoryDestinationPtrOutput() InventoryDestinationPtrOutput { + return o +} + +func (o InventoryDestinationPtrOutput) ToInventoryDestinationPtrOutputWithContext(ctx context.Context) InventoryDestinationPtrOutput { + return o +} + +func (o InventoryDestinationPtrOutput) Elem() InventoryDestinationOutput { + return o.ApplyT(func(v *InventoryDestination) InventoryDestination { + if v != nil { + return *v + } + var ret InventoryDestination + return ret + }).(InventoryDestinationOutput) +} + +// S3 bucket configuration where inventory results are published (documented below). +func (o InventoryDestinationPtrOutput) Bucket() InventoryDestinationBucketPtrOutput { + return o.ApplyT(func(v *InventoryDestination) *InventoryDestinationBucket { + if v == nil { + return nil + } + return &v.Bucket + }).(InventoryDestinationBucketPtrOutput) +} + +type InventoryDestinationBucket struct { + // ID of the account that owns the destination bucket. Recommended to be set to prevent problems if the destination bucket ownership changes. + AccountId *string `pulumi:"accountId"` + // Amazon S3 bucket ARN of the destination. + BucketArn string `pulumi:"bucketArn"` + // Contains the type of server-side encryption to use to encrypt the inventory (documented below). + Encryption *InventoryDestinationBucketEncryption `pulumi:"encryption"` + // Specifies the output format of the inventory results. Can be `CSV`, [`ORC`](https://orc.apache.org/) or [`Parquet`](https://parquet.apache.org/). + Format string `pulumi:"format"` + // Prefix that is prepended to all inventory results. + Prefix *string `pulumi:"prefix"` +} + +// InventoryDestinationBucketInput is an input type that accepts InventoryDestinationBucketArgs and InventoryDestinationBucketOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketInput` via: +// +// InventoryDestinationBucketArgs{...} +type InventoryDestinationBucketInput interface { + pulumi.Input + + ToInventoryDestinationBucketOutput() InventoryDestinationBucketOutput + ToInventoryDestinationBucketOutputWithContext(context.Context) InventoryDestinationBucketOutput +} + +type InventoryDestinationBucketArgs struct { + // ID of the account that owns the destination bucket. Recommended to be set to prevent problems if the destination bucket ownership changes. + AccountId pulumi.StringPtrInput `pulumi:"accountId"` + // Amazon S3 bucket ARN of the destination. + BucketArn pulumi.StringInput `pulumi:"bucketArn"` + // Contains the type of server-side encryption to use to encrypt the inventory (documented below). + Encryption InventoryDestinationBucketEncryptionPtrInput `pulumi:"encryption"` + // Specifies the output format of the inventory results. Can be `CSV`, [`ORC`](https://orc.apache.org/) or [`Parquet`](https://parquet.apache.org/). + Format pulumi.StringInput `pulumi:"format"` + // Prefix that is prepended to all inventory results. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` +} + +func (InventoryDestinationBucketArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucket)(nil)).Elem() +} + +func (i InventoryDestinationBucketArgs) ToInventoryDestinationBucketOutput() InventoryDestinationBucketOutput { + return i.ToInventoryDestinationBucketOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketArgs) ToInventoryDestinationBucketOutputWithContext(ctx context.Context) InventoryDestinationBucketOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketOutput) +} + +func (i InventoryDestinationBucketArgs) ToInventoryDestinationBucketPtrOutput() InventoryDestinationBucketPtrOutput { + return i.ToInventoryDestinationBucketPtrOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketArgs) ToInventoryDestinationBucketPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketOutput).ToInventoryDestinationBucketPtrOutputWithContext(ctx) +} + +// InventoryDestinationBucketPtrInput is an input type that accepts InventoryDestinationBucketArgs, InventoryDestinationBucketPtr and InventoryDestinationBucketPtrOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketPtrInput` via: +// +// InventoryDestinationBucketArgs{...} +// +// or: +// +// nil +type InventoryDestinationBucketPtrInput interface { + pulumi.Input + + ToInventoryDestinationBucketPtrOutput() InventoryDestinationBucketPtrOutput + ToInventoryDestinationBucketPtrOutputWithContext(context.Context) InventoryDestinationBucketPtrOutput +} + +type inventoryDestinationBucketPtrType InventoryDestinationBucketArgs + +func InventoryDestinationBucketPtr(v *InventoryDestinationBucketArgs) InventoryDestinationBucketPtrInput { + return (*inventoryDestinationBucketPtrType)(v) +} + +func (*inventoryDestinationBucketPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucket)(nil)).Elem() +} + +func (i *inventoryDestinationBucketPtrType) ToInventoryDestinationBucketPtrOutput() InventoryDestinationBucketPtrOutput { + return i.ToInventoryDestinationBucketPtrOutputWithContext(context.Background()) +} + +func (i *inventoryDestinationBucketPtrType) ToInventoryDestinationBucketPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketPtrOutput) +} + +type InventoryDestinationBucketOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucket)(nil)).Elem() +} + +func (o InventoryDestinationBucketOutput) ToInventoryDestinationBucketOutput() InventoryDestinationBucketOutput { + return o +} + +func (o InventoryDestinationBucketOutput) ToInventoryDestinationBucketOutputWithContext(ctx context.Context) InventoryDestinationBucketOutput { + return o +} + +func (o InventoryDestinationBucketOutput) ToInventoryDestinationBucketPtrOutput() InventoryDestinationBucketPtrOutput { + return o.ToInventoryDestinationBucketPtrOutputWithContext(context.Background()) +} + +func (o InventoryDestinationBucketOutput) ToInventoryDestinationBucketPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventoryDestinationBucket) *InventoryDestinationBucket { + return &v + }).(InventoryDestinationBucketPtrOutput) +} + +// ID of the account that owns the destination bucket. Recommended to be set to prevent problems if the destination bucket ownership changes. +func (o InventoryDestinationBucketOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v InventoryDestinationBucket) *string { return v.AccountId }).(pulumi.StringPtrOutput) +} + +// Amazon S3 bucket ARN of the destination. +func (o InventoryDestinationBucketOutput) BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v InventoryDestinationBucket) string { return v.BucketArn }).(pulumi.StringOutput) +} + +// Contains the type of server-side encryption to use to encrypt the inventory (documented below). +func (o InventoryDestinationBucketOutput) Encryption() InventoryDestinationBucketEncryptionPtrOutput { + return o.ApplyT(func(v InventoryDestinationBucket) *InventoryDestinationBucketEncryption { return v.Encryption }).(InventoryDestinationBucketEncryptionPtrOutput) +} + +// Specifies the output format of the inventory results. Can be `CSV`, [`ORC`](https://orc.apache.org/) or [`Parquet`](https://parquet.apache.org/). +func (o InventoryDestinationBucketOutput) Format() pulumi.StringOutput { + return o.ApplyT(func(v InventoryDestinationBucket) string { return v.Format }).(pulumi.StringOutput) +} + +// Prefix that is prepended to all inventory results. +func (o InventoryDestinationBucketOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v InventoryDestinationBucket) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +type InventoryDestinationBucketPtrOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucket)(nil)).Elem() +} + +func (o InventoryDestinationBucketPtrOutput) ToInventoryDestinationBucketPtrOutput() InventoryDestinationBucketPtrOutput { + return o +} + +func (o InventoryDestinationBucketPtrOutput) ToInventoryDestinationBucketPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketPtrOutput { + return o +} + +func (o InventoryDestinationBucketPtrOutput) Elem() InventoryDestinationBucketOutput { + return o.ApplyT(func(v *InventoryDestinationBucket) InventoryDestinationBucket { + if v != nil { + return *v + } + var ret InventoryDestinationBucket + return ret + }).(InventoryDestinationBucketOutput) +} + +// ID of the account that owns the destination bucket. Recommended to be set to prevent problems if the destination bucket ownership changes. +func (o InventoryDestinationBucketPtrOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucket) *string { + if v == nil { + return nil + } + return v.AccountId + }).(pulumi.StringPtrOutput) +} + +// Amazon S3 bucket ARN of the destination. +func (o InventoryDestinationBucketPtrOutput) BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucket) *string { + if v == nil { + return nil + } + return &v.BucketArn + }).(pulumi.StringPtrOutput) +} + +// Contains the type of server-side encryption to use to encrypt the inventory (documented below). +func (o InventoryDestinationBucketPtrOutput) Encryption() InventoryDestinationBucketEncryptionPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucket) *InventoryDestinationBucketEncryption { + if v == nil { + return nil + } + return v.Encryption + }).(InventoryDestinationBucketEncryptionPtrOutput) +} + +// Specifies the output format of the inventory results. Can be `CSV`, [`ORC`](https://orc.apache.org/) or [`Parquet`](https://parquet.apache.org/). +func (o InventoryDestinationBucketPtrOutput) Format() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucket) *string { + if v == nil { + return nil + } + return &v.Format + }).(pulumi.StringPtrOutput) +} + +// Prefix that is prepended to all inventory results. +func (o InventoryDestinationBucketPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucket) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +type InventoryDestinationBucketEncryption struct { + // Specifies to use server-side encryption with AWS KMS-managed keys to encrypt the inventory file (documented below). + SseKms *InventoryDestinationBucketEncryptionSseKms `pulumi:"sseKms"` + // Specifies to use server-side encryption with Amazon S3-managed keys (SSE-S3) to encrypt the inventory file. + SseS3 *InventoryDestinationBucketEncryptionSseS3 `pulumi:"sseS3"` +} + +// InventoryDestinationBucketEncryptionInput is an input type that accepts InventoryDestinationBucketEncryptionArgs and InventoryDestinationBucketEncryptionOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketEncryptionInput` via: +// +// InventoryDestinationBucketEncryptionArgs{...} +type InventoryDestinationBucketEncryptionInput interface { + pulumi.Input + + ToInventoryDestinationBucketEncryptionOutput() InventoryDestinationBucketEncryptionOutput + ToInventoryDestinationBucketEncryptionOutputWithContext(context.Context) InventoryDestinationBucketEncryptionOutput +} + +type InventoryDestinationBucketEncryptionArgs struct { + // Specifies to use server-side encryption with AWS KMS-managed keys to encrypt the inventory file (documented below). + SseKms InventoryDestinationBucketEncryptionSseKmsPtrInput `pulumi:"sseKms"` + // Specifies to use server-side encryption with Amazon S3-managed keys (SSE-S3) to encrypt the inventory file. + SseS3 InventoryDestinationBucketEncryptionSseS3PtrInput `pulumi:"sseS3"` +} + +func (InventoryDestinationBucketEncryptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucketEncryption)(nil)).Elem() +} + +func (i InventoryDestinationBucketEncryptionArgs) ToInventoryDestinationBucketEncryptionOutput() InventoryDestinationBucketEncryptionOutput { + return i.ToInventoryDestinationBucketEncryptionOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketEncryptionArgs) ToInventoryDestinationBucketEncryptionOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionOutput) +} + +func (i InventoryDestinationBucketEncryptionArgs) ToInventoryDestinationBucketEncryptionPtrOutput() InventoryDestinationBucketEncryptionPtrOutput { + return i.ToInventoryDestinationBucketEncryptionPtrOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketEncryptionArgs) ToInventoryDestinationBucketEncryptionPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionOutput).ToInventoryDestinationBucketEncryptionPtrOutputWithContext(ctx) +} + +// InventoryDestinationBucketEncryptionPtrInput is an input type that accepts InventoryDestinationBucketEncryptionArgs, InventoryDestinationBucketEncryptionPtr and InventoryDestinationBucketEncryptionPtrOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketEncryptionPtrInput` via: +// +// InventoryDestinationBucketEncryptionArgs{...} +// +// or: +// +// nil +type InventoryDestinationBucketEncryptionPtrInput interface { + pulumi.Input + + ToInventoryDestinationBucketEncryptionPtrOutput() InventoryDestinationBucketEncryptionPtrOutput + ToInventoryDestinationBucketEncryptionPtrOutputWithContext(context.Context) InventoryDestinationBucketEncryptionPtrOutput +} + +type inventoryDestinationBucketEncryptionPtrType InventoryDestinationBucketEncryptionArgs + +func InventoryDestinationBucketEncryptionPtr(v *InventoryDestinationBucketEncryptionArgs) InventoryDestinationBucketEncryptionPtrInput { + return (*inventoryDestinationBucketEncryptionPtrType)(v) +} + +func (*inventoryDestinationBucketEncryptionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucketEncryption)(nil)).Elem() +} + +func (i *inventoryDestinationBucketEncryptionPtrType) ToInventoryDestinationBucketEncryptionPtrOutput() InventoryDestinationBucketEncryptionPtrOutput { + return i.ToInventoryDestinationBucketEncryptionPtrOutputWithContext(context.Background()) +} + +func (i *inventoryDestinationBucketEncryptionPtrType) ToInventoryDestinationBucketEncryptionPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionPtrOutput) +} + +type InventoryDestinationBucketEncryptionOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketEncryptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucketEncryption)(nil)).Elem() +} + +func (o InventoryDestinationBucketEncryptionOutput) ToInventoryDestinationBucketEncryptionOutput() InventoryDestinationBucketEncryptionOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionOutput) ToInventoryDestinationBucketEncryptionOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionOutput) ToInventoryDestinationBucketEncryptionPtrOutput() InventoryDestinationBucketEncryptionPtrOutput { + return o.ToInventoryDestinationBucketEncryptionPtrOutputWithContext(context.Background()) +} + +func (o InventoryDestinationBucketEncryptionOutput) ToInventoryDestinationBucketEncryptionPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventoryDestinationBucketEncryption) *InventoryDestinationBucketEncryption { + return &v + }).(InventoryDestinationBucketEncryptionPtrOutput) +} + +// Specifies to use server-side encryption with AWS KMS-managed keys to encrypt the inventory file (documented below). +func (o InventoryDestinationBucketEncryptionOutput) SseKms() InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return o.ApplyT(func(v InventoryDestinationBucketEncryption) *InventoryDestinationBucketEncryptionSseKms { + return v.SseKms + }).(InventoryDestinationBucketEncryptionSseKmsPtrOutput) +} + +// Specifies to use server-side encryption with Amazon S3-managed keys (SSE-S3) to encrypt the inventory file. +func (o InventoryDestinationBucketEncryptionOutput) SseS3() InventoryDestinationBucketEncryptionSseS3PtrOutput { + return o.ApplyT(func(v InventoryDestinationBucketEncryption) *InventoryDestinationBucketEncryptionSseS3 { + return v.SseS3 + }).(InventoryDestinationBucketEncryptionSseS3PtrOutput) +} + +type InventoryDestinationBucketEncryptionPtrOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketEncryptionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucketEncryption)(nil)).Elem() +} + +func (o InventoryDestinationBucketEncryptionPtrOutput) ToInventoryDestinationBucketEncryptionPtrOutput() InventoryDestinationBucketEncryptionPtrOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionPtrOutput) ToInventoryDestinationBucketEncryptionPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionPtrOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionPtrOutput) Elem() InventoryDestinationBucketEncryptionOutput { + return o.ApplyT(func(v *InventoryDestinationBucketEncryption) InventoryDestinationBucketEncryption { + if v != nil { + return *v + } + var ret InventoryDestinationBucketEncryption + return ret + }).(InventoryDestinationBucketEncryptionOutput) +} + +// Specifies to use server-side encryption with AWS KMS-managed keys to encrypt the inventory file (documented below). +func (o InventoryDestinationBucketEncryptionPtrOutput) SseKms() InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucketEncryption) *InventoryDestinationBucketEncryptionSseKms { + if v == nil { + return nil + } + return v.SseKms + }).(InventoryDestinationBucketEncryptionSseKmsPtrOutput) +} + +// Specifies to use server-side encryption with Amazon S3-managed keys (SSE-S3) to encrypt the inventory file. +func (o InventoryDestinationBucketEncryptionPtrOutput) SseS3() InventoryDestinationBucketEncryptionSseS3PtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucketEncryption) *InventoryDestinationBucketEncryptionSseS3 { + if v == nil { + return nil + } + return v.SseS3 + }).(InventoryDestinationBucketEncryptionSseS3PtrOutput) +} + +type InventoryDestinationBucketEncryptionSseKms struct { + // ARN of the KMS customer master key (CMK) used to encrypt the inventory file. + KeyId string `pulumi:"keyId"` +} + +// InventoryDestinationBucketEncryptionSseKmsInput is an input type that accepts InventoryDestinationBucketEncryptionSseKmsArgs and InventoryDestinationBucketEncryptionSseKmsOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketEncryptionSseKmsInput` via: +// +// InventoryDestinationBucketEncryptionSseKmsArgs{...} +type InventoryDestinationBucketEncryptionSseKmsInput interface { + pulumi.Input + + ToInventoryDestinationBucketEncryptionSseKmsOutput() InventoryDestinationBucketEncryptionSseKmsOutput + ToInventoryDestinationBucketEncryptionSseKmsOutputWithContext(context.Context) InventoryDestinationBucketEncryptionSseKmsOutput +} + +type InventoryDestinationBucketEncryptionSseKmsArgs struct { + // ARN of the KMS customer master key (CMK) used to encrypt the inventory file. + KeyId pulumi.StringInput `pulumi:"keyId"` +} + +func (InventoryDestinationBucketEncryptionSseKmsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucketEncryptionSseKms)(nil)).Elem() +} + +func (i InventoryDestinationBucketEncryptionSseKmsArgs) ToInventoryDestinationBucketEncryptionSseKmsOutput() InventoryDestinationBucketEncryptionSseKmsOutput { + return i.ToInventoryDestinationBucketEncryptionSseKmsOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketEncryptionSseKmsArgs) ToInventoryDestinationBucketEncryptionSseKmsOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseKmsOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionSseKmsOutput) +} + +func (i InventoryDestinationBucketEncryptionSseKmsArgs) ToInventoryDestinationBucketEncryptionSseKmsPtrOutput() InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return i.ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketEncryptionSseKmsArgs) ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionSseKmsOutput).ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(ctx) +} + +// InventoryDestinationBucketEncryptionSseKmsPtrInput is an input type that accepts InventoryDestinationBucketEncryptionSseKmsArgs, InventoryDestinationBucketEncryptionSseKmsPtr and InventoryDestinationBucketEncryptionSseKmsPtrOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketEncryptionSseKmsPtrInput` via: +// +// InventoryDestinationBucketEncryptionSseKmsArgs{...} +// +// or: +// +// nil +type InventoryDestinationBucketEncryptionSseKmsPtrInput interface { + pulumi.Input + + ToInventoryDestinationBucketEncryptionSseKmsPtrOutput() InventoryDestinationBucketEncryptionSseKmsPtrOutput + ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(context.Context) InventoryDestinationBucketEncryptionSseKmsPtrOutput +} + +type inventoryDestinationBucketEncryptionSseKmsPtrType InventoryDestinationBucketEncryptionSseKmsArgs + +func InventoryDestinationBucketEncryptionSseKmsPtr(v *InventoryDestinationBucketEncryptionSseKmsArgs) InventoryDestinationBucketEncryptionSseKmsPtrInput { + return (*inventoryDestinationBucketEncryptionSseKmsPtrType)(v) +} + +func (*inventoryDestinationBucketEncryptionSseKmsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucketEncryptionSseKms)(nil)).Elem() +} + +func (i *inventoryDestinationBucketEncryptionSseKmsPtrType) ToInventoryDestinationBucketEncryptionSseKmsPtrOutput() InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return i.ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(context.Background()) +} + +func (i *inventoryDestinationBucketEncryptionSseKmsPtrType) ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionSseKmsPtrOutput) +} + +type InventoryDestinationBucketEncryptionSseKmsOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketEncryptionSseKmsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucketEncryptionSseKms)(nil)).Elem() +} + +func (o InventoryDestinationBucketEncryptionSseKmsOutput) ToInventoryDestinationBucketEncryptionSseKmsOutput() InventoryDestinationBucketEncryptionSseKmsOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionSseKmsOutput) ToInventoryDestinationBucketEncryptionSseKmsOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseKmsOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionSseKmsOutput) ToInventoryDestinationBucketEncryptionSseKmsPtrOutput() InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return o.ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(context.Background()) +} + +func (o InventoryDestinationBucketEncryptionSseKmsOutput) ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventoryDestinationBucketEncryptionSseKms) *InventoryDestinationBucketEncryptionSseKms { + return &v + }).(InventoryDestinationBucketEncryptionSseKmsPtrOutput) +} + +// ARN of the KMS customer master key (CMK) used to encrypt the inventory file. +func (o InventoryDestinationBucketEncryptionSseKmsOutput) KeyId() pulumi.StringOutput { + return o.ApplyT(func(v InventoryDestinationBucketEncryptionSseKms) string { return v.KeyId }).(pulumi.StringOutput) +} + +type InventoryDestinationBucketEncryptionSseKmsPtrOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketEncryptionSseKmsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucketEncryptionSseKms)(nil)).Elem() +} + +func (o InventoryDestinationBucketEncryptionSseKmsPtrOutput) ToInventoryDestinationBucketEncryptionSseKmsPtrOutput() InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionSseKmsPtrOutput) ToInventoryDestinationBucketEncryptionSseKmsPtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseKmsPtrOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionSseKmsPtrOutput) Elem() InventoryDestinationBucketEncryptionSseKmsOutput { + return o.ApplyT(func(v *InventoryDestinationBucketEncryptionSseKms) InventoryDestinationBucketEncryptionSseKms { + if v != nil { + return *v + } + var ret InventoryDestinationBucketEncryptionSseKms + return ret + }).(InventoryDestinationBucketEncryptionSseKmsOutput) +} + +// ARN of the KMS customer master key (CMK) used to encrypt the inventory file. +func (o InventoryDestinationBucketEncryptionSseKmsPtrOutput) KeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventoryDestinationBucketEncryptionSseKms) *string { + if v == nil { + return nil + } + return &v.KeyId + }).(pulumi.StringPtrOutput) +} + +type InventoryDestinationBucketEncryptionSseS3 struct { +} + +// InventoryDestinationBucketEncryptionSseS3Input is an input type that accepts InventoryDestinationBucketEncryptionSseS3Args and InventoryDestinationBucketEncryptionSseS3Output values. +// You can construct a concrete instance of `InventoryDestinationBucketEncryptionSseS3Input` via: +// +// InventoryDestinationBucketEncryptionSseS3Args{...} +type InventoryDestinationBucketEncryptionSseS3Input interface { + pulumi.Input + + ToInventoryDestinationBucketEncryptionSseS3Output() InventoryDestinationBucketEncryptionSseS3Output + ToInventoryDestinationBucketEncryptionSseS3OutputWithContext(context.Context) InventoryDestinationBucketEncryptionSseS3Output +} + +type InventoryDestinationBucketEncryptionSseS3Args struct { +} + +func (InventoryDestinationBucketEncryptionSseS3Args) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucketEncryptionSseS3)(nil)).Elem() +} + +func (i InventoryDestinationBucketEncryptionSseS3Args) ToInventoryDestinationBucketEncryptionSseS3Output() InventoryDestinationBucketEncryptionSseS3Output { + return i.ToInventoryDestinationBucketEncryptionSseS3OutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketEncryptionSseS3Args) ToInventoryDestinationBucketEncryptionSseS3OutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseS3Output { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionSseS3Output) +} + +func (i InventoryDestinationBucketEncryptionSseS3Args) ToInventoryDestinationBucketEncryptionSseS3PtrOutput() InventoryDestinationBucketEncryptionSseS3PtrOutput { + return i.ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(context.Background()) +} + +func (i InventoryDestinationBucketEncryptionSseS3Args) ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseS3PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionSseS3Output).ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(ctx) +} + +// InventoryDestinationBucketEncryptionSseS3PtrInput is an input type that accepts InventoryDestinationBucketEncryptionSseS3Args, InventoryDestinationBucketEncryptionSseS3Ptr and InventoryDestinationBucketEncryptionSseS3PtrOutput values. +// You can construct a concrete instance of `InventoryDestinationBucketEncryptionSseS3PtrInput` via: +// +// InventoryDestinationBucketEncryptionSseS3Args{...} +// +// or: +// +// nil +type InventoryDestinationBucketEncryptionSseS3PtrInput interface { + pulumi.Input + + ToInventoryDestinationBucketEncryptionSseS3PtrOutput() InventoryDestinationBucketEncryptionSseS3PtrOutput + ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(context.Context) InventoryDestinationBucketEncryptionSseS3PtrOutput +} + +type inventoryDestinationBucketEncryptionSseS3PtrType InventoryDestinationBucketEncryptionSseS3Args + +func InventoryDestinationBucketEncryptionSseS3Ptr(v *InventoryDestinationBucketEncryptionSseS3Args) InventoryDestinationBucketEncryptionSseS3PtrInput { + return (*inventoryDestinationBucketEncryptionSseS3PtrType)(v) +} + +func (*inventoryDestinationBucketEncryptionSseS3PtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucketEncryptionSseS3)(nil)).Elem() +} + +func (i *inventoryDestinationBucketEncryptionSseS3PtrType) ToInventoryDestinationBucketEncryptionSseS3PtrOutput() InventoryDestinationBucketEncryptionSseS3PtrOutput { + return i.ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(context.Background()) +} + +func (i *inventoryDestinationBucketEncryptionSseS3PtrType) ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseS3PtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryDestinationBucketEncryptionSseS3PtrOutput) +} + +type InventoryDestinationBucketEncryptionSseS3Output struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketEncryptionSseS3Output) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryDestinationBucketEncryptionSseS3)(nil)).Elem() +} + +func (o InventoryDestinationBucketEncryptionSseS3Output) ToInventoryDestinationBucketEncryptionSseS3Output() InventoryDestinationBucketEncryptionSseS3Output { + return o +} + +func (o InventoryDestinationBucketEncryptionSseS3Output) ToInventoryDestinationBucketEncryptionSseS3OutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseS3Output { + return o +} + +func (o InventoryDestinationBucketEncryptionSseS3Output) ToInventoryDestinationBucketEncryptionSseS3PtrOutput() InventoryDestinationBucketEncryptionSseS3PtrOutput { + return o.ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(context.Background()) +} + +func (o InventoryDestinationBucketEncryptionSseS3Output) ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseS3PtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventoryDestinationBucketEncryptionSseS3) *InventoryDestinationBucketEncryptionSseS3 { + return &v + }).(InventoryDestinationBucketEncryptionSseS3PtrOutput) +} + +type InventoryDestinationBucketEncryptionSseS3PtrOutput struct{ *pulumi.OutputState } + +func (InventoryDestinationBucketEncryptionSseS3PtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryDestinationBucketEncryptionSseS3)(nil)).Elem() +} + +func (o InventoryDestinationBucketEncryptionSseS3PtrOutput) ToInventoryDestinationBucketEncryptionSseS3PtrOutput() InventoryDestinationBucketEncryptionSseS3PtrOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionSseS3PtrOutput) ToInventoryDestinationBucketEncryptionSseS3PtrOutputWithContext(ctx context.Context) InventoryDestinationBucketEncryptionSseS3PtrOutput { + return o +} + +func (o InventoryDestinationBucketEncryptionSseS3PtrOutput) Elem() InventoryDestinationBucketEncryptionSseS3Output { + return o.ApplyT(func(v *InventoryDestinationBucketEncryptionSseS3) InventoryDestinationBucketEncryptionSseS3 { + if v != nil { + return *v + } + var ret InventoryDestinationBucketEncryptionSseS3 + return ret + }).(InventoryDestinationBucketEncryptionSseS3Output) +} + +type InventoryFilter struct { + // Prefix that an object must have to be included in the inventory results. + Prefix *string `pulumi:"prefix"` +} + +// InventoryFilterInput is an input type that accepts InventoryFilterArgs and InventoryFilterOutput values. +// You can construct a concrete instance of `InventoryFilterInput` via: +// +// InventoryFilterArgs{...} +type InventoryFilterInput interface { + pulumi.Input + + ToInventoryFilterOutput() InventoryFilterOutput + ToInventoryFilterOutputWithContext(context.Context) InventoryFilterOutput +} + +type InventoryFilterArgs struct { + // Prefix that an object must have to be included in the inventory results. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` +} + +func (InventoryFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryFilter)(nil)).Elem() +} + +func (i InventoryFilterArgs) ToInventoryFilterOutput() InventoryFilterOutput { + return i.ToInventoryFilterOutputWithContext(context.Background()) +} + +func (i InventoryFilterArgs) ToInventoryFilterOutputWithContext(ctx context.Context) InventoryFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryFilterOutput) +} + +func (i InventoryFilterArgs) ToInventoryFilterPtrOutput() InventoryFilterPtrOutput { + return i.ToInventoryFilterPtrOutputWithContext(context.Background()) +} + +func (i InventoryFilterArgs) ToInventoryFilterPtrOutputWithContext(ctx context.Context) InventoryFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryFilterOutput).ToInventoryFilterPtrOutputWithContext(ctx) +} + +// InventoryFilterPtrInput is an input type that accepts InventoryFilterArgs, InventoryFilterPtr and InventoryFilterPtrOutput values. +// You can construct a concrete instance of `InventoryFilterPtrInput` via: +// +// InventoryFilterArgs{...} +// +// or: +// +// nil +type InventoryFilterPtrInput interface { + pulumi.Input + + ToInventoryFilterPtrOutput() InventoryFilterPtrOutput + ToInventoryFilterPtrOutputWithContext(context.Context) InventoryFilterPtrOutput +} + +type inventoryFilterPtrType InventoryFilterArgs + +func InventoryFilterPtr(v *InventoryFilterArgs) InventoryFilterPtrInput { + return (*inventoryFilterPtrType)(v) +} + +func (*inventoryFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryFilter)(nil)).Elem() +} + +func (i *inventoryFilterPtrType) ToInventoryFilterPtrOutput() InventoryFilterPtrOutput { + return i.ToInventoryFilterPtrOutputWithContext(context.Background()) +} + +func (i *inventoryFilterPtrType) ToInventoryFilterPtrOutputWithContext(ctx context.Context) InventoryFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryFilterPtrOutput) +} + +type InventoryFilterOutput struct{ *pulumi.OutputState } + +func (InventoryFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InventoryFilter)(nil)).Elem() +} + +func (o InventoryFilterOutput) ToInventoryFilterOutput() InventoryFilterOutput { + return o +} + +func (o InventoryFilterOutput) ToInventoryFilterOutputWithContext(ctx context.Context) InventoryFilterOutput { + return o +} + +func (o InventoryFilterOutput) ToInventoryFilterPtrOutput() InventoryFilterPtrOutput { + return o.ToInventoryFilterPtrOutputWithContext(context.Background()) +} + +func (o InventoryFilterOutput) ToInventoryFilterPtrOutputWithContext(ctx context.Context) InventoryFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventoryFilter) *InventoryFilter { + return &v + }).(InventoryFilterPtrOutput) +} + +// Prefix that an object must have to be included in the inventory results. +func (o InventoryFilterOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v InventoryFilter) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +type InventoryFilterPtrOutput struct{ *pulumi.OutputState } + +func (InventoryFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventoryFilter)(nil)).Elem() +} + +func (o InventoryFilterPtrOutput) ToInventoryFilterPtrOutput() InventoryFilterPtrOutput { + return o +} + +func (o InventoryFilterPtrOutput) ToInventoryFilterPtrOutputWithContext(ctx context.Context) InventoryFilterPtrOutput { + return o +} + +func (o InventoryFilterPtrOutput) Elem() InventoryFilterOutput { + return o.ApplyT(func(v *InventoryFilter) InventoryFilter { + if v != nil { + return *v + } + var ret InventoryFilter + return ret + }).(InventoryFilterOutput) +} + +// Prefix that an object must have to be included in the inventory results. +func (o InventoryFilterPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventoryFilter) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +type InventorySchedule struct { + // Specifies how frequently inventory results are produced. Valid values: `Daily`, `Weekly`. + Frequency string `pulumi:"frequency"` +} + +// InventoryScheduleInput is an input type that accepts InventoryScheduleArgs and InventoryScheduleOutput values. +// You can construct a concrete instance of `InventoryScheduleInput` via: +// +// InventoryScheduleArgs{...} +type InventoryScheduleInput interface { + pulumi.Input + + ToInventoryScheduleOutput() InventoryScheduleOutput + ToInventoryScheduleOutputWithContext(context.Context) InventoryScheduleOutput +} + +type InventoryScheduleArgs struct { + // Specifies how frequently inventory results are produced. Valid values: `Daily`, `Weekly`. + Frequency pulumi.StringInput `pulumi:"frequency"` +} + +func (InventoryScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InventorySchedule)(nil)).Elem() +} + +func (i InventoryScheduleArgs) ToInventoryScheduleOutput() InventoryScheduleOutput { + return i.ToInventoryScheduleOutputWithContext(context.Background()) +} + +func (i InventoryScheduleArgs) ToInventoryScheduleOutputWithContext(ctx context.Context) InventoryScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryScheduleOutput) +} + +func (i InventoryScheduleArgs) ToInventorySchedulePtrOutput() InventorySchedulePtrOutput { + return i.ToInventorySchedulePtrOutputWithContext(context.Background()) +} + +func (i InventoryScheduleArgs) ToInventorySchedulePtrOutputWithContext(ctx context.Context) InventorySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventoryScheduleOutput).ToInventorySchedulePtrOutputWithContext(ctx) +} + +// InventorySchedulePtrInput is an input type that accepts InventoryScheduleArgs, InventorySchedulePtr and InventorySchedulePtrOutput values. +// You can construct a concrete instance of `InventorySchedulePtrInput` via: +// +// InventoryScheduleArgs{...} +// +// or: +// +// nil +type InventorySchedulePtrInput interface { + pulumi.Input + + ToInventorySchedulePtrOutput() InventorySchedulePtrOutput + ToInventorySchedulePtrOutputWithContext(context.Context) InventorySchedulePtrOutput +} + +type inventorySchedulePtrType InventoryScheduleArgs + +func InventorySchedulePtr(v *InventoryScheduleArgs) InventorySchedulePtrInput { + return (*inventorySchedulePtrType)(v) +} + +func (*inventorySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InventorySchedule)(nil)).Elem() +} + +func (i *inventorySchedulePtrType) ToInventorySchedulePtrOutput() InventorySchedulePtrOutput { + return i.ToInventorySchedulePtrOutputWithContext(context.Background()) +} + +func (i *inventorySchedulePtrType) ToInventorySchedulePtrOutputWithContext(ctx context.Context) InventorySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InventorySchedulePtrOutput) +} + +type InventoryScheduleOutput struct{ *pulumi.OutputState } + +func (InventoryScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InventorySchedule)(nil)).Elem() +} + +func (o InventoryScheduleOutput) ToInventoryScheduleOutput() InventoryScheduleOutput { + return o +} + +func (o InventoryScheduleOutput) ToInventoryScheduleOutputWithContext(ctx context.Context) InventoryScheduleOutput { + return o +} + +func (o InventoryScheduleOutput) ToInventorySchedulePtrOutput() InventorySchedulePtrOutput { + return o.ToInventorySchedulePtrOutputWithContext(context.Background()) +} + +func (o InventoryScheduleOutput) ToInventorySchedulePtrOutputWithContext(ctx context.Context) InventorySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InventorySchedule) *InventorySchedule { + return &v + }).(InventorySchedulePtrOutput) +} + +// Specifies how frequently inventory results are produced. Valid values: `Daily`, `Weekly`. +func (o InventoryScheduleOutput) Frequency() pulumi.StringOutput { + return o.ApplyT(func(v InventorySchedule) string { return v.Frequency }).(pulumi.StringOutput) +} + +type InventorySchedulePtrOutput struct{ *pulumi.OutputState } + +func (InventorySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InventorySchedule)(nil)).Elem() +} + +func (o InventorySchedulePtrOutput) ToInventorySchedulePtrOutput() InventorySchedulePtrOutput { + return o +} + +func (o InventorySchedulePtrOutput) ToInventorySchedulePtrOutputWithContext(ctx context.Context) InventorySchedulePtrOutput { + return o +} + +func (o InventorySchedulePtrOutput) Elem() InventoryScheduleOutput { + return o.ApplyT(func(v *InventorySchedule) InventorySchedule { + if v != nil { + return *v + } + var ret InventorySchedule + return ret + }).(InventoryScheduleOutput) +} + +// Specifies how frequently inventory results are produced. Valid values: `Daily`, `Weekly`. +func (o InventorySchedulePtrOutput) Frequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InventorySchedule) *string { + if v == nil { + return nil + } + return &v.Frequency + }).(pulumi.StringPtrOutput) +} + +type ObjectCopyGrant struct { + // Email address of the grantee. Used only when `type` is `AmazonCustomerByEmail`. + Email *string `pulumi:"email"` + // Canonical user ID of the grantee. Used only when `type` is `CanonicalUser`. + Id *string `pulumi:"id"` + // List of permissions to grant to grantee. Valid values are `READ`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. + Permissions []string `pulumi:"permissions"` + // Type of grantee. Valid values are `CanonicalUser`, `Group`, and `AmazonCustomerByEmail`. + // + // This configuration block has the following optional arguments (one of the three is required): + Type string `pulumi:"type"` + // URI of the grantee group. Used only when `type` is `Group`. + Uri *string `pulumi:"uri"` +} + +// ObjectCopyGrantInput is an input type that accepts ObjectCopyGrantArgs and ObjectCopyGrantOutput values. +// You can construct a concrete instance of `ObjectCopyGrantInput` via: +// +// ObjectCopyGrantArgs{...} +type ObjectCopyGrantInput interface { + pulumi.Input + + ToObjectCopyGrantOutput() ObjectCopyGrantOutput + ToObjectCopyGrantOutputWithContext(context.Context) ObjectCopyGrantOutput +} + +type ObjectCopyGrantArgs struct { + // Email address of the grantee. Used only when `type` is `AmazonCustomerByEmail`. + Email pulumi.StringPtrInput `pulumi:"email"` + // Canonical user ID of the grantee. Used only when `type` is `CanonicalUser`. + Id pulumi.StringPtrInput `pulumi:"id"` + // List of permissions to grant to grantee. Valid values are `READ`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. + Permissions pulumi.StringArrayInput `pulumi:"permissions"` + // Type of grantee. Valid values are `CanonicalUser`, `Group`, and `AmazonCustomerByEmail`. + // + // This configuration block has the following optional arguments (one of the three is required): + Type pulumi.StringInput `pulumi:"type"` + // URI of the grantee group. Used only when `type` is `Group`. + Uri pulumi.StringPtrInput `pulumi:"uri"` +} + +func (ObjectCopyGrantArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectCopyGrant)(nil)).Elem() +} + +func (i ObjectCopyGrantArgs) ToObjectCopyGrantOutput() ObjectCopyGrantOutput { + return i.ToObjectCopyGrantOutputWithContext(context.Background()) +} + +func (i ObjectCopyGrantArgs) ToObjectCopyGrantOutputWithContext(ctx context.Context) ObjectCopyGrantOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectCopyGrantOutput) +} + +// ObjectCopyGrantArrayInput is an input type that accepts ObjectCopyGrantArray and ObjectCopyGrantArrayOutput values. +// You can construct a concrete instance of `ObjectCopyGrantArrayInput` via: +// +// ObjectCopyGrantArray{ ObjectCopyGrantArgs{...} } +type ObjectCopyGrantArrayInput interface { + pulumi.Input + + ToObjectCopyGrantArrayOutput() ObjectCopyGrantArrayOutput + ToObjectCopyGrantArrayOutputWithContext(context.Context) ObjectCopyGrantArrayOutput +} + +type ObjectCopyGrantArray []ObjectCopyGrantInput + +func (ObjectCopyGrantArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObjectCopyGrant)(nil)).Elem() +} + +func (i ObjectCopyGrantArray) ToObjectCopyGrantArrayOutput() ObjectCopyGrantArrayOutput { + return i.ToObjectCopyGrantArrayOutputWithContext(context.Background()) +} + +func (i ObjectCopyGrantArray) ToObjectCopyGrantArrayOutputWithContext(ctx context.Context) ObjectCopyGrantArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ObjectCopyGrantArrayOutput) +} + +type ObjectCopyGrantOutput struct{ *pulumi.OutputState } + +func (ObjectCopyGrantOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ObjectCopyGrant)(nil)).Elem() +} + +func (o ObjectCopyGrantOutput) ToObjectCopyGrantOutput() ObjectCopyGrantOutput { + return o +} + +func (o ObjectCopyGrantOutput) ToObjectCopyGrantOutputWithContext(ctx context.Context) ObjectCopyGrantOutput { + return o +} + +// Email address of the grantee. Used only when `type` is `AmazonCustomerByEmail`. +func (o ObjectCopyGrantOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectCopyGrant) *string { return v.Email }).(pulumi.StringPtrOutput) +} + +// Canonical user ID of the grantee. Used only when `type` is `CanonicalUser`. +func (o ObjectCopyGrantOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectCopyGrant) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// List of permissions to grant to grantee. Valid values are `READ`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`. +func (o ObjectCopyGrantOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v ObjectCopyGrant) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +// Type of grantee. Valid values are `CanonicalUser`, `Group`, and `AmazonCustomerByEmail`. +// +// This configuration block has the following optional arguments (one of the three is required): +func (o ObjectCopyGrantOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ObjectCopyGrant) string { return v.Type }).(pulumi.StringOutput) +} + +// URI of the grantee group. Used only when `type` is `Group`. +func (o ObjectCopyGrantOutput) Uri() pulumi.StringPtrOutput { + return o.ApplyT(func(v ObjectCopyGrant) *string { return v.Uri }).(pulumi.StringPtrOutput) +} + +type ObjectCopyGrantArrayOutput struct{ *pulumi.OutputState } + +func (ObjectCopyGrantArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ObjectCopyGrant)(nil)).Elem() +} + +func (o ObjectCopyGrantArrayOutput) ToObjectCopyGrantArrayOutput() ObjectCopyGrantArrayOutput { + return o +} + +func (o ObjectCopyGrantArrayOutput) ToObjectCopyGrantArrayOutputWithContext(ctx context.Context) ObjectCopyGrantArrayOutput { + return o +} + +func (o ObjectCopyGrantArrayOutput) Index(i pulumi.IntInput) ObjectCopyGrantOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ObjectCopyGrant { + return vs[0].([]ObjectCopyGrant)[vs[1].(int)] + }).(ObjectCopyGrantOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointPublicAccessBlockConfigurationInput)(nil)).Elem(), AccessPointPublicAccessBlockConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointPublicAccessBlockConfigurationPtrInput)(nil)).Elem(), AccessPointPublicAccessBlockConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointVpcConfigurationInput)(nil)).Elem(), AccessPointVpcConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccessPointVpcConfigurationPtrInput)(nil)).Elem(), AccessPointVpcConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationFilterInput)(nil)).Elem(), AnalyticsConfigurationFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationFilterPtrInput)(nil)).Elem(), AnalyticsConfigurationFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisPtrInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisDataExportArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportPtrInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisDataExportArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestinationInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisDataExportDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrInput)(nil)).Elem(), AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyInput)(nil)).Elem(), BucketAclV2AccessControlPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyPtrInput)(nil)).Elem(), BucketAclV2AccessControlPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyGrantInput)(nil)).Elem(), BucketAclV2AccessControlPolicyGrantArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyGrantArrayInput)(nil)).Elem(), BucketAclV2AccessControlPolicyGrantArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyGrantGranteeInput)(nil)).Elem(), BucketAclV2AccessControlPolicyGrantGranteeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyGrantGranteePtrInput)(nil)).Elem(), BucketAclV2AccessControlPolicyGrantGranteeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyOwnerInput)(nil)).Elem(), BucketAclV2AccessControlPolicyOwnerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketAclV2AccessControlPolicyOwnerPtrInput)(nil)).Elem(), BucketAclV2AccessControlPolicyOwnerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsConfigurationV2CorsRuleInput)(nil)).Elem(), BucketCorsConfigurationV2CorsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsConfigurationV2CorsRuleArrayInput)(nil)).Elem(), BucketCorsConfigurationV2CorsRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsRuleInput)(nil)).Elem(), BucketCorsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketCorsRuleArrayInput)(nil)).Elem(), BucketCorsRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketGrantInput)(nil)).Elem(), BucketGrantArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketGrantArrayInput)(nil)).Elem(), BucketGrantArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationFilterInput)(nil)).Elem(), BucketIntelligentTieringConfigurationFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationFilterPtrInput)(nil)).Elem(), BucketIntelligentTieringConfigurationFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationTieringInput)(nil)).Elem(), BucketIntelligentTieringConfigurationTieringArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketIntelligentTieringConfigurationTieringArrayInput)(nil)).Elem(), BucketIntelligentTieringConfigurationTieringArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleArrayInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleExpirationInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleExpirationPtrInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterPtrInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterAndInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleFilterAndArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterAndPtrInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleFilterAndArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterTagInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleFilterTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleFilterTagPtrInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleFilterTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleTransitionInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleTransitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleConfigurationV2RuleTransitionArrayInput)(nil)).Elem(), BucketLifecycleConfigurationV2RuleTransitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleInput)(nil)).Elem(), BucketLifecycleRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleArrayInput)(nil)).Elem(), BucketLifecycleRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleExpirationInput)(nil)).Elem(), BucketLifecycleRuleExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleExpirationPtrInput)(nil)).Elem(), BucketLifecycleRuleExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionExpirationInput)(nil)).Elem(), BucketLifecycleRuleNoncurrentVersionExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionExpirationPtrInput)(nil)).Elem(), BucketLifecycleRuleNoncurrentVersionExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionTransitionInput)(nil)).Elem(), BucketLifecycleRuleNoncurrentVersionTransitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleNoncurrentVersionTransitionArrayInput)(nil)).Elem(), BucketLifecycleRuleNoncurrentVersionTransitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleTransitionInput)(nil)).Elem(), BucketLifecycleRuleTransitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLifecycleRuleTransitionArrayInput)(nil)).Elem(), BucketLifecycleRuleTransitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingInput)(nil)).Elem(), BucketLoggingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingArrayInput)(nil)).Elem(), BucketLoggingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingV2TargetGrantInput)(nil)).Elem(), BucketLoggingV2TargetGrantArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingV2TargetGrantArrayInput)(nil)).Elem(), BucketLoggingV2TargetGrantArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketLoggingV2TargetGrantGranteeInput)(nil)).Elem(), BucketLoggingV2TargetGrantGranteeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketMetricFilterInput)(nil)).Elem(), BucketMetricFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketMetricFilterPtrInput)(nil)).Elem(), BucketMetricFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationLambdaFunctionInput)(nil)).Elem(), BucketNotificationLambdaFunctionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationLambdaFunctionArrayInput)(nil)).Elem(), BucketNotificationLambdaFunctionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationQueueInput)(nil)).Elem(), BucketNotificationQueueArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationQueueArrayInput)(nil)).Elem(), BucketNotificationQueueArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationTopicInput)(nil)).Elem(), BucketNotificationTopicArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketNotificationTopicArrayInput)(nil)).Elem(), BucketNotificationTopicArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationInput)(nil)).Elem(), BucketObjectLockConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationPtrInput)(nil)).Elem(), BucketObjectLockConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationRuleInput)(nil)).Elem(), BucketObjectLockConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationRulePtrInput)(nil)).Elem(), BucketObjectLockConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationRuleDefaultRetentionInput)(nil)).Elem(), BucketObjectLockConfigurationRuleDefaultRetentionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationRuleDefaultRetentionPtrInput)(nil)).Elem(), BucketObjectLockConfigurationRuleDefaultRetentionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2RuleInput)(nil)).Elem(), BucketObjectLockConfigurationV2RuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2RulePtrInput)(nil)).Elem(), BucketObjectLockConfigurationV2RuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2RuleDefaultRetentionInput)(nil)).Elem(), BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectLockConfigurationV2RuleDefaultRetentionPtrInput)(nil)).Elem(), BucketObjectLockConfigurationV2RuleDefaultRetentionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2OverrideProviderInput)(nil)).Elem(), BucketObjectv2OverrideProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2OverrideProviderPtrInput)(nil)).Elem(), BucketObjectv2OverrideProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2OverrideProviderDefaultTagsInput)(nil)).Elem(), BucketObjectv2OverrideProviderDefaultTagsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketObjectv2OverrideProviderDefaultTagsPtrInput)(nil)).Elem(), BucketObjectv2OverrideProviderDefaultTagsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketOwnershipControlsRuleInput)(nil)).Elem(), BucketOwnershipControlsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketOwnershipControlsRulePtrInput)(nil)).Elem(), BucketOwnershipControlsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleInput)(nil)).Elem(), BucketReplicationConfigRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleArrayInput)(nil)).Elem(), BucketReplicationConfigRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDeleteMarkerReplicationInput)(nil)).Elem(), BucketReplicationConfigRuleDeleteMarkerReplicationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDeleteMarkerReplicationPtrInput)(nil)).Elem(), BucketReplicationConfigRuleDeleteMarkerReplicationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationAccessControlTranslationInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationAccessControlTranslationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationAccessControlTranslationPtrInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationAccessControlTranslationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationEncryptionConfigurationInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetricsInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetricsPtrInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetricsEventThresholdInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationMetricsEventThresholdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTimeInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationReplicationTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTimePtrInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationReplicationTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTimeTimeInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleDestinationReplicationTimeTimePtrInput)(nil)).Elem(), BucketReplicationConfigRuleDestinationReplicationTimeTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleExistingObjectReplicationInput)(nil)).Elem(), BucketReplicationConfigRuleExistingObjectReplicationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleExistingObjectReplicationPtrInput)(nil)).Elem(), BucketReplicationConfigRuleExistingObjectReplicationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleFilterInput)(nil)).Elem(), BucketReplicationConfigRuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleFilterPtrInput)(nil)).Elem(), BucketReplicationConfigRuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleFilterAndInput)(nil)).Elem(), BucketReplicationConfigRuleFilterAndArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleFilterAndPtrInput)(nil)).Elem(), BucketReplicationConfigRuleFilterAndArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleFilterTagInput)(nil)).Elem(), BucketReplicationConfigRuleFilterTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleFilterTagPtrInput)(nil)).Elem(), BucketReplicationConfigRuleFilterTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaInput)(nil)).Elem(), BucketReplicationConfigRuleSourceSelectionCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaPtrInput)(nil)).Elem(), BucketReplicationConfigRuleSourceSelectionCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsInput)(nil)).Elem(), BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrInput)(nil)).Elem(), BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput)(nil)).Elem(), BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput)(nil)).Elem(), BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationInput)(nil)).Elem(), BucketReplicationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationPtrInput)(nil)).Elem(), BucketReplicationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleInput)(nil)).Elem(), BucketReplicationConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleArrayInput)(nil)).Elem(), BucketReplicationConfigurationRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationAccessControlTranslationInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationAccessControlTranslationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationMetricsInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationMetricsPtrInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationMetricsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationReplicationTimeInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationReplicationTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleDestinationReplicationTimePtrInput)(nil)).Elem(), BucketReplicationConfigurationRuleDestinationReplicationTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleFilterInput)(nil)).Elem(), BucketReplicationConfigurationRuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleFilterPtrInput)(nil)).Elem(), BucketReplicationConfigurationRuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteriaInput)(nil)).Elem(), BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrInput)(nil)).Elem(), BucketReplicationConfigurationRuleSourceSelectionCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsInput)(nil)).Elem(), BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrInput)(nil)).Elem(), BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationPtrInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationRuleInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationRulePtrInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2RuleInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationV2RuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2RuleArrayInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationV2RuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrInput)(nil)).Elem(), BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2CorsRuleInput)(nil)).Elem(), BucketV2CorsRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2CorsRuleArrayInput)(nil)).Elem(), BucketV2CorsRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2GrantInput)(nil)).Elem(), BucketV2GrantArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2GrantArrayInput)(nil)).Elem(), BucketV2GrantArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleInput)(nil)).Elem(), BucketV2LifecycleRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleArrayInput)(nil)).Elem(), BucketV2LifecycleRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleExpirationInput)(nil)).Elem(), BucketV2LifecycleRuleExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleExpirationArrayInput)(nil)).Elem(), BucketV2LifecycleRuleExpirationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionExpirationInput)(nil)).Elem(), BucketV2LifecycleRuleNoncurrentVersionExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionExpirationArrayInput)(nil)).Elem(), BucketV2LifecycleRuleNoncurrentVersionExpirationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionTransitionInput)(nil)).Elem(), BucketV2LifecycleRuleNoncurrentVersionTransitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleNoncurrentVersionTransitionArrayInput)(nil)).Elem(), BucketV2LifecycleRuleNoncurrentVersionTransitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleTransitionInput)(nil)).Elem(), BucketV2LifecycleRuleTransitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LifecycleRuleTransitionArrayInput)(nil)).Elem(), BucketV2LifecycleRuleTransitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LoggingInput)(nil)).Elem(), BucketV2LoggingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2LoggingArrayInput)(nil)).Elem(), BucketV2LoggingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ObjectLockConfigurationInput)(nil)).Elem(), BucketV2ObjectLockConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ObjectLockConfigurationPtrInput)(nil)).Elem(), BucketV2ObjectLockConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ObjectLockConfigurationRuleInput)(nil)).Elem(), BucketV2ObjectLockConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ObjectLockConfigurationRuleArrayInput)(nil)).Elem(), BucketV2ObjectLockConfigurationRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ObjectLockConfigurationRuleDefaultRetentionInput)(nil)).Elem(), BucketV2ObjectLockConfigurationRuleDefaultRetentionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayInput)(nil)).Elem(), BucketV2ObjectLockConfigurationRuleDefaultRetentionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationInput)(nil)).Elem(), BucketV2ReplicationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationMetricInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationMetricArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationMetricArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationReplicationTimeInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleFilterInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleFilterArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayInput)(nil)).Elem(), BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationInput)(nil)).Elem(), BucketV2ServerSideEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationArrayInput)(nil)).Elem(), BucketV2ServerSideEncryptionConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRuleInput)(nil)).Elem(), BucketV2ServerSideEncryptionConfigurationRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRuleArrayInput)(nil)).Elem(), BucketV2ServerSideEncryptionConfigurationRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultInput)(nil)).Elem(), BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayInput)(nil)).Elem(), BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2VersioningInput)(nil)).Elem(), BucketV2VersioningArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2VersioningArrayInput)(nil)).Elem(), BucketV2VersioningArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2WebsiteInput)(nil)).Elem(), BucketV2WebsiteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketV2WebsiteArrayInput)(nil)).Elem(), BucketV2WebsiteArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningInput)(nil)).Elem(), BucketVersioningArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningPtrInput)(nil)).Elem(), BucketVersioningArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningV2VersioningConfigurationInput)(nil)).Elem(), BucketVersioningV2VersioningConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketVersioningV2VersioningConfigurationPtrInput)(nil)).Elem(), BucketVersioningV2VersioningConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteInput)(nil)).Elem(), BucketWebsiteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsitePtrInput)(nil)).Elem(), BucketWebsiteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2ErrorDocumentInput)(nil)).Elem(), BucketWebsiteConfigurationV2ErrorDocumentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2ErrorDocumentPtrInput)(nil)).Elem(), BucketWebsiteConfigurationV2ErrorDocumentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2IndexDocumentInput)(nil)).Elem(), BucketWebsiteConfigurationV2IndexDocumentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2IndexDocumentPtrInput)(nil)).Elem(), BucketWebsiteConfigurationV2IndexDocumentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RedirectAllRequestsToInput)(nil)).Elem(), BucketWebsiteConfigurationV2RedirectAllRequestsToArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RedirectAllRequestsToPtrInput)(nil)).Elem(), BucketWebsiteConfigurationV2RedirectAllRequestsToArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleInput)(nil)).Elem(), BucketWebsiteConfigurationV2RoutingRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleArrayInput)(nil)).Elem(), BucketWebsiteConfigurationV2RoutingRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleConditionInput)(nil)).Elem(), BucketWebsiteConfigurationV2RoutingRuleConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleConditionPtrInput)(nil)).Elem(), BucketWebsiteConfigurationV2RoutingRuleConditionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketWebsiteConfigurationV2RoutingRuleRedirectInput)(nil)).Elem(), BucketWebsiteConfigurationV2RoutingRuleRedirectArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationInput)(nil)).Elem(), InventoryDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationPtrInput)(nil)).Elem(), InventoryDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketInput)(nil)).Elem(), InventoryDestinationBucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketPtrInput)(nil)).Elem(), InventoryDestinationBucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketEncryptionInput)(nil)).Elem(), InventoryDestinationBucketEncryptionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketEncryptionPtrInput)(nil)).Elem(), InventoryDestinationBucketEncryptionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketEncryptionSseKmsInput)(nil)).Elem(), InventoryDestinationBucketEncryptionSseKmsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketEncryptionSseKmsPtrInput)(nil)).Elem(), InventoryDestinationBucketEncryptionSseKmsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketEncryptionSseS3Input)(nil)).Elem(), InventoryDestinationBucketEncryptionSseS3Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryDestinationBucketEncryptionSseS3PtrInput)(nil)).Elem(), InventoryDestinationBucketEncryptionSseS3Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryFilterInput)(nil)).Elem(), InventoryFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryFilterPtrInput)(nil)).Elem(), InventoryFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventoryScheduleInput)(nil)).Elem(), InventoryScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InventorySchedulePtrInput)(nil)).Elem(), InventoryScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ObjectCopyGrantInput)(nil)).Elem(), ObjectCopyGrantArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ObjectCopyGrantArrayInput)(nil)).Elem(), ObjectCopyGrantArray{}) + pulumi.RegisterOutputType(AccessPointPublicAccessBlockConfigurationOutput{}) + pulumi.RegisterOutputType(AccessPointPublicAccessBlockConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AccessPointVpcConfigurationOutput{}) + pulumi.RegisterOutputType(AccessPointVpcConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationFilterOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationFilterPtrOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisPtrOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisDataExportOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisDataExportPtrOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationPtrOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationOutput{}) + pulumi.RegisterOutputType(AnalyticsConfigurationStorageClassAnalysisDataExportDestinationS3BucketDestinationPtrOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyPtrOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyGrantOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyGrantArrayOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyGrantGranteeOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyGrantGranteePtrOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyOwnerOutput{}) + pulumi.RegisterOutputType(BucketAclV2AccessControlPolicyOwnerPtrOutput{}) + pulumi.RegisterOutputType(BucketCorsConfigurationV2CorsRuleOutput{}) + pulumi.RegisterOutputType(BucketCorsConfigurationV2CorsRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketCorsRuleOutput{}) + pulumi.RegisterOutputType(BucketCorsRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketGrantOutput{}) + pulumi.RegisterOutputType(BucketGrantArrayOutput{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationFilterOutput{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationFilterPtrOutput{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationTieringOutput{}) + pulumi.RegisterOutputType(BucketIntelligentTieringConfigurationTieringArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleAbortIncompleteMultipartUploadPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleExpirationOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleExpirationPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleFilterOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleFilterPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleFilterAndOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleFilterAndPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleFilterTagOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleFilterTagPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleNoncurrentVersionExpirationPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleNoncurrentVersionTransitionArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleTransitionOutput{}) + pulumi.RegisterOutputType(BucketLifecycleConfigurationV2RuleTransitionArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleExpirationOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleExpirationPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleNoncurrentVersionExpirationOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleNoncurrentVersionExpirationPtrOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleNoncurrentVersionTransitionOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleNoncurrentVersionTransitionArrayOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleTransitionOutput{}) + pulumi.RegisterOutputType(BucketLifecycleRuleTransitionArrayOutput{}) + pulumi.RegisterOutputType(BucketLoggingOutput{}) + pulumi.RegisterOutputType(BucketLoggingArrayOutput{}) + pulumi.RegisterOutputType(BucketLoggingV2TargetGrantOutput{}) + pulumi.RegisterOutputType(BucketLoggingV2TargetGrantArrayOutput{}) + pulumi.RegisterOutputType(BucketLoggingV2TargetGrantGranteeOutput{}) + pulumi.RegisterOutputType(BucketMetricFilterOutput{}) + pulumi.RegisterOutputType(BucketMetricFilterPtrOutput{}) + pulumi.RegisterOutputType(BucketNotificationLambdaFunctionOutput{}) + pulumi.RegisterOutputType(BucketNotificationLambdaFunctionArrayOutput{}) + pulumi.RegisterOutputType(BucketNotificationQueueOutput{}) + pulumi.RegisterOutputType(BucketNotificationQueueArrayOutput{}) + pulumi.RegisterOutputType(BucketNotificationTopicOutput{}) + pulumi.RegisterOutputType(BucketNotificationTopicArrayOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationPtrOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationRuleOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationRulePtrOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationRuleDefaultRetentionOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationRuleDefaultRetentionPtrOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2RuleOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2RulePtrOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2RuleDefaultRetentionOutput{}) + pulumi.RegisterOutputType(BucketObjectLockConfigurationV2RuleDefaultRetentionPtrOutput{}) + pulumi.RegisterOutputType(BucketObjectv2OverrideProviderOutput{}) + pulumi.RegisterOutputType(BucketObjectv2OverrideProviderPtrOutput{}) + pulumi.RegisterOutputType(BucketObjectv2OverrideProviderDefaultTagsOutput{}) + pulumi.RegisterOutputType(BucketObjectv2OverrideProviderDefaultTagsPtrOutput{}) + pulumi.RegisterOutputType(BucketOwnershipControlsRuleOutput{}) + pulumi.RegisterOutputType(BucketOwnershipControlsRulePtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDeleteMarkerReplicationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDeleteMarkerReplicationPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationAccessControlTranslationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationAccessControlTranslationPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationEncryptionConfigurationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationEncryptionConfigurationPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationMetricsOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationMetricsPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationMetricsEventThresholdOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationMetricsEventThresholdPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationReplicationTimeOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationReplicationTimePtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationReplicationTimeTimeOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleDestinationReplicationTimeTimePtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleExistingObjectReplicationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleExistingObjectReplicationPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleFilterOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleFilterPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleFilterAndOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleFilterAndPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleFilterTagOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleFilterTagPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleSourceSelectionCriteriaOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleSourceSelectionCriteriaPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleSourceSelectionCriteriaReplicaModificationsPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationAccessControlTranslationOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationAccessControlTranslationPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationMetricsOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationMetricsPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationReplicationTimeOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleDestinationReplicationTimePtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleFilterOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleFilterPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleSourceSelectionCriteriaOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleSourceSelectionCriteriaPtrOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsOutput{}) + pulumi.RegisterOutputType(BucketReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectsPtrOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationPtrOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationRuleOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationRulePtrOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultPtrOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2RuleOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2RuleArrayOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultOutput{}) + pulumi.RegisterOutputType(BucketServerSideEncryptionConfigurationV2RuleApplyServerSideEncryptionByDefaultPtrOutput{}) + pulumi.RegisterOutputType(BucketV2CorsRuleOutput{}) + pulumi.RegisterOutputType(BucketV2CorsRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketV2GrantOutput{}) + pulumi.RegisterOutputType(BucketV2GrantArrayOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleExpirationOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleExpirationArrayOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleNoncurrentVersionExpirationOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleNoncurrentVersionExpirationArrayOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleNoncurrentVersionTransitionOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleNoncurrentVersionTransitionArrayOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleTransitionOutput{}) + pulumi.RegisterOutputType(BucketV2LifecycleRuleTransitionArrayOutput{}) + pulumi.RegisterOutputType(BucketV2LoggingOutput{}) + pulumi.RegisterOutputType(BucketV2LoggingArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ObjectLockConfigurationOutput{}) + pulumi.RegisterOutputType(BucketV2ObjectLockConfigurationPtrOutput{}) + pulumi.RegisterOutputType(BucketV2ObjectLockConfigurationRuleOutput{}) + pulumi.RegisterOutputType(BucketV2ObjectLockConfigurationRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ObjectLockConfigurationRuleDefaultRetentionOutput{}) + pulumi.RegisterOutputType(BucketV2ObjectLockConfigurationRuleDefaultRetentionArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationAccessControlTranslationArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationMetricOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationMetricArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationReplicationTimeOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleDestinationReplicationTimeArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleFilterOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleFilterArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectOutput{}) + pulumi.RegisterOutputType(BucketV2ReplicationConfigurationRuleSourceSelectionCriteriaSseKmsEncryptedObjectArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ServerSideEncryptionConfigurationOutput{}) + pulumi.RegisterOutputType(BucketV2ServerSideEncryptionConfigurationArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ServerSideEncryptionConfigurationRuleOutput{}) + pulumi.RegisterOutputType(BucketV2ServerSideEncryptionConfigurationRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultOutput{}) + pulumi.RegisterOutputType(BucketV2ServerSideEncryptionConfigurationRuleApplyServerSideEncryptionByDefaultArrayOutput{}) + pulumi.RegisterOutputType(BucketV2VersioningOutput{}) + pulumi.RegisterOutputType(BucketV2VersioningArrayOutput{}) + pulumi.RegisterOutputType(BucketV2WebsiteOutput{}) + pulumi.RegisterOutputType(BucketV2WebsiteArrayOutput{}) + pulumi.RegisterOutputType(BucketVersioningOutput{}) + pulumi.RegisterOutputType(BucketVersioningPtrOutput{}) + pulumi.RegisterOutputType(BucketVersioningV2VersioningConfigurationOutput{}) + pulumi.RegisterOutputType(BucketVersioningV2VersioningConfigurationPtrOutput{}) + pulumi.RegisterOutputType(BucketWebsiteOutput{}) + pulumi.RegisterOutputType(BucketWebsitePtrOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2ErrorDocumentOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2ErrorDocumentPtrOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2IndexDocumentOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2IndexDocumentPtrOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RedirectAllRequestsToOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RedirectAllRequestsToPtrOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RoutingRuleOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RoutingRuleArrayOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RoutingRuleConditionOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RoutingRuleConditionPtrOutput{}) + pulumi.RegisterOutputType(BucketWebsiteConfigurationV2RoutingRuleRedirectOutput{}) + pulumi.RegisterOutputType(InventoryDestinationOutput{}) + pulumi.RegisterOutputType(InventoryDestinationPtrOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketPtrOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketEncryptionOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketEncryptionPtrOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketEncryptionSseKmsOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketEncryptionSseKmsPtrOutput{}) + pulumi.RegisterOutputType(InventoryDestinationBucketEncryptionSseS3Output{}) + pulumi.RegisterOutputType(InventoryDestinationBucketEncryptionSseS3PtrOutput{}) + pulumi.RegisterOutputType(InventoryFilterOutput{}) + pulumi.RegisterOutputType(InventoryFilterPtrOutput{}) + pulumi.RegisterOutputType(InventoryScheduleOutput{}) + pulumi.RegisterOutputType(InventorySchedulePtrOutput{}) + pulumi.RegisterOutputType(ObjectCopyGrantOutput{}) + pulumi.RegisterOutputType(ObjectCopyGrantArrayOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/LICENSE b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx/pulumiTypes.go new file mode 100644 index 000000000..242bd0c3e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx/pulumiTypes.go @@ -0,0 +1,2990 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package awsx + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +var _ = internal.GetEnvOrDefault + +// The set of arguments for constructing a Bucket resource. +type Bucket struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus *string `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl *string `pulumi:"acl"` + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn *string `pulumi:"arn"` + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket *string `pulumi:"bucket"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix *string `pulumi:"bucketPrefix"` + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules []s3.BucketCorsRule `pulumi:"corsRules"` + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy *bool `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants []s3.BucketGrant `pulumi:"grants"` + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId *string `pulumi:"hostedZoneId"` + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules []s3.BucketLifecycleRule `pulumi:"lifecycleRules"` + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings []s3.BucketLogging `pulumi:"loggings"` + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration *s3.BucketObjectLockConfiguration `pulumi:"objectLockConfiguration"` + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy *string `pulumi:"policy"` + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration *s3.BucketReplicationConfiguration `pulumi:"replicationConfiguration"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer *string `pulumi:"requestPayer"` + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration *s3.BucketServerSideEncryptionConfiguration `pulumi:"serverSideEncryptionConfiguration"` + // A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning *s3.BucketVersioning `pulumi:"versioning"` + // A website object (documented below). + Website *s3.BucketWebsite `pulumi:"website"` + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain *string `pulumi:"websiteDomain"` + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint *string `pulumi:"websiteEndpoint"` +} + +// BucketInput is an input type that accepts BucketArgs and BucketOutput values. +// You can construct a concrete instance of `BucketInput` via: +// +// BucketArgs{...} +type BucketInput interface { + pulumi.Input + + ToBucketOutput() BucketOutput + ToBucketOutputWithContext(context.Context) BucketOutput +} + +// The set of arguments for constructing a Bucket resource. +type BucketArgs struct { + // Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. + AccelerationStatus pulumi.StringPtrInput `pulumi:"accelerationStatus"` + // The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. + Acl pulumi.StringPtrInput `pulumi:"acl"` + // The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. + Arn pulumi.StringPtrInput `pulumi:"arn"` + // The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + Bucket pulumi.StringPtrInput `pulumi:"bucket"` + // Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). + BucketPrefix pulumi.StringPtrInput `pulumi:"bucketPrefix"` + // A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). + CorsRules s3.BucketCorsRuleArrayInput `pulumi:"corsRules"` + // A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. + ForceDestroy pulumi.BoolPtrInput `pulumi:"forceDestroy"` + // An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. + Grants s3.BucketGrantArrayInput `pulumi:"grants"` + // The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. + HostedZoneId pulumi.StringPtrInput `pulumi:"hostedZoneId"` + // A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). + LifecycleRules s3.BucketLifecycleRuleArrayInput `pulumi:"lifecycleRules"` + // A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). + Loggings s3.BucketLoggingArrayInput `pulumi:"loggings"` + // A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) + // + // > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` + ObjectLockConfiguration s3.BucketObjectLockConfigurationPtrInput `pulumi:"objectLockConfiguration"` + // A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. + Policy pulumi.StringPtrInput `pulumi:"policy"` + // A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). + ReplicationConfiguration s3.BucketReplicationConfigurationPtrInput `pulumi:"replicationConfiguration"` + // Specifies who should bear the cost of Amazon S3 data transfer. + // Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur + // the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) + // developer guide for more information. + RequestPayer pulumi.StringPtrInput `pulumi:"requestPayer"` + // A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) + ServerSideEncryptionConfiguration s3.BucketServerSideEncryptionConfigurationPtrInput `pulumi:"serverSideEncryptionConfiguration"` + // A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` + // A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) + Versioning s3.BucketVersioningPtrInput `pulumi:"versioning"` + // A website object (documented below). + Website s3.BucketWebsitePtrInput `pulumi:"website"` + // The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain pulumi.StringPtrInput `pulumi:"websiteDomain"` + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint pulumi.StringPtrInput `pulumi:"websiteEndpoint"` +} + +func (BucketArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Bucket)(nil)).Elem() +} + +func (i BucketArgs) ToBucketOutput() BucketOutput { + return i.ToBucketOutputWithContext(context.Background()) +} + +func (i BucketArgs) ToBucketOutputWithContext(ctx context.Context) BucketOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOutput) +} + +func (i BucketArgs) ToOutput(ctx context.Context) pulumix.Output[Bucket] { + return pulumix.Output[Bucket]{ + OutputState: i.ToBucketOutputWithContext(ctx).OutputState, + } +} + +func (i BucketArgs) ToBucketPtrOutput() BucketPtrOutput { + return i.ToBucketPtrOutputWithContext(context.Background()) +} + +func (i BucketArgs) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketOutput).ToBucketPtrOutputWithContext(ctx) +} + +// BucketPtrInput is an input type that accepts BucketArgs, BucketPtr and BucketPtrOutput values. +// You can construct a concrete instance of `BucketPtrInput` via: +// +// BucketArgs{...} +// +// or: +// +// nil +type BucketPtrInput interface { + pulumi.Input + + ToBucketPtrOutput() BucketPtrOutput + ToBucketPtrOutputWithContext(context.Context) BucketPtrOutput +} + +type bucketPtrType BucketArgs + +func BucketPtr(v *BucketArgs) BucketPtrInput { + return (*bucketPtrType)(v) +} + +func (*bucketPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Bucket)(nil)).Elem() +} + +func (i *bucketPtrType) ToBucketPtrOutput() BucketPtrOutput { + return i.ToBucketPtrOutputWithContext(context.Background()) +} + +func (i *bucketPtrType) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BucketPtrOutput) +} + +func (i *bucketPtrType) ToOutput(ctx context.Context) pulumix.Output[*Bucket] { + return pulumix.Output[*Bucket]{ + OutputState: i.ToBucketPtrOutputWithContext(ctx).OutputState, + } +} + +// The set of arguments for constructing a Bucket resource. +type BucketOutput struct{ *pulumi.OutputState } + +func (BucketOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Bucket)(nil)).Elem() +} + +func (o BucketOutput) ToBucketOutput() BucketOutput { + return o +} + +func (o BucketOutput) ToBucketOutputWithContext(ctx context.Context) BucketOutput { + return o +} + +func (o BucketOutput) ToBucketPtrOutput() BucketPtrOutput { + return o.ToBucketPtrOutputWithContext(context.Background()) +} + +func (o BucketOutput) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Bucket) *Bucket { + return &v + }).(BucketPtrOutput) +} + +func (o BucketOutput) ToOutput(ctx context.Context) pulumix.Output[Bucket] { + return pulumix.Output[Bucket]{ + OutputState: o.OutputState, + } +} + +// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. +func (o BucketOutput) AccelerationStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.AccelerationStatus }).(pulumi.StringPtrOutput) +} + +// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. +func (o BucketOutput) Acl() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.Acl }).(pulumi.StringPtrOutput) +} + +// The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. +func (o BucketOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.Bucket }).(pulumi.StringPtrOutput) +} + +// Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketOutput) BucketPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.BucketPrefix }).(pulumi.StringPtrOutput) +} + +// A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). +func (o BucketOutput) CorsRules() s3.BucketCorsRuleArrayOutput { + return o.ApplyT(func(v Bucket) []s3.BucketCorsRule { return v.CorsRules }).(s3.BucketCorsRuleArrayOutput) +} + +// A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. +func (o BucketOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Bucket) *bool { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. +func (o BucketOutput) Grants() s3.BucketGrantArrayOutput { + return o.ApplyT(func(v Bucket) []s3.BucketGrant { return v.Grants }).(s3.BucketGrantArrayOutput) +} + +// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. +func (o BucketOutput) HostedZoneId() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.HostedZoneId }).(pulumi.StringPtrOutput) +} + +// A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). +func (o BucketOutput) LifecycleRules() s3.BucketLifecycleRuleArrayOutput { + return o.ApplyT(func(v Bucket) []s3.BucketLifecycleRule { return v.LifecycleRules }).(s3.BucketLifecycleRuleArrayOutput) +} + +// A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). +func (o BucketOutput) Loggings() s3.BucketLoggingArrayOutput { + return o.ApplyT(func(v Bucket) []s3.BucketLogging { return v.Loggings }).(s3.BucketLoggingArrayOutput) +} + +// A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) +// +// > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` +func (o BucketOutput) ObjectLockConfiguration() s3.BucketObjectLockConfigurationPtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketObjectLockConfiguration { return v.ObjectLockConfiguration }).(s3.BucketObjectLockConfigurationPtrOutput) +} + +// A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. +func (o BucketOutput) Policy() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.Policy }).(pulumi.StringPtrOutput) +} + +// A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). +func (o BucketOutput) ReplicationConfiguration() s3.BucketReplicationConfigurationPtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketReplicationConfiguration { return v.ReplicationConfiguration }).(s3.BucketReplicationConfigurationPtrOutput) +} + +// Specifies who should bear the cost of Amazon S3 data transfer. +// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur +// the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) +// developer guide for more information. +func (o BucketOutput) RequestPayer() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.RequestPayer }).(pulumi.StringPtrOutput) +} + +// A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) +func (o BucketOutput) ServerSideEncryptionConfiguration() s3.BucketServerSideEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketServerSideEncryptionConfiguration { return v.ServerSideEncryptionConfiguration }).(s3.BucketServerSideEncryptionConfigurationPtrOutput) +} + +// A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v Bucket) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) +func (o BucketOutput) Versioning() s3.BucketVersioningPtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketVersioning { return v.Versioning }).(s3.BucketVersioningPtrOutput) +} + +// A website object (documented below). +func (o BucketOutput) Website() s3.BucketWebsitePtrOutput { + return o.ApplyT(func(v Bucket) *s3.BucketWebsite { return v.Website }).(s3.BucketWebsitePtrOutput) +} + +// The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. +func (o BucketOutput) WebsiteDomain() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.WebsiteDomain }).(pulumi.StringPtrOutput) +} + +// The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. +func (o BucketOutput) WebsiteEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v Bucket) *string { return v.WebsiteEndpoint }).(pulumi.StringPtrOutput) +} + +type BucketPtrOutput struct{ *pulumi.OutputState } + +func (BucketPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Bucket)(nil)).Elem() +} + +func (o BucketPtrOutput) ToBucketPtrOutput() BucketPtrOutput { + return o +} + +func (o BucketPtrOutput) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput { + return o +} + +func (o BucketPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*Bucket] { + return pulumix.Output[*Bucket]{ + OutputState: o.OutputState, + } +} + +func (o BucketPtrOutput) Elem() BucketOutput { + return o.ApplyT(func(v *Bucket) Bucket { + if v != nil { + return *v + } + var ret Bucket + return ret + }).(BucketOutput) +} + +// Sets the accelerate configuration of an existing bucket. Can be `Enabled` or `Suspended`. +func (o BucketPtrOutput) AccelerationStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.AccelerationStatus + }).(pulumi.StringPtrOutput) +} + +// The [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) to apply. Valid values are `private`, `public-read`, `public-read-write`, `aws-exec-read`, `authenticated-read`, and `log-delivery-write`. Defaults to `private`. Conflicts with `grant`. +func (o BucketPtrOutput) Acl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.Acl + }).(pulumi.StringPtrOutput) +} + +// The ARN of the bucket. Will be of format `arn:aws:s3:::bucketname`. +func (o BucketPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.Arn + }).(pulumi.StringPtrOutput) +} + +// The name of the bucket. If omitted, this provider will assign a random, unique name. Must be lowercase and less than or equal to 63 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketPtrOutput) Bucket() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.Bucket + }).(pulumi.StringPtrOutput) +} + +// Creates a unique bucket name beginning with the specified prefix. Conflicts with `bucket`. Must be lowercase and less than or equal to 37 characters in length. A full list of bucket naming rules [may be found here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). +func (o BucketPtrOutput) BucketPrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.BucketPrefix + }).(pulumi.StringPtrOutput) +} + +// A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below). +func (o BucketPtrOutput) CorsRules() s3.BucketCorsRuleArrayOutput { + return o.ApplyT(func(v *Bucket) []s3.BucketCorsRule { + if v == nil { + return nil + } + return v.CorsRules + }).(s3.BucketCorsRuleArrayOutput) +} + +// A boolean that indicates all objects (including any [locked objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html)) should be deleted from the bucket so that the bucket can be destroyed without error. These objects are *not* recoverable. +func (o BucketPtrOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Bucket) *bool { + if v == nil { + return nil + } + return v.ForceDestroy + }).(pulumi.BoolPtrOutput) +} + +// An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`. +func (o BucketPtrOutput) Grants() s3.BucketGrantArrayOutput { + return o.ApplyT(func(v *Bucket) []s3.BucketGrant { + if v == nil { + return nil + } + return v.Grants + }).(s3.BucketGrantArrayOutput) +} + +// The [Route 53 Hosted Zone ID](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints) for this bucket's region. +func (o BucketPtrOutput) HostedZoneId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.HostedZoneId + }).(pulumi.StringPtrOutput) +} + +// A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below). +func (o BucketPtrOutput) LifecycleRules() s3.BucketLifecycleRuleArrayOutput { + return o.ApplyT(func(v *Bucket) []s3.BucketLifecycleRule { + if v == nil { + return nil + } + return v.LifecycleRules + }).(s3.BucketLifecycleRuleArrayOutput) +} + +// A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below). +func (o BucketPtrOutput) Loggings() s3.BucketLoggingArrayOutput { + return o.ApplyT(func(v *Bucket) []s3.BucketLogging { + if v == nil { + return nil + } + return v.Loggings + }).(s3.BucketLoggingArrayOutput) +} + +// A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below) +// +// > **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1` +func (o BucketPtrOutput) ObjectLockConfiguration() s3.BucketObjectLockConfigurationPtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketObjectLockConfiguration { + if v == nil { + return nil + } + return v.ObjectLockConfiguration + }).(s3.BucketObjectLockConfigurationPtrOutput) +} + +// A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy. +func (o BucketPtrOutput) Policy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.Policy + }).(pulumi.StringPtrOutput) +} + +// A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below). +func (o BucketPtrOutput) ReplicationConfiguration() s3.BucketReplicationConfigurationPtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketReplicationConfiguration { + if v == nil { + return nil + } + return v.ReplicationConfiguration + }).(s3.BucketReplicationConfigurationPtrOutput) +} + +// Specifies who should bear the cost of Amazon S3 data transfer. +// Can be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur +// the costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) +// developer guide for more information. +func (o BucketPtrOutput) RequestPayer() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.RequestPayer + }).(pulumi.StringPtrOutput) +} + +// A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below) +func (o BucketPtrOutput) ServerSideEncryptionConfiguration() s3.BucketServerSideEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketServerSideEncryptionConfiguration { + if v == nil { + return nil + } + return v.ServerSideEncryptionConfiguration + }).(s3.BucketServerSideEncryptionConfigurationPtrOutput) +} + +// A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o BucketPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Bucket) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below) +func (o BucketPtrOutput) Versioning() s3.BucketVersioningPtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketVersioning { + if v == nil { + return nil + } + return v.Versioning + }).(s3.BucketVersioningPtrOutput) +} + +// A website object (documented below). +func (o BucketPtrOutput) Website() s3.BucketWebsitePtrOutput { + return o.ApplyT(func(v *Bucket) *s3.BucketWebsite { + if v == nil { + return nil + } + return v.Website + }).(s3.BucketWebsitePtrOutput) +} + +// The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. +func (o BucketPtrOutput) WebsiteDomain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.WebsiteDomain + }).(pulumi.StringPtrOutput) +} + +// The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. +func (o BucketPtrOutput) WebsiteEndpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Bucket) *string { + if v == nil { + return nil + } + return v.WebsiteEndpoint + }).(pulumi.StringPtrOutput) +} + +// Bucket with default setup unless explicitly skipped. +type DefaultBucket struct { + // Arguments to use instead of the default values during creation. + Args *Bucket `pulumi:"args"` + // Identity of an existing bucket to use. Cannot be used in combination with `args`. + Existing *ExistingBucket `pulumi:"existing"` + // Skip creation of the bucket. + Skip *bool `pulumi:"skip"` +} + +// Log group with default setup unless explicitly skipped. +type DefaultLogGroup struct { + // Arguments to use instead of the default values during creation. + Args *LogGroup `pulumi:"args"` + // Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. + Existing *ExistingLogGroup `pulumi:"existing"` + // Skip creation of the log group. + Skip *bool `pulumi:"skip"` +} + +// DefaultLogGroupInput is an input type that accepts DefaultLogGroupArgs and DefaultLogGroupOutput values. +// You can construct a concrete instance of `DefaultLogGroupInput` via: +// +// DefaultLogGroupArgs{...} +type DefaultLogGroupInput interface { + pulumi.Input + + ToDefaultLogGroupOutput() DefaultLogGroupOutput + ToDefaultLogGroupOutputWithContext(context.Context) DefaultLogGroupOutput +} + +// Log group with default setup unless explicitly skipped. +type DefaultLogGroupArgs struct { + // Arguments to use instead of the default values during creation. + Args *LogGroupArgs `pulumi:"args"` + // Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. + Existing *ExistingLogGroupArgs `pulumi:"existing"` + // Skip creation of the log group. + Skip *bool `pulumi:"skip"` +} + +func (DefaultLogGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultLogGroup)(nil)).Elem() +} + +func (i DefaultLogGroupArgs) ToDefaultLogGroupOutput() DefaultLogGroupOutput { + return i.ToDefaultLogGroupOutputWithContext(context.Background()) +} + +func (i DefaultLogGroupArgs) ToDefaultLogGroupOutputWithContext(ctx context.Context) DefaultLogGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultLogGroupOutput) +} + +func (i DefaultLogGroupArgs) ToOutput(ctx context.Context) pulumix.Output[DefaultLogGroup] { + return pulumix.Output[DefaultLogGroup]{ + OutputState: i.ToDefaultLogGroupOutputWithContext(ctx).OutputState, + } +} + +func (i DefaultLogGroupArgs) ToDefaultLogGroupPtrOutput() DefaultLogGroupPtrOutput { + return i.ToDefaultLogGroupPtrOutputWithContext(context.Background()) +} + +func (i DefaultLogGroupArgs) ToDefaultLogGroupPtrOutputWithContext(ctx context.Context) DefaultLogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultLogGroupOutput).ToDefaultLogGroupPtrOutputWithContext(ctx) +} + +// DefaultLogGroupPtrInput is an input type that accepts DefaultLogGroupArgs, DefaultLogGroupPtr and DefaultLogGroupPtrOutput values. +// You can construct a concrete instance of `DefaultLogGroupPtrInput` via: +// +// DefaultLogGroupArgs{...} +// +// or: +// +// nil +type DefaultLogGroupPtrInput interface { + pulumi.Input + + ToDefaultLogGroupPtrOutput() DefaultLogGroupPtrOutput + ToDefaultLogGroupPtrOutputWithContext(context.Context) DefaultLogGroupPtrOutput +} + +type defaultLogGroupPtrType DefaultLogGroupArgs + +func DefaultLogGroupPtr(v *DefaultLogGroupArgs) DefaultLogGroupPtrInput { + return (*defaultLogGroupPtrType)(v) +} + +func (*defaultLogGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultLogGroup)(nil)).Elem() +} + +func (i *defaultLogGroupPtrType) ToDefaultLogGroupPtrOutput() DefaultLogGroupPtrOutput { + return i.ToDefaultLogGroupPtrOutputWithContext(context.Background()) +} + +func (i *defaultLogGroupPtrType) ToDefaultLogGroupPtrOutputWithContext(ctx context.Context) DefaultLogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultLogGroupPtrOutput) +} + +func (i *defaultLogGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*DefaultLogGroup] { + return pulumix.Output[*DefaultLogGroup]{ + OutputState: i.ToDefaultLogGroupPtrOutputWithContext(ctx).OutputState, + } +} + +// Log group with default setup unless explicitly skipped. +type DefaultLogGroupOutput struct{ *pulumi.OutputState } + +func (DefaultLogGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultLogGroup)(nil)).Elem() +} + +func (o DefaultLogGroupOutput) ToDefaultLogGroupOutput() DefaultLogGroupOutput { + return o +} + +func (o DefaultLogGroupOutput) ToDefaultLogGroupOutputWithContext(ctx context.Context) DefaultLogGroupOutput { + return o +} + +func (o DefaultLogGroupOutput) ToDefaultLogGroupPtrOutput() DefaultLogGroupPtrOutput { + return o.ToDefaultLogGroupPtrOutputWithContext(context.Background()) +} + +func (o DefaultLogGroupOutput) ToDefaultLogGroupPtrOutputWithContext(ctx context.Context) DefaultLogGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DefaultLogGroup) *DefaultLogGroup { + return &v + }).(DefaultLogGroupPtrOutput) +} + +func (o DefaultLogGroupOutput) ToOutput(ctx context.Context) pulumix.Output[DefaultLogGroup] { + return pulumix.Output[DefaultLogGroup]{ + OutputState: o.OutputState, + } +} + +// Arguments to use instead of the default values during creation. +func (o DefaultLogGroupOutput) Args() LogGroupPtrOutput { + return o.ApplyT(func(v DefaultLogGroup) *LogGroup { return v.Args }).(LogGroupPtrOutput) +} + +// Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. +func (o DefaultLogGroupOutput) Existing() ExistingLogGroupPtrOutput { + return o.ApplyT(func(v DefaultLogGroup) *ExistingLogGroup { return v.Existing }).(ExistingLogGroupPtrOutput) +} + +// Skip creation of the log group. +func (o DefaultLogGroupOutput) Skip() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DefaultLogGroup) *bool { return v.Skip }).(pulumi.BoolPtrOutput) +} + +type DefaultLogGroupPtrOutput struct{ *pulumi.OutputState } + +func (DefaultLogGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultLogGroup)(nil)).Elem() +} + +func (o DefaultLogGroupPtrOutput) ToDefaultLogGroupPtrOutput() DefaultLogGroupPtrOutput { + return o +} + +func (o DefaultLogGroupPtrOutput) ToDefaultLogGroupPtrOutputWithContext(ctx context.Context) DefaultLogGroupPtrOutput { + return o +} + +func (o DefaultLogGroupPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*DefaultLogGroup] { + return pulumix.Output[*DefaultLogGroup]{ + OutputState: o.OutputState, + } +} + +func (o DefaultLogGroupPtrOutput) Elem() DefaultLogGroupOutput { + return o.ApplyT(func(v *DefaultLogGroup) DefaultLogGroup { + if v != nil { + return *v + } + var ret DefaultLogGroup + return ret + }).(DefaultLogGroupOutput) +} + +// Arguments to use instead of the default values during creation. +func (o DefaultLogGroupPtrOutput) Args() LogGroupPtrOutput { + return o.ApplyT(func(v *DefaultLogGroup) *LogGroup { + if v == nil { + return nil + } + return v.Args + }).(LogGroupPtrOutput) +} + +// Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. +func (o DefaultLogGroupPtrOutput) Existing() ExistingLogGroupPtrOutput { + return o.ApplyT(func(v *DefaultLogGroup) *ExistingLogGroup { + if v == nil { + return nil + } + return v.Existing + }).(ExistingLogGroupPtrOutput) +} + +// Skip creation of the log group. +func (o DefaultLogGroupPtrOutput) Skip() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DefaultLogGroup) *bool { + if v == nil { + return nil + } + return v.Skip + }).(pulumi.BoolPtrOutput) +} + +// Role and policy attachments with default setup unless explicitly skipped or an existing role ARN provided. +type DefaultRoleWithPolicy struct { + // Args to use when creating the role and policies. Can't be specified if `roleArn` is used. + Args *RoleWithPolicy `pulumi:"args"` + // ARN of existing role to use instead of creating a new role. Cannot be used in combination with `args` or `opts`. + RoleArn *string `pulumi:"roleArn"` + // Skips creation of the role if set to `true`. + Skip *bool `pulumi:"skip"` +} + +// DefaultRoleWithPolicyInput is an input type that accepts DefaultRoleWithPolicyArgs and DefaultRoleWithPolicyOutput values. +// You can construct a concrete instance of `DefaultRoleWithPolicyInput` via: +// +// DefaultRoleWithPolicyArgs{...} +type DefaultRoleWithPolicyInput interface { + pulumi.Input + + ToDefaultRoleWithPolicyOutput() DefaultRoleWithPolicyOutput + ToDefaultRoleWithPolicyOutputWithContext(context.Context) DefaultRoleWithPolicyOutput +} + +// Role and policy attachments with default setup unless explicitly skipped or an existing role ARN provided. +type DefaultRoleWithPolicyArgs struct { + // Args to use when creating the role and policies. Can't be specified if `roleArn` is used. + Args *RoleWithPolicyArgs `pulumi:"args"` + // ARN of existing role to use instead of creating a new role. Cannot be used in combination with `args` or `opts`. + RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` + // Skips creation of the role if set to `true`. + Skip *bool `pulumi:"skip"` +} + +func (DefaultRoleWithPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultRoleWithPolicy)(nil)).Elem() +} + +func (i DefaultRoleWithPolicyArgs) ToDefaultRoleWithPolicyOutput() DefaultRoleWithPolicyOutput { + return i.ToDefaultRoleWithPolicyOutputWithContext(context.Background()) +} + +func (i DefaultRoleWithPolicyArgs) ToDefaultRoleWithPolicyOutputWithContext(ctx context.Context) DefaultRoleWithPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRoleWithPolicyOutput) +} + +func (i DefaultRoleWithPolicyArgs) ToOutput(ctx context.Context) pulumix.Output[DefaultRoleWithPolicy] { + return pulumix.Output[DefaultRoleWithPolicy]{ + OutputState: i.ToDefaultRoleWithPolicyOutputWithContext(ctx).OutputState, + } +} + +func (i DefaultRoleWithPolicyArgs) ToDefaultRoleWithPolicyPtrOutput() DefaultRoleWithPolicyPtrOutput { + return i.ToDefaultRoleWithPolicyPtrOutputWithContext(context.Background()) +} + +func (i DefaultRoleWithPolicyArgs) ToDefaultRoleWithPolicyPtrOutputWithContext(ctx context.Context) DefaultRoleWithPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRoleWithPolicyOutput).ToDefaultRoleWithPolicyPtrOutputWithContext(ctx) +} + +// DefaultRoleWithPolicyPtrInput is an input type that accepts DefaultRoleWithPolicyArgs, DefaultRoleWithPolicyPtr and DefaultRoleWithPolicyPtrOutput values. +// You can construct a concrete instance of `DefaultRoleWithPolicyPtrInput` via: +// +// DefaultRoleWithPolicyArgs{...} +// +// or: +// +// nil +type DefaultRoleWithPolicyPtrInput interface { + pulumi.Input + + ToDefaultRoleWithPolicyPtrOutput() DefaultRoleWithPolicyPtrOutput + ToDefaultRoleWithPolicyPtrOutputWithContext(context.Context) DefaultRoleWithPolicyPtrOutput +} + +type defaultRoleWithPolicyPtrType DefaultRoleWithPolicyArgs + +func DefaultRoleWithPolicyPtr(v *DefaultRoleWithPolicyArgs) DefaultRoleWithPolicyPtrInput { + return (*defaultRoleWithPolicyPtrType)(v) +} + +func (*defaultRoleWithPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRoleWithPolicy)(nil)).Elem() +} + +func (i *defaultRoleWithPolicyPtrType) ToDefaultRoleWithPolicyPtrOutput() DefaultRoleWithPolicyPtrOutput { + return i.ToDefaultRoleWithPolicyPtrOutputWithContext(context.Background()) +} + +func (i *defaultRoleWithPolicyPtrType) ToDefaultRoleWithPolicyPtrOutputWithContext(ctx context.Context) DefaultRoleWithPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultRoleWithPolicyPtrOutput) +} + +func (i *defaultRoleWithPolicyPtrType) ToOutput(ctx context.Context) pulumix.Output[*DefaultRoleWithPolicy] { + return pulumix.Output[*DefaultRoleWithPolicy]{ + OutputState: i.ToDefaultRoleWithPolicyPtrOutputWithContext(ctx).OutputState, + } +} + +// Role and policy attachments with default setup unless explicitly skipped or an existing role ARN provided. +type DefaultRoleWithPolicyOutput struct{ *pulumi.OutputState } + +func (DefaultRoleWithPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultRoleWithPolicy)(nil)).Elem() +} + +func (o DefaultRoleWithPolicyOutput) ToDefaultRoleWithPolicyOutput() DefaultRoleWithPolicyOutput { + return o +} + +func (o DefaultRoleWithPolicyOutput) ToDefaultRoleWithPolicyOutputWithContext(ctx context.Context) DefaultRoleWithPolicyOutput { + return o +} + +func (o DefaultRoleWithPolicyOutput) ToDefaultRoleWithPolicyPtrOutput() DefaultRoleWithPolicyPtrOutput { + return o.ToDefaultRoleWithPolicyPtrOutputWithContext(context.Background()) +} + +func (o DefaultRoleWithPolicyOutput) ToDefaultRoleWithPolicyPtrOutputWithContext(ctx context.Context) DefaultRoleWithPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DefaultRoleWithPolicy) *DefaultRoleWithPolicy { + return &v + }).(DefaultRoleWithPolicyPtrOutput) +} + +func (o DefaultRoleWithPolicyOutput) ToOutput(ctx context.Context) pulumix.Output[DefaultRoleWithPolicy] { + return pulumix.Output[DefaultRoleWithPolicy]{ + OutputState: o.OutputState, + } +} + +// Args to use when creating the role and policies. Can't be specified if `roleArn` is used. +func (o DefaultRoleWithPolicyOutput) Args() RoleWithPolicyPtrOutput { + return o.ApplyT(func(v DefaultRoleWithPolicy) *RoleWithPolicy { return v.Args }).(RoleWithPolicyPtrOutput) +} + +// ARN of existing role to use instead of creating a new role. Cannot be used in combination with `args` or `opts`. +func (o DefaultRoleWithPolicyOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultRoleWithPolicy) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// Skips creation of the role if set to `true`. +func (o DefaultRoleWithPolicyOutput) Skip() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DefaultRoleWithPolicy) *bool { return v.Skip }).(pulumi.BoolPtrOutput) +} + +type DefaultRoleWithPolicyPtrOutput struct{ *pulumi.OutputState } + +func (DefaultRoleWithPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultRoleWithPolicy)(nil)).Elem() +} + +func (o DefaultRoleWithPolicyPtrOutput) ToDefaultRoleWithPolicyPtrOutput() DefaultRoleWithPolicyPtrOutput { + return o +} + +func (o DefaultRoleWithPolicyPtrOutput) ToDefaultRoleWithPolicyPtrOutputWithContext(ctx context.Context) DefaultRoleWithPolicyPtrOutput { + return o +} + +func (o DefaultRoleWithPolicyPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*DefaultRoleWithPolicy] { + return pulumix.Output[*DefaultRoleWithPolicy]{ + OutputState: o.OutputState, + } +} + +func (o DefaultRoleWithPolicyPtrOutput) Elem() DefaultRoleWithPolicyOutput { + return o.ApplyT(func(v *DefaultRoleWithPolicy) DefaultRoleWithPolicy { + if v != nil { + return *v + } + var ret DefaultRoleWithPolicy + return ret + }).(DefaultRoleWithPolicyOutput) +} + +// Args to use when creating the role and policies. Can't be specified if `roleArn` is used. +func (o DefaultRoleWithPolicyPtrOutput) Args() RoleWithPolicyPtrOutput { + return o.ApplyT(func(v *DefaultRoleWithPolicy) *RoleWithPolicy { + if v == nil { + return nil + } + return v.Args + }).(RoleWithPolicyPtrOutput) +} + +// ARN of existing role to use instead of creating a new role. Cannot be used in combination with `args` or `opts`. +func (o DefaultRoleWithPolicyPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultRoleWithPolicy) *string { + if v == nil { + return nil + } + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// Skips creation of the role if set to `true`. +func (o DefaultRoleWithPolicyPtrOutput) Skip() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DefaultRoleWithPolicy) *bool { + if v == nil { + return nil + } + return v.Skip + }).(pulumi.BoolPtrOutput) +} + +// Security Group with default setup unless explicitly skipped or an existing security group id provided. +type DefaultSecurityGroup struct { + // Args to use when creating the security group. Can't be specified if `securityGroupId` is used. + Args *SecurityGroup `pulumi:"args"` + // Id of existing security group to use instead of creating a new security group. Cannot be used in combination with `args` or `opts`. + SecurityGroupId *string `pulumi:"securityGroupId"` + // Skips creation of the security group if set to `true`. + Skip *bool `pulumi:"skip"` +} + +// Defaults sets the appropriate defaults for DefaultSecurityGroup +func (val *DefaultSecurityGroup) Defaults() *DefaultSecurityGroup { + if val == nil { + return nil + } + tmp := *val + tmp.Args = tmp.Args.Defaults() + + return &tmp +} + +// DefaultSecurityGroupInput is an input type that accepts DefaultSecurityGroupArgs and DefaultSecurityGroupOutput values. +// You can construct a concrete instance of `DefaultSecurityGroupInput` via: +// +// DefaultSecurityGroupArgs{...} +type DefaultSecurityGroupInput interface { + pulumi.Input + + ToDefaultSecurityGroupOutput() DefaultSecurityGroupOutput + ToDefaultSecurityGroupOutputWithContext(context.Context) DefaultSecurityGroupOutput +} + +// Security Group with default setup unless explicitly skipped or an existing security group id provided. +type DefaultSecurityGroupArgs struct { + // Args to use when creating the security group. Can't be specified if `securityGroupId` is used. + Args *SecurityGroupArgs `pulumi:"args"` + // Id of existing security group to use instead of creating a new security group. Cannot be used in combination with `args` or `opts`. + SecurityGroupId pulumi.StringPtrInput `pulumi:"securityGroupId"` + // Skips creation of the security group if set to `true`. + Skip *bool `pulumi:"skip"` +} + +// Defaults sets the appropriate defaults for DefaultSecurityGroupArgs +func (val *DefaultSecurityGroupArgs) Defaults() *DefaultSecurityGroupArgs { + if val == nil { + return nil + } + tmp := *val + tmp.Args = tmp.Args.Defaults() + + return &tmp +} +func (DefaultSecurityGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultSecurityGroup)(nil)).Elem() +} + +func (i DefaultSecurityGroupArgs) ToDefaultSecurityGroupOutput() DefaultSecurityGroupOutput { + return i.ToDefaultSecurityGroupOutputWithContext(context.Background()) +} + +func (i DefaultSecurityGroupArgs) ToDefaultSecurityGroupOutputWithContext(ctx context.Context) DefaultSecurityGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultSecurityGroupOutput) +} + +func (i DefaultSecurityGroupArgs) ToOutput(ctx context.Context) pulumix.Output[DefaultSecurityGroup] { + return pulumix.Output[DefaultSecurityGroup]{ + OutputState: i.ToDefaultSecurityGroupOutputWithContext(ctx).OutputState, + } +} + +func (i DefaultSecurityGroupArgs) ToDefaultSecurityGroupPtrOutput() DefaultSecurityGroupPtrOutput { + return i.ToDefaultSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (i DefaultSecurityGroupArgs) ToDefaultSecurityGroupPtrOutputWithContext(ctx context.Context) DefaultSecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultSecurityGroupOutput).ToDefaultSecurityGroupPtrOutputWithContext(ctx) +} + +// DefaultSecurityGroupPtrInput is an input type that accepts DefaultSecurityGroupArgs, DefaultSecurityGroupPtr and DefaultSecurityGroupPtrOutput values. +// You can construct a concrete instance of `DefaultSecurityGroupPtrInput` via: +// +// DefaultSecurityGroupArgs{...} +// +// or: +// +// nil +type DefaultSecurityGroupPtrInput interface { + pulumi.Input + + ToDefaultSecurityGroupPtrOutput() DefaultSecurityGroupPtrOutput + ToDefaultSecurityGroupPtrOutputWithContext(context.Context) DefaultSecurityGroupPtrOutput +} + +type defaultSecurityGroupPtrType DefaultSecurityGroupArgs + +func DefaultSecurityGroupPtr(v *DefaultSecurityGroupArgs) DefaultSecurityGroupPtrInput { + return (*defaultSecurityGroupPtrType)(v) +} + +func (*defaultSecurityGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultSecurityGroup)(nil)).Elem() +} + +func (i *defaultSecurityGroupPtrType) ToDefaultSecurityGroupPtrOutput() DefaultSecurityGroupPtrOutput { + return i.ToDefaultSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (i *defaultSecurityGroupPtrType) ToDefaultSecurityGroupPtrOutputWithContext(ctx context.Context) DefaultSecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DefaultSecurityGroupPtrOutput) +} + +func (i *defaultSecurityGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*DefaultSecurityGroup] { + return pulumix.Output[*DefaultSecurityGroup]{ + OutputState: i.ToDefaultSecurityGroupPtrOutputWithContext(ctx).OutputState, + } +} + +// Security Group with default setup unless explicitly skipped or an existing security group id provided. +type DefaultSecurityGroupOutput struct{ *pulumi.OutputState } + +func (DefaultSecurityGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DefaultSecurityGroup)(nil)).Elem() +} + +func (o DefaultSecurityGroupOutput) ToDefaultSecurityGroupOutput() DefaultSecurityGroupOutput { + return o +} + +func (o DefaultSecurityGroupOutput) ToDefaultSecurityGroupOutputWithContext(ctx context.Context) DefaultSecurityGroupOutput { + return o +} + +func (o DefaultSecurityGroupOutput) ToDefaultSecurityGroupPtrOutput() DefaultSecurityGroupPtrOutput { + return o.ToDefaultSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (o DefaultSecurityGroupOutput) ToDefaultSecurityGroupPtrOutputWithContext(ctx context.Context) DefaultSecurityGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DefaultSecurityGroup) *DefaultSecurityGroup { + return &v + }).(DefaultSecurityGroupPtrOutput) +} + +func (o DefaultSecurityGroupOutput) ToOutput(ctx context.Context) pulumix.Output[DefaultSecurityGroup] { + return pulumix.Output[DefaultSecurityGroup]{ + OutputState: o.OutputState, + } +} + +// Args to use when creating the security group. Can't be specified if `securityGroupId` is used. +func (o DefaultSecurityGroupOutput) Args() SecurityGroupPtrOutput { + return o.ApplyT(func(v DefaultSecurityGroup) *SecurityGroup { return v.Args }).(SecurityGroupPtrOutput) +} + +// Id of existing security group to use instead of creating a new security group. Cannot be used in combination with `args` or `opts`. +func (o DefaultSecurityGroupOutput) SecurityGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DefaultSecurityGroup) *string { return v.SecurityGroupId }).(pulumi.StringPtrOutput) +} + +// Skips creation of the security group if set to `true`. +func (o DefaultSecurityGroupOutput) Skip() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DefaultSecurityGroup) *bool { return v.Skip }).(pulumi.BoolPtrOutput) +} + +type DefaultSecurityGroupPtrOutput struct{ *pulumi.OutputState } + +func (DefaultSecurityGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DefaultSecurityGroup)(nil)).Elem() +} + +func (o DefaultSecurityGroupPtrOutput) ToDefaultSecurityGroupPtrOutput() DefaultSecurityGroupPtrOutput { + return o +} + +func (o DefaultSecurityGroupPtrOutput) ToDefaultSecurityGroupPtrOutputWithContext(ctx context.Context) DefaultSecurityGroupPtrOutput { + return o +} + +func (o DefaultSecurityGroupPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*DefaultSecurityGroup] { + return pulumix.Output[*DefaultSecurityGroup]{ + OutputState: o.OutputState, + } +} + +func (o DefaultSecurityGroupPtrOutput) Elem() DefaultSecurityGroupOutput { + return o.ApplyT(func(v *DefaultSecurityGroup) DefaultSecurityGroup { + if v != nil { + return *v + } + var ret DefaultSecurityGroup + return ret + }).(DefaultSecurityGroupOutput) +} + +// Args to use when creating the security group. Can't be specified if `securityGroupId` is used. +func (o DefaultSecurityGroupPtrOutput) Args() SecurityGroupPtrOutput { + return o.ApplyT(func(v *DefaultSecurityGroup) *SecurityGroup { + if v == nil { + return nil + } + return v.Args + }).(SecurityGroupPtrOutput) +} + +// Id of existing security group to use instead of creating a new security group. Cannot be used in combination with `args` or `opts`. +func (o DefaultSecurityGroupPtrOutput) SecurityGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DefaultSecurityGroup) *string { + if v == nil { + return nil + } + return v.SecurityGroupId + }).(pulumi.StringPtrOutput) +} + +// Skips creation of the security group if set to `true`. +func (o DefaultSecurityGroupPtrOutput) Skip() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DefaultSecurityGroup) *bool { + if v == nil { + return nil + } + return v.Skip + }).(pulumi.BoolPtrOutput) +} + +// Reference to an existing bucket. +type ExistingBucket struct { + // Arn of the bucket. Only one of [arn] or [name] can be specified. + Arn *string `pulumi:"arn"` + // Name of the bucket. Only one of [arn] or [name] can be specified. + Name *string `pulumi:"name"` +} + +// ExistingBucketInput is an input type that accepts ExistingBucketArgs and ExistingBucketOutput values. +// You can construct a concrete instance of `ExistingBucketInput` via: +// +// ExistingBucketArgs{...} +type ExistingBucketInput interface { + pulumi.Input + + ToExistingBucketOutput() ExistingBucketOutput + ToExistingBucketOutputWithContext(context.Context) ExistingBucketOutput +} + +// Reference to an existing bucket. +type ExistingBucketArgs struct { + // Arn of the bucket. Only one of [arn] or [name] can be specified. + Arn pulumi.StringPtrInput `pulumi:"arn"` + // Name of the bucket. Only one of [arn] or [name] can be specified. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (ExistingBucketArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExistingBucket)(nil)).Elem() +} + +func (i ExistingBucketArgs) ToExistingBucketOutput() ExistingBucketOutput { + return i.ToExistingBucketOutputWithContext(context.Background()) +} + +func (i ExistingBucketArgs) ToExistingBucketOutputWithContext(ctx context.Context) ExistingBucketOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExistingBucketOutput) +} + +func (i ExistingBucketArgs) ToOutput(ctx context.Context) pulumix.Output[ExistingBucket] { + return pulumix.Output[ExistingBucket]{ + OutputState: i.ToExistingBucketOutputWithContext(ctx).OutputState, + } +} + +func (i ExistingBucketArgs) ToExistingBucketPtrOutput() ExistingBucketPtrOutput { + return i.ToExistingBucketPtrOutputWithContext(context.Background()) +} + +func (i ExistingBucketArgs) ToExistingBucketPtrOutputWithContext(ctx context.Context) ExistingBucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExistingBucketOutput).ToExistingBucketPtrOutputWithContext(ctx) +} + +// ExistingBucketPtrInput is an input type that accepts ExistingBucketArgs, ExistingBucketPtr and ExistingBucketPtrOutput values. +// You can construct a concrete instance of `ExistingBucketPtrInput` via: +// +// ExistingBucketArgs{...} +// +// or: +// +// nil +type ExistingBucketPtrInput interface { + pulumi.Input + + ToExistingBucketPtrOutput() ExistingBucketPtrOutput + ToExistingBucketPtrOutputWithContext(context.Context) ExistingBucketPtrOutput +} + +type existingBucketPtrType ExistingBucketArgs + +func ExistingBucketPtr(v *ExistingBucketArgs) ExistingBucketPtrInput { + return (*existingBucketPtrType)(v) +} + +func (*existingBucketPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ExistingBucket)(nil)).Elem() +} + +func (i *existingBucketPtrType) ToExistingBucketPtrOutput() ExistingBucketPtrOutput { + return i.ToExistingBucketPtrOutputWithContext(context.Background()) +} + +func (i *existingBucketPtrType) ToExistingBucketPtrOutputWithContext(ctx context.Context) ExistingBucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExistingBucketPtrOutput) +} + +func (i *existingBucketPtrType) ToOutput(ctx context.Context) pulumix.Output[*ExistingBucket] { + return pulumix.Output[*ExistingBucket]{ + OutputState: i.ToExistingBucketPtrOutputWithContext(ctx).OutputState, + } +} + +// Reference to an existing bucket. +type ExistingBucketOutput struct{ *pulumi.OutputState } + +func (ExistingBucketOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExistingBucket)(nil)).Elem() +} + +func (o ExistingBucketOutput) ToExistingBucketOutput() ExistingBucketOutput { + return o +} + +func (o ExistingBucketOutput) ToExistingBucketOutputWithContext(ctx context.Context) ExistingBucketOutput { + return o +} + +func (o ExistingBucketOutput) ToExistingBucketPtrOutput() ExistingBucketPtrOutput { + return o.ToExistingBucketPtrOutputWithContext(context.Background()) +} + +func (o ExistingBucketOutput) ToExistingBucketPtrOutputWithContext(ctx context.Context) ExistingBucketPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExistingBucket) *ExistingBucket { + return &v + }).(ExistingBucketPtrOutput) +} + +func (o ExistingBucketOutput) ToOutput(ctx context.Context) pulumix.Output[ExistingBucket] { + return pulumix.Output[ExistingBucket]{ + OutputState: o.OutputState, + } +} + +// Arn of the bucket. Only one of [arn] or [name] can be specified. +func (o ExistingBucketOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExistingBucket) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// Name of the bucket. Only one of [arn] or [name] can be specified. +func (o ExistingBucketOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExistingBucket) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type ExistingBucketPtrOutput struct{ *pulumi.OutputState } + +func (ExistingBucketPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExistingBucket)(nil)).Elem() +} + +func (o ExistingBucketPtrOutput) ToExistingBucketPtrOutput() ExistingBucketPtrOutput { + return o +} + +func (o ExistingBucketPtrOutput) ToExistingBucketPtrOutputWithContext(ctx context.Context) ExistingBucketPtrOutput { + return o +} + +func (o ExistingBucketPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ExistingBucket] { + return pulumix.Output[*ExistingBucket]{ + OutputState: o.OutputState, + } +} + +func (o ExistingBucketPtrOutput) Elem() ExistingBucketOutput { + return o.ApplyT(func(v *ExistingBucket) ExistingBucket { + if v != nil { + return *v + } + var ret ExistingBucket + return ret + }).(ExistingBucketOutput) +} + +// Arn of the bucket. Only one of [arn] or [name] can be specified. +func (o ExistingBucketPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExistingBucket) *string { + if v == nil { + return nil + } + return v.Arn + }).(pulumi.StringPtrOutput) +} + +// Name of the bucket. Only one of [arn] or [name] can be specified. +func (o ExistingBucketPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExistingBucket) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Reference to an existing log group. +type ExistingLogGroup struct { + // Arn of the log group. Only one of [arn] or [name] can be specified. + Arn *string `pulumi:"arn"` + // Name of the log group. Only one of [arn] or [name] can be specified. + Name *string `pulumi:"name"` + // Region of the log group. If not specified, the provider region will be used. + Region *string `pulumi:"region"` +} + +// ExistingLogGroupInput is an input type that accepts ExistingLogGroupArgs and ExistingLogGroupOutput values. +// You can construct a concrete instance of `ExistingLogGroupInput` via: +// +// ExistingLogGroupArgs{...} +type ExistingLogGroupInput interface { + pulumi.Input + + ToExistingLogGroupOutput() ExistingLogGroupOutput + ToExistingLogGroupOutputWithContext(context.Context) ExistingLogGroupOutput +} + +// Reference to an existing log group. +type ExistingLogGroupArgs struct { + // Arn of the log group. Only one of [arn] or [name] can be specified. + Arn pulumi.StringPtrInput `pulumi:"arn"` + // Name of the log group. Only one of [arn] or [name] can be specified. + Name pulumi.StringPtrInput `pulumi:"name"` + // Region of the log group. If not specified, the provider region will be used. + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (ExistingLogGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExistingLogGroup)(nil)).Elem() +} + +func (i ExistingLogGroupArgs) ToExistingLogGroupOutput() ExistingLogGroupOutput { + return i.ToExistingLogGroupOutputWithContext(context.Background()) +} + +func (i ExistingLogGroupArgs) ToExistingLogGroupOutputWithContext(ctx context.Context) ExistingLogGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExistingLogGroupOutput) +} + +func (i ExistingLogGroupArgs) ToOutput(ctx context.Context) pulumix.Output[ExistingLogGroup] { + return pulumix.Output[ExistingLogGroup]{ + OutputState: i.ToExistingLogGroupOutputWithContext(ctx).OutputState, + } +} + +func (i ExistingLogGroupArgs) ToExistingLogGroupPtrOutput() ExistingLogGroupPtrOutput { + return i.ToExistingLogGroupPtrOutputWithContext(context.Background()) +} + +func (i ExistingLogGroupArgs) ToExistingLogGroupPtrOutputWithContext(ctx context.Context) ExistingLogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExistingLogGroupOutput).ToExistingLogGroupPtrOutputWithContext(ctx) +} + +// ExistingLogGroupPtrInput is an input type that accepts ExistingLogGroupArgs, ExistingLogGroupPtr and ExistingLogGroupPtrOutput values. +// You can construct a concrete instance of `ExistingLogGroupPtrInput` via: +// +// ExistingLogGroupArgs{...} +// +// or: +// +// nil +type ExistingLogGroupPtrInput interface { + pulumi.Input + + ToExistingLogGroupPtrOutput() ExistingLogGroupPtrOutput + ToExistingLogGroupPtrOutputWithContext(context.Context) ExistingLogGroupPtrOutput +} + +type existingLogGroupPtrType ExistingLogGroupArgs + +func ExistingLogGroupPtr(v *ExistingLogGroupArgs) ExistingLogGroupPtrInput { + return (*existingLogGroupPtrType)(v) +} + +func (*existingLogGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ExistingLogGroup)(nil)).Elem() +} + +func (i *existingLogGroupPtrType) ToExistingLogGroupPtrOutput() ExistingLogGroupPtrOutput { + return i.ToExistingLogGroupPtrOutputWithContext(context.Background()) +} + +func (i *existingLogGroupPtrType) ToExistingLogGroupPtrOutputWithContext(ctx context.Context) ExistingLogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExistingLogGroupPtrOutput) +} + +func (i *existingLogGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*ExistingLogGroup] { + return pulumix.Output[*ExistingLogGroup]{ + OutputState: i.ToExistingLogGroupPtrOutputWithContext(ctx).OutputState, + } +} + +// Reference to an existing log group. +type ExistingLogGroupOutput struct{ *pulumi.OutputState } + +func (ExistingLogGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExistingLogGroup)(nil)).Elem() +} + +func (o ExistingLogGroupOutput) ToExistingLogGroupOutput() ExistingLogGroupOutput { + return o +} + +func (o ExistingLogGroupOutput) ToExistingLogGroupOutputWithContext(ctx context.Context) ExistingLogGroupOutput { + return o +} + +func (o ExistingLogGroupOutput) ToExistingLogGroupPtrOutput() ExistingLogGroupPtrOutput { + return o.ToExistingLogGroupPtrOutputWithContext(context.Background()) +} + +func (o ExistingLogGroupOutput) ToExistingLogGroupPtrOutputWithContext(ctx context.Context) ExistingLogGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ExistingLogGroup) *ExistingLogGroup { + return &v + }).(ExistingLogGroupPtrOutput) +} + +func (o ExistingLogGroupOutput) ToOutput(ctx context.Context) pulumix.Output[ExistingLogGroup] { + return pulumix.Output[ExistingLogGroup]{ + OutputState: o.OutputState, + } +} + +// Arn of the log group. Only one of [arn] or [name] can be specified. +func (o ExistingLogGroupOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExistingLogGroup) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// Name of the log group. Only one of [arn] or [name] can be specified. +func (o ExistingLogGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExistingLogGroup) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Region of the log group. If not specified, the provider region will be used. +func (o ExistingLogGroupOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExistingLogGroup) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +type ExistingLogGroupPtrOutput struct{ *pulumi.OutputState } + +func (ExistingLogGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ExistingLogGroup)(nil)).Elem() +} + +func (o ExistingLogGroupPtrOutput) ToExistingLogGroupPtrOutput() ExistingLogGroupPtrOutput { + return o +} + +func (o ExistingLogGroupPtrOutput) ToExistingLogGroupPtrOutputWithContext(ctx context.Context) ExistingLogGroupPtrOutput { + return o +} + +func (o ExistingLogGroupPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ExistingLogGroup] { + return pulumix.Output[*ExistingLogGroup]{ + OutputState: o.OutputState, + } +} + +func (o ExistingLogGroupPtrOutput) Elem() ExistingLogGroupOutput { + return o.ApplyT(func(v *ExistingLogGroup) ExistingLogGroup { + if v != nil { + return *v + } + var ret ExistingLogGroup + return ret + }).(ExistingLogGroupOutput) +} + +// Arn of the log group. Only one of [arn] or [name] can be specified. +func (o ExistingLogGroupPtrOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExistingLogGroup) *string { + if v == nil { + return nil + } + return v.Arn + }).(pulumi.StringPtrOutput) +} + +// Name of the log group. Only one of [arn] or [name] can be specified. +func (o ExistingLogGroupPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExistingLogGroup) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Region of the log group. If not specified, the provider region will be used. +func (o ExistingLogGroupPtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ExistingLogGroup) *string { + if v == nil { + return nil + } + return v.Region + }).(pulumi.StringPtrOutput) +} + +// The set of arguments for constructing a LogGroup resource. +type LogGroup struct { + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays *int `pulumi:"retentionInDays"` + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy *bool `pulumi:"skipDestroy"` + // A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// LogGroupInput is an input type that accepts LogGroupArgs and LogGroupOutput values. +// You can construct a concrete instance of `LogGroupInput` via: +// +// LogGroupArgs{...} +type LogGroupInput interface { + pulumi.Input + + ToLogGroupOutput() LogGroupOutput + ToLogGroupOutputWithContext(context.Context) LogGroupOutput +} + +// The set of arguments for constructing a LogGroup resource. +type LogGroupArgs struct { + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, + // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires + // permissions for the CMK whenever the encrypted data is requested. + KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` + // The name of the log group. If omitted, this provider will assign a random, unique name. + Name pulumi.StringPtrInput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` + // Specifies the number of days + // you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. + // If you select 0, the events in the log group are always retained and never expire. + RetentionInDays pulumi.IntPtrInput `pulumi:"retentionInDays"` + // Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. + SkipDestroy pulumi.BoolPtrInput `pulumi:"skipDestroy"` + // A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (LogGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LogGroup)(nil)).Elem() +} + +func (i LogGroupArgs) ToLogGroupOutput() LogGroupOutput { + return i.ToLogGroupOutputWithContext(context.Background()) +} + +func (i LogGroupArgs) ToLogGroupOutputWithContext(ctx context.Context) LogGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogGroupOutput) +} + +func (i LogGroupArgs) ToOutput(ctx context.Context) pulumix.Output[LogGroup] { + return pulumix.Output[LogGroup]{ + OutputState: i.ToLogGroupOutputWithContext(ctx).OutputState, + } +} + +func (i LogGroupArgs) ToLogGroupPtrOutput() LogGroupPtrOutput { + return i.ToLogGroupPtrOutputWithContext(context.Background()) +} + +func (i LogGroupArgs) ToLogGroupPtrOutputWithContext(ctx context.Context) LogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogGroupOutput).ToLogGroupPtrOutputWithContext(ctx) +} + +// LogGroupPtrInput is an input type that accepts LogGroupArgs, LogGroupPtr and LogGroupPtrOutput values. +// You can construct a concrete instance of `LogGroupPtrInput` via: +// +// LogGroupArgs{...} +// +// or: +// +// nil +type LogGroupPtrInput interface { + pulumi.Input + + ToLogGroupPtrOutput() LogGroupPtrOutput + ToLogGroupPtrOutputWithContext(context.Context) LogGroupPtrOutput +} + +type logGroupPtrType LogGroupArgs + +func LogGroupPtr(v *LogGroupArgs) LogGroupPtrInput { + return (*logGroupPtrType)(v) +} + +func (*logGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LogGroup)(nil)).Elem() +} + +func (i *logGroupPtrType) ToLogGroupPtrOutput() LogGroupPtrOutput { + return i.ToLogGroupPtrOutputWithContext(context.Background()) +} + +func (i *logGroupPtrType) ToLogGroupPtrOutputWithContext(ctx context.Context) LogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LogGroupPtrOutput) +} + +func (i *logGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*LogGroup] { + return pulumix.Output[*LogGroup]{ + OutputState: i.ToLogGroupPtrOutputWithContext(ctx).OutputState, + } +} + +// The set of arguments for constructing a LogGroup resource. +type LogGroupOutput struct{ *pulumi.OutputState } + +func (LogGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LogGroup)(nil)).Elem() +} + +func (o LogGroupOutput) ToLogGroupOutput() LogGroupOutput { + return o +} + +func (o LogGroupOutput) ToLogGroupOutputWithContext(ctx context.Context) LogGroupOutput { + return o +} + +func (o LogGroupOutput) ToLogGroupPtrOutput() LogGroupPtrOutput { + return o.ToLogGroupPtrOutputWithContext(context.Background()) +} + +func (o LogGroupOutput) ToLogGroupPtrOutputWithContext(ctx context.Context) LogGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LogGroup) *LogGroup { + return &v + }).(LogGroupPtrOutput) +} + +func (o LogGroupOutput) ToOutput(ctx context.Context) pulumix.Output[LogGroup] { + return pulumix.Output[LogGroup]{ + OutputState: o.OutputState, + } +} + +// The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, +// AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires +// permissions for the CMK whenever the encrypted data is requested. +func (o LogGroupOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogGroup) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +// The name of the log group. If omitted, this provider will assign a random, unique name. +func (o LogGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogGroup) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o LogGroupOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v LogGroup) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days +// you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. +// If you select 0, the events in the log group are always retained and never expire. +func (o LogGroupOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v LogGroup) *int { return v.RetentionInDays }).(pulumi.IntPtrOutput) +} + +// Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. +func (o LogGroupOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LogGroup) *bool { return v.SkipDestroy }).(pulumi.BoolPtrOutput) +} + +// A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o LogGroupOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LogGroup) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type LogGroupPtrOutput struct{ *pulumi.OutputState } + +func (LogGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LogGroup)(nil)).Elem() +} + +func (o LogGroupPtrOutput) ToLogGroupPtrOutput() LogGroupPtrOutput { + return o +} + +func (o LogGroupPtrOutput) ToLogGroupPtrOutputWithContext(ctx context.Context) LogGroupPtrOutput { + return o +} + +func (o LogGroupPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*LogGroup] { + return pulumix.Output[*LogGroup]{ + OutputState: o.OutputState, + } +} + +func (o LogGroupPtrOutput) Elem() LogGroupOutput { + return o.ApplyT(func(v *LogGroup) LogGroup { + if v != nil { + return *v + } + var ret LogGroup + return ret + }).(LogGroupOutput) +} + +// The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, +// AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires +// permissions for the CMK whenever the encrypted data is requested. +func (o LogGroupPtrOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogGroup) *string { + if v == nil { + return nil + } + return v.KmsKeyId + }).(pulumi.StringPtrOutput) +} + +// The name of the log group. If omitted, this provider will assign a random, unique name. +func (o LogGroupPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogGroup) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o LogGroupPtrOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LogGroup) *string { + if v == nil { + return nil + } + return v.NamePrefix + }).(pulumi.StringPtrOutput) +} + +// Specifies the number of days +// you want to retain log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653, and 0. +// If you select 0, the events in the log group are always retained and never expire. +func (o LogGroupPtrOutput) RetentionInDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogGroup) *int { + if v == nil { + return nil + } + return v.RetentionInDays + }).(pulumi.IntPtrOutput) +} + +// Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. +func (o LogGroupPtrOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LogGroup) *bool { + if v == nil { + return nil + } + return v.SkipDestroy + }).(pulumi.BoolPtrOutput) +} + +// A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o LogGroupPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *LogGroup) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// Log group which is only created if enabled. +type OptionalLogGroup struct { + // Arguments to use instead of the default values during creation. + Args *LogGroup `pulumi:"args"` + // Enable creation of the log group. + Enable *bool `pulumi:"enable"` + // Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. + Existing *ExistingLogGroup `pulumi:"existing"` +} + +// OptionalLogGroupInput is an input type that accepts OptionalLogGroupArgs and OptionalLogGroupOutput values. +// You can construct a concrete instance of `OptionalLogGroupInput` via: +// +// OptionalLogGroupArgs{...} +type OptionalLogGroupInput interface { + pulumi.Input + + ToOptionalLogGroupOutput() OptionalLogGroupOutput + ToOptionalLogGroupOutputWithContext(context.Context) OptionalLogGroupOutput +} + +// Log group which is only created if enabled. +type OptionalLogGroupArgs struct { + // Arguments to use instead of the default values during creation. + Args *LogGroupArgs `pulumi:"args"` + // Enable creation of the log group. + Enable *bool `pulumi:"enable"` + // Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. + Existing *ExistingLogGroupArgs `pulumi:"existing"` +} + +func (OptionalLogGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OptionalLogGroup)(nil)).Elem() +} + +func (i OptionalLogGroupArgs) ToOptionalLogGroupOutput() OptionalLogGroupOutput { + return i.ToOptionalLogGroupOutputWithContext(context.Background()) +} + +func (i OptionalLogGroupArgs) ToOptionalLogGroupOutputWithContext(ctx context.Context) OptionalLogGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(OptionalLogGroupOutput) +} + +func (i OptionalLogGroupArgs) ToOutput(ctx context.Context) pulumix.Output[OptionalLogGroup] { + return pulumix.Output[OptionalLogGroup]{ + OutputState: i.ToOptionalLogGroupOutputWithContext(ctx).OutputState, + } +} + +func (i OptionalLogGroupArgs) ToOptionalLogGroupPtrOutput() OptionalLogGroupPtrOutput { + return i.ToOptionalLogGroupPtrOutputWithContext(context.Background()) +} + +func (i OptionalLogGroupArgs) ToOptionalLogGroupPtrOutputWithContext(ctx context.Context) OptionalLogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OptionalLogGroupOutput).ToOptionalLogGroupPtrOutputWithContext(ctx) +} + +// OptionalLogGroupPtrInput is an input type that accepts OptionalLogGroupArgs, OptionalLogGroupPtr and OptionalLogGroupPtrOutput values. +// You can construct a concrete instance of `OptionalLogGroupPtrInput` via: +// +// OptionalLogGroupArgs{...} +// +// or: +// +// nil +type OptionalLogGroupPtrInput interface { + pulumi.Input + + ToOptionalLogGroupPtrOutput() OptionalLogGroupPtrOutput + ToOptionalLogGroupPtrOutputWithContext(context.Context) OptionalLogGroupPtrOutput +} + +type optionalLogGroupPtrType OptionalLogGroupArgs + +func OptionalLogGroupPtr(v *OptionalLogGroupArgs) OptionalLogGroupPtrInput { + return (*optionalLogGroupPtrType)(v) +} + +func (*optionalLogGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OptionalLogGroup)(nil)).Elem() +} + +func (i *optionalLogGroupPtrType) ToOptionalLogGroupPtrOutput() OptionalLogGroupPtrOutput { + return i.ToOptionalLogGroupPtrOutputWithContext(context.Background()) +} + +func (i *optionalLogGroupPtrType) ToOptionalLogGroupPtrOutputWithContext(ctx context.Context) OptionalLogGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OptionalLogGroupPtrOutput) +} + +func (i *optionalLogGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*OptionalLogGroup] { + return pulumix.Output[*OptionalLogGroup]{ + OutputState: i.ToOptionalLogGroupPtrOutputWithContext(ctx).OutputState, + } +} + +// Log group which is only created if enabled. +type OptionalLogGroupOutput struct{ *pulumi.OutputState } + +func (OptionalLogGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OptionalLogGroup)(nil)).Elem() +} + +func (o OptionalLogGroupOutput) ToOptionalLogGroupOutput() OptionalLogGroupOutput { + return o +} + +func (o OptionalLogGroupOutput) ToOptionalLogGroupOutputWithContext(ctx context.Context) OptionalLogGroupOutput { + return o +} + +func (o OptionalLogGroupOutput) ToOptionalLogGroupPtrOutput() OptionalLogGroupPtrOutput { + return o.ToOptionalLogGroupPtrOutputWithContext(context.Background()) +} + +func (o OptionalLogGroupOutput) ToOptionalLogGroupPtrOutputWithContext(ctx context.Context) OptionalLogGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OptionalLogGroup) *OptionalLogGroup { + return &v + }).(OptionalLogGroupPtrOutput) +} + +func (o OptionalLogGroupOutput) ToOutput(ctx context.Context) pulumix.Output[OptionalLogGroup] { + return pulumix.Output[OptionalLogGroup]{ + OutputState: o.OutputState, + } +} + +// Arguments to use instead of the default values during creation. +func (o OptionalLogGroupOutput) Args() LogGroupPtrOutput { + return o.ApplyT(func(v OptionalLogGroup) *LogGroup { return v.Args }).(LogGroupPtrOutput) +} + +// Enable creation of the log group. +func (o OptionalLogGroupOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OptionalLogGroup) *bool { return v.Enable }).(pulumi.BoolPtrOutput) +} + +// Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. +func (o OptionalLogGroupOutput) Existing() ExistingLogGroupPtrOutput { + return o.ApplyT(func(v OptionalLogGroup) *ExistingLogGroup { return v.Existing }).(ExistingLogGroupPtrOutput) +} + +type OptionalLogGroupPtrOutput struct{ *pulumi.OutputState } + +func (OptionalLogGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OptionalLogGroup)(nil)).Elem() +} + +func (o OptionalLogGroupPtrOutput) ToOptionalLogGroupPtrOutput() OptionalLogGroupPtrOutput { + return o +} + +func (o OptionalLogGroupPtrOutput) ToOptionalLogGroupPtrOutputWithContext(ctx context.Context) OptionalLogGroupPtrOutput { + return o +} + +func (o OptionalLogGroupPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*OptionalLogGroup] { + return pulumix.Output[*OptionalLogGroup]{ + OutputState: o.OutputState, + } +} + +func (o OptionalLogGroupPtrOutput) Elem() OptionalLogGroupOutput { + return o.ApplyT(func(v *OptionalLogGroup) OptionalLogGroup { + if v != nil { + return *v + } + var ret OptionalLogGroup + return ret + }).(OptionalLogGroupOutput) +} + +// Arguments to use instead of the default values during creation. +func (o OptionalLogGroupPtrOutput) Args() LogGroupPtrOutput { + return o.ApplyT(func(v *OptionalLogGroup) *LogGroup { + if v == nil { + return nil + } + return v.Args + }).(LogGroupPtrOutput) +} + +// Enable creation of the log group. +func (o OptionalLogGroupPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OptionalLogGroup) *bool { + if v == nil { + return nil + } + return v.Enable + }).(pulumi.BoolPtrOutput) +} + +// Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. +func (o OptionalLogGroupPtrOutput) Existing() ExistingLogGroupPtrOutput { + return o.ApplyT(func(v *OptionalLogGroup) *ExistingLogGroup { + if v == nil { + return nil + } + return v.Existing + }).(ExistingLogGroupPtrOutput) +} + +// Bucket with default setup. +type RequiredBucket struct { + // Arguments to use instead of the default values during creation. + Args *Bucket `pulumi:"args"` + // Identity of an existing bucket to use. Cannot be used in combination with `args`. + Existing *ExistingBucket `pulumi:"existing"` +} + +// RequiredBucketInput is an input type that accepts RequiredBucketArgs and RequiredBucketOutput values. +// You can construct a concrete instance of `RequiredBucketInput` via: +// +// RequiredBucketArgs{...} +type RequiredBucketInput interface { + pulumi.Input + + ToRequiredBucketOutput() RequiredBucketOutput + ToRequiredBucketOutputWithContext(context.Context) RequiredBucketOutput +} + +// Bucket with default setup. +type RequiredBucketArgs struct { + // Arguments to use instead of the default values during creation. + Args *BucketArgs `pulumi:"args"` + // Identity of an existing bucket to use. Cannot be used in combination with `args`. + Existing *ExistingBucketArgs `pulumi:"existing"` +} + +func (RequiredBucketArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RequiredBucket)(nil)).Elem() +} + +func (i RequiredBucketArgs) ToRequiredBucketOutput() RequiredBucketOutput { + return i.ToRequiredBucketOutputWithContext(context.Background()) +} + +func (i RequiredBucketArgs) ToRequiredBucketOutputWithContext(ctx context.Context) RequiredBucketOutput { + return pulumi.ToOutputWithContext(ctx, i).(RequiredBucketOutput) +} + +func (i RequiredBucketArgs) ToOutput(ctx context.Context) pulumix.Output[RequiredBucket] { + return pulumix.Output[RequiredBucket]{ + OutputState: i.ToRequiredBucketOutputWithContext(ctx).OutputState, + } +} + +func (i RequiredBucketArgs) ToRequiredBucketPtrOutput() RequiredBucketPtrOutput { + return i.ToRequiredBucketPtrOutputWithContext(context.Background()) +} + +func (i RequiredBucketArgs) ToRequiredBucketPtrOutputWithContext(ctx context.Context) RequiredBucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RequiredBucketOutput).ToRequiredBucketPtrOutputWithContext(ctx) +} + +// RequiredBucketPtrInput is an input type that accepts RequiredBucketArgs, RequiredBucketPtr and RequiredBucketPtrOutput values. +// You can construct a concrete instance of `RequiredBucketPtrInput` via: +// +// RequiredBucketArgs{...} +// +// or: +// +// nil +type RequiredBucketPtrInput interface { + pulumi.Input + + ToRequiredBucketPtrOutput() RequiredBucketPtrOutput + ToRequiredBucketPtrOutputWithContext(context.Context) RequiredBucketPtrOutput +} + +type requiredBucketPtrType RequiredBucketArgs + +func RequiredBucketPtr(v *RequiredBucketArgs) RequiredBucketPtrInput { + return (*requiredBucketPtrType)(v) +} + +func (*requiredBucketPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RequiredBucket)(nil)).Elem() +} + +func (i *requiredBucketPtrType) ToRequiredBucketPtrOutput() RequiredBucketPtrOutput { + return i.ToRequiredBucketPtrOutputWithContext(context.Background()) +} + +func (i *requiredBucketPtrType) ToRequiredBucketPtrOutputWithContext(ctx context.Context) RequiredBucketPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RequiredBucketPtrOutput) +} + +func (i *requiredBucketPtrType) ToOutput(ctx context.Context) pulumix.Output[*RequiredBucket] { + return pulumix.Output[*RequiredBucket]{ + OutputState: i.ToRequiredBucketPtrOutputWithContext(ctx).OutputState, + } +} + +// Bucket with default setup. +type RequiredBucketOutput struct{ *pulumi.OutputState } + +func (RequiredBucketOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RequiredBucket)(nil)).Elem() +} + +func (o RequiredBucketOutput) ToRequiredBucketOutput() RequiredBucketOutput { + return o +} + +func (o RequiredBucketOutput) ToRequiredBucketOutputWithContext(ctx context.Context) RequiredBucketOutput { + return o +} + +func (o RequiredBucketOutput) ToRequiredBucketPtrOutput() RequiredBucketPtrOutput { + return o.ToRequiredBucketPtrOutputWithContext(context.Background()) +} + +func (o RequiredBucketOutput) ToRequiredBucketPtrOutputWithContext(ctx context.Context) RequiredBucketPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RequiredBucket) *RequiredBucket { + return &v + }).(RequiredBucketPtrOutput) +} + +func (o RequiredBucketOutput) ToOutput(ctx context.Context) pulumix.Output[RequiredBucket] { + return pulumix.Output[RequiredBucket]{ + OutputState: o.OutputState, + } +} + +// Arguments to use instead of the default values during creation. +func (o RequiredBucketOutput) Args() BucketPtrOutput { + return o.ApplyT(func(v RequiredBucket) *Bucket { return v.Args }).(BucketPtrOutput) +} + +// Identity of an existing bucket to use. Cannot be used in combination with `args`. +func (o RequiredBucketOutput) Existing() ExistingBucketPtrOutput { + return o.ApplyT(func(v RequiredBucket) *ExistingBucket { return v.Existing }).(ExistingBucketPtrOutput) +} + +type RequiredBucketPtrOutput struct{ *pulumi.OutputState } + +func (RequiredBucketPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RequiredBucket)(nil)).Elem() +} + +func (o RequiredBucketPtrOutput) ToRequiredBucketPtrOutput() RequiredBucketPtrOutput { + return o +} + +func (o RequiredBucketPtrOutput) ToRequiredBucketPtrOutputWithContext(ctx context.Context) RequiredBucketPtrOutput { + return o +} + +func (o RequiredBucketPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*RequiredBucket] { + return pulumix.Output[*RequiredBucket]{ + OutputState: o.OutputState, + } +} + +func (o RequiredBucketPtrOutput) Elem() RequiredBucketOutput { + return o.ApplyT(func(v *RequiredBucket) RequiredBucket { + if v != nil { + return *v + } + var ret RequiredBucket + return ret + }).(RequiredBucketOutput) +} + +// Arguments to use instead of the default values during creation. +func (o RequiredBucketPtrOutput) Args() BucketPtrOutput { + return o.ApplyT(func(v *RequiredBucket) *Bucket { + if v == nil { + return nil + } + return v.Args + }).(BucketPtrOutput) +} + +// Identity of an existing bucket to use. Cannot be used in combination with `args`. +func (o RequiredBucketPtrOutput) Existing() ExistingBucketPtrOutput { + return o.ApplyT(func(v *RequiredBucket) *ExistingBucket { + if v == nil { + return nil + } + return v.Existing + }).(ExistingBucketPtrOutput) +} + +// Log group with default setup. +type RequiredLogGroup struct { + // Arguments to use instead of the default values during creation. + Args *LogGroup `pulumi:"args"` + // Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. + Existing *ExistingLogGroup `pulumi:"existing"` +} + +// The set of arguments for constructing a Role resource and Policy attachments. +type RoleWithPolicy struct { + // Description of the role. + Description *string `pulumi:"description"` + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies *bool `pulumi:"forceDetachPolicies"` + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inline_policy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies []iam.RoleInlinePolicy `pulumi:"inlinePolicies"` + ManagedPolicyArns []string `pulumi:"managedPolicyArns"` + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration *int `pulumi:"maxSessionDuration"` + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name *string `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path *string `pulumi:"path"` + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary *string `pulumi:"permissionsBoundary"` + // ARNs of the policies to attach to the created role. + PolicyArns []string `pulumi:"policyArns"` + // Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` +} + +// RoleWithPolicyInput is an input type that accepts RoleWithPolicyArgs and RoleWithPolicyOutput values. +// You can construct a concrete instance of `RoleWithPolicyInput` via: +// +// RoleWithPolicyArgs{...} +type RoleWithPolicyInput interface { + pulumi.Input + + ToRoleWithPolicyOutput() RoleWithPolicyOutput + ToRoleWithPolicyOutputWithContext(context.Context) RoleWithPolicyOutput +} + +// The set of arguments for constructing a Role resource and Policy attachments. +type RoleWithPolicyArgs struct { + // Description of the role. + Description pulumi.StringPtrInput `pulumi:"description"` + // Whether to force detaching any policies the role has before destroying it. Defaults to `false`. + ForceDetachPolicies pulumi.BoolPtrInput `pulumi:"forceDetachPolicies"` + // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inline_policy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. + InlinePolicies iam.RoleInlinePolicyArrayInput `pulumi:"inlinePolicies"` + ManagedPolicyArns pulumi.StringArrayInput `pulumi:"managedPolicyArns"` + // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. + MaxSessionDuration pulumi.IntPtrInput `pulumi:"maxSessionDuration"` + // Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Name pulumi.StringPtrInput `pulumi:"name"` + // Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` + // Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. + Path pulumi.StringPtrInput `pulumi:"path"` + // ARN of the policy that is used to set the permissions boundary for the role. + PermissionsBoundary pulumi.StringPtrInput `pulumi:"permissionsBoundary"` + // ARNs of the policies to attach to the created role. + PolicyArns []string `pulumi:"policyArns"` + // Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` +} + +func (RoleWithPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RoleWithPolicy)(nil)).Elem() +} + +func (i RoleWithPolicyArgs) ToRoleWithPolicyOutput() RoleWithPolicyOutput { + return i.ToRoleWithPolicyOutputWithContext(context.Background()) +} + +func (i RoleWithPolicyArgs) ToRoleWithPolicyOutputWithContext(ctx context.Context) RoleWithPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleWithPolicyOutput) +} + +func (i RoleWithPolicyArgs) ToOutput(ctx context.Context) pulumix.Output[RoleWithPolicy] { + return pulumix.Output[RoleWithPolicy]{ + OutputState: i.ToRoleWithPolicyOutputWithContext(ctx).OutputState, + } +} + +func (i RoleWithPolicyArgs) ToRoleWithPolicyPtrOutput() RoleWithPolicyPtrOutput { + return i.ToRoleWithPolicyPtrOutputWithContext(context.Background()) +} + +func (i RoleWithPolicyArgs) ToRoleWithPolicyPtrOutputWithContext(ctx context.Context) RoleWithPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleWithPolicyOutput).ToRoleWithPolicyPtrOutputWithContext(ctx) +} + +// RoleWithPolicyPtrInput is an input type that accepts RoleWithPolicyArgs, RoleWithPolicyPtr and RoleWithPolicyPtrOutput values. +// You can construct a concrete instance of `RoleWithPolicyPtrInput` via: +// +// RoleWithPolicyArgs{...} +// +// or: +// +// nil +type RoleWithPolicyPtrInput interface { + pulumi.Input + + ToRoleWithPolicyPtrOutput() RoleWithPolicyPtrOutput + ToRoleWithPolicyPtrOutputWithContext(context.Context) RoleWithPolicyPtrOutput +} + +type roleWithPolicyPtrType RoleWithPolicyArgs + +func RoleWithPolicyPtr(v *RoleWithPolicyArgs) RoleWithPolicyPtrInput { + return (*roleWithPolicyPtrType)(v) +} + +func (*roleWithPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RoleWithPolicy)(nil)).Elem() +} + +func (i *roleWithPolicyPtrType) ToRoleWithPolicyPtrOutput() RoleWithPolicyPtrOutput { + return i.ToRoleWithPolicyPtrOutputWithContext(context.Background()) +} + +func (i *roleWithPolicyPtrType) ToRoleWithPolicyPtrOutputWithContext(ctx context.Context) RoleWithPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RoleWithPolicyPtrOutput) +} + +func (i *roleWithPolicyPtrType) ToOutput(ctx context.Context) pulumix.Output[*RoleWithPolicy] { + return pulumix.Output[*RoleWithPolicy]{ + OutputState: i.ToRoleWithPolicyPtrOutputWithContext(ctx).OutputState, + } +} + +// The set of arguments for constructing a Role resource and Policy attachments. +type RoleWithPolicyOutput struct{ *pulumi.OutputState } + +func (RoleWithPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RoleWithPolicy)(nil)).Elem() +} + +func (o RoleWithPolicyOutput) ToRoleWithPolicyOutput() RoleWithPolicyOutput { + return o +} + +func (o RoleWithPolicyOutput) ToRoleWithPolicyOutputWithContext(ctx context.Context) RoleWithPolicyOutput { + return o +} + +func (o RoleWithPolicyOutput) ToRoleWithPolicyPtrOutput() RoleWithPolicyPtrOutput { + return o.ToRoleWithPolicyPtrOutputWithContext(context.Background()) +} + +func (o RoleWithPolicyOutput) ToRoleWithPolicyPtrOutputWithContext(ctx context.Context) RoleWithPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RoleWithPolicy) *RoleWithPolicy { + return &v + }).(RoleWithPolicyPtrOutput) +} + +func (o RoleWithPolicyOutput) ToOutput(ctx context.Context) pulumix.Output[RoleWithPolicy] { + return pulumix.Output[RoleWithPolicy]{ + OutputState: o.OutputState, + } +} + +// Description of the role. +func (o RoleWithPolicyOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Whether to force detaching any policies the role has before destroying it. Defaults to `false`. +func (o RoleWithPolicyOutput) ForceDetachPolicies() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *bool { return v.ForceDetachPolicies }).(pulumi.BoolPtrOutput) +} + +// Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inline_policy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. +func (o RoleWithPolicyOutput) InlinePolicies() iam.RoleInlinePolicyArrayOutput { + return o.ApplyT(func(v RoleWithPolicy) []iam.RoleInlinePolicy { return v.InlinePolicies }).(iam.RoleInlinePolicyArrayOutput) +} + +func (o RoleWithPolicyOutput) ManagedPolicyArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleWithPolicy) []string { return v.ManagedPolicyArns }).(pulumi.StringArrayOutput) +} + +// Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. +func (o RoleWithPolicyOutput) MaxSessionDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *int { return v.MaxSessionDuration }).(pulumi.IntPtrOutput) +} + +// Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o RoleWithPolicyOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. +func (o RoleWithPolicyOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) +} + +// Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o RoleWithPolicyOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// ARN of the policy that is used to set the permissions boundary for the role. +func (o RoleWithPolicyOutput) PermissionsBoundary() pulumi.StringPtrOutput { + return o.ApplyT(func(v RoleWithPolicy) *string { return v.PermissionsBoundary }).(pulumi.StringPtrOutput) +} + +// ARNs of the policies to attach to the created role. +func (o RoleWithPolicyOutput) PolicyArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v RoleWithPolicy) []string { return v.PolicyArns }).(pulumi.StringArrayOutput) +} + +// Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o RoleWithPolicyOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v RoleWithPolicy) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +type RoleWithPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RoleWithPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RoleWithPolicy)(nil)).Elem() +} + +func (o RoleWithPolicyPtrOutput) ToRoleWithPolicyPtrOutput() RoleWithPolicyPtrOutput { + return o +} + +func (o RoleWithPolicyPtrOutput) ToRoleWithPolicyPtrOutputWithContext(ctx context.Context) RoleWithPolicyPtrOutput { + return o +} + +func (o RoleWithPolicyPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*RoleWithPolicy] { + return pulumix.Output[*RoleWithPolicy]{ + OutputState: o.OutputState, + } +} + +func (o RoleWithPolicyPtrOutput) Elem() RoleWithPolicyOutput { + return o.ApplyT(func(v *RoleWithPolicy) RoleWithPolicy { + if v != nil { + return *v + } + var ret RoleWithPolicy + return ret + }).(RoleWithPolicyOutput) +} + +// Description of the role. +func (o RoleWithPolicyPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +// Whether to force detaching any policies the role has before destroying it. Defaults to `false`. +func (o RoleWithPolicyPtrOutput) ForceDetachPolicies() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *bool { + if v == nil { + return nil + } + return v.ForceDetachPolicies + }).(pulumi.BoolPtrOutput) +} + +// Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inline_policy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`. +func (o RoleWithPolicyPtrOutput) InlinePolicies() iam.RoleInlinePolicyArrayOutput { + return o.ApplyT(func(v *RoleWithPolicy) []iam.RoleInlinePolicy { + if v == nil { + return nil + } + return v.InlinePolicies + }).(iam.RoleInlinePolicyArrayOutput) +} + +func (o RoleWithPolicyPtrOutput) ManagedPolicyArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RoleWithPolicy) []string { + if v == nil { + return nil + } + return v.ManagedPolicyArns + }).(pulumi.StringArrayOutput) +} + +// Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. +func (o RoleWithPolicyPtrOutput) MaxSessionDuration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *int { + if v == nil { + return nil + } + return v.MaxSessionDuration + }).(pulumi.IntPtrOutput) +} + +// Friendly name of the role. If omitted, the provider will assign a random, unique name. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o RoleWithPolicyPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Creates a unique friendly name beginning with the specified prefix. Conflicts with `name`. +func (o RoleWithPolicyPtrOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *string { + if v == nil { + return nil + } + return v.NamePrefix + }).(pulumi.StringPtrOutput) +} + +// Path to the role. See [IAM Identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) for more information. +func (o RoleWithPolicyPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// ARN of the policy that is used to set the permissions boundary for the role. +func (o RoleWithPolicyPtrOutput) PermissionsBoundary() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RoleWithPolicy) *string { + if v == nil { + return nil + } + return v.PermissionsBoundary + }).(pulumi.StringPtrOutput) +} + +// ARNs of the policies to attach to the created role. +func (o RoleWithPolicyPtrOutput) PolicyArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RoleWithPolicy) []string { + if v == nil { + return nil + } + return v.PolicyArns + }).(pulumi.StringArrayOutput) +} + +// Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o RoleWithPolicyPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *RoleWithPolicy) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// The set of arguments for constructing a Security Group resource. +type SecurityGroup struct { + // Security group description. Defaults to `Managed by Pulumi`. Cannot be `""`. **NOTE**: This field maps to the AWS `GroupDescription` attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use `tags`. + Description *string `pulumi:"description"` + // Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. + Egress []ec2.SecurityGroupEgress `pulumi:"egress"` + // Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. + Ingress []ec2.SecurityGroupIngress `pulumi:"ingress"` + // Name of the security group. If omitted, the provider will assign a random, unique name. + Name *string `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix *string `pulumi:"namePrefix"` + // Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. + RevokeRulesOnDelete *bool `pulumi:"revokeRulesOnDelete"` + // Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // VPC ID. Defaults to the region's default VPC. + VpcId *string `pulumi:"vpcId"` +} + +// Defaults sets the appropriate defaults for SecurityGroup +func (val *SecurityGroup) Defaults() *SecurityGroup { + if val == nil { + return nil + } + tmp := *val + if tmp.Description == nil { + description_ := "Managed by Pulumi" + tmp.Description = &description_ + } + return &tmp +} + +// SecurityGroupInput is an input type that accepts SecurityGroupArgs and SecurityGroupOutput values. +// You can construct a concrete instance of `SecurityGroupInput` via: +// +// SecurityGroupArgs{...} +type SecurityGroupInput interface { + pulumi.Input + + ToSecurityGroupOutput() SecurityGroupOutput + ToSecurityGroupOutputWithContext(context.Context) SecurityGroupOutput +} + +// The set of arguments for constructing a Security Group resource. +type SecurityGroupArgs struct { + // Security group description. Defaults to `Managed by Pulumi`. Cannot be `""`. **NOTE**: This field maps to the AWS `GroupDescription` attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use `tags`. + Description pulumi.StringPtrInput `pulumi:"description"` + // Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. + Egress ec2.SecurityGroupEgressArrayInput `pulumi:"egress"` + // Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. + Ingress ec2.SecurityGroupIngressArrayInput `pulumi:"ingress"` + // Name of the security group. If omitted, the provider will assign a random, unique name. + Name pulumi.StringPtrInput `pulumi:"name"` + // Creates a unique name beginning with the specified prefix. Conflicts with `name`. + NamePrefix pulumi.StringPtrInput `pulumi:"namePrefix"` + // Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. + RevokeRulesOnDelete pulumi.BoolPtrInput `pulumi:"revokeRulesOnDelete"` + // Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` + // VPC ID. Defaults to the region's default VPC. + VpcId pulumi.StringPtrInput `pulumi:"vpcId"` +} + +// Defaults sets the appropriate defaults for SecurityGroupArgs +func (val *SecurityGroupArgs) Defaults() *SecurityGroupArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.Description == nil { + tmp.Description = pulumi.StringPtr("Managed by Pulumi") + } + return &tmp +} +func (SecurityGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroup)(nil)).Elem() +} + +func (i SecurityGroupArgs) ToSecurityGroupOutput() SecurityGroupOutput { + return i.ToSecurityGroupOutputWithContext(context.Background()) +} + +func (i SecurityGroupArgs) ToSecurityGroupOutputWithContext(ctx context.Context) SecurityGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupOutput) +} + +func (i SecurityGroupArgs) ToOutput(ctx context.Context) pulumix.Output[SecurityGroup] { + return pulumix.Output[SecurityGroup]{ + OutputState: i.ToSecurityGroupOutputWithContext(ctx).OutputState, + } +} + +func (i SecurityGroupArgs) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput { + return i.ToSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (i SecurityGroupArgs) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupOutput).ToSecurityGroupPtrOutputWithContext(ctx) +} + +// SecurityGroupPtrInput is an input type that accepts SecurityGroupArgs, SecurityGroupPtr and SecurityGroupPtrOutput values. +// You can construct a concrete instance of `SecurityGroupPtrInput` via: +// +// SecurityGroupArgs{...} +// +// or: +// +// nil +type SecurityGroupPtrInput interface { + pulumi.Input + + ToSecurityGroupPtrOutput() SecurityGroupPtrOutput + ToSecurityGroupPtrOutputWithContext(context.Context) SecurityGroupPtrOutput +} + +type securityGroupPtrType SecurityGroupArgs + +func SecurityGroupPtr(v *SecurityGroupArgs) SecurityGroupPtrInput { + return (*securityGroupPtrType)(v) +} + +func (*securityGroupPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroup)(nil)).Elem() +} + +func (i *securityGroupPtrType) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput { + return i.ToSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (i *securityGroupPtrType) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityGroupPtrOutput) +} + +func (i *securityGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*SecurityGroup] { + return pulumix.Output[*SecurityGroup]{ + OutputState: i.ToSecurityGroupPtrOutputWithContext(ctx).OutputState, + } +} + +// The set of arguments for constructing a Security Group resource. +type SecurityGroupOutput struct{ *pulumi.OutputState } + +func (SecurityGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityGroup)(nil)).Elem() +} + +func (o SecurityGroupOutput) ToSecurityGroupOutput() SecurityGroupOutput { + return o +} + +func (o SecurityGroupOutput) ToSecurityGroupOutputWithContext(ctx context.Context) SecurityGroupOutput { + return o +} + +func (o SecurityGroupOutput) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput { + return o.ToSecurityGroupPtrOutputWithContext(context.Background()) +} + +func (o SecurityGroupOutput) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityGroup) *SecurityGroup { + return &v + }).(SecurityGroupPtrOutput) +} + +func (o SecurityGroupOutput) ToOutput(ctx context.Context) pulumix.Output[SecurityGroup] { + return pulumix.Output[SecurityGroup]{ + OutputState: o.OutputState, + } +} + +// Security group description. Defaults to `Managed by Pulumi`. Cannot be `""`. **NOTE**: This field maps to the AWS `GroupDescription` attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use `tags`. +func (o SecurityGroupOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityGroup) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +func (o SecurityGroupOutput) Egress() ec2.SecurityGroupEgressArrayOutput { + return o.ApplyT(func(v SecurityGroup) []ec2.SecurityGroupEgress { return v.Egress }).(ec2.SecurityGroupEgressArrayOutput) +} + +// Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +func (o SecurityGroupOutput) Ingress() ec2.SecurityGroupIngressArrayOutput { + return o.ApplyT(func(v SecurityGroup) []ec2.SecurityGroupIngress { return v.Ingress }).(ec2.SecurityGroupIngressArrayOutput) +} + +// Name of the security group. If omitted, the provider will assign a random, unique name. +func (o SecurityGroupOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityGroup) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o SecurityGroupOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityGroup) *string { return v.NamePrefix }).(pulumi.StringPtrOutput) +} + +// Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. +func (o SecurityGroupOutput) RevokeRulesOnDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SecurityGroup) *bool { return v.RevokeRulesOnDelete }).(pulumi.BoolPtrOutput) +} + +// Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o SecurityGroupOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v SecurityGroup) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// VPC ID. Defaults to the region's default VPC. +func (o SecurityGroupOutput) VpcId() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityGroup) *string { return v.VpcId }).(pulumi.StringPtrOutput) +} + +type SecurityGroupPtrOutput struct{ *pulumi.OutputState } + +func (SecurityGroupPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityGroup)(nil)).Elem() +} + +func (o SecurityGroupPtrOutput) ToSecurityGroupPtrOutput() SecurityGroupPtrOutput { + return o +} + +func (o SecurityGroupPtrOutput) ToSecurityGroupPtrOutputWithContext(ctx context.Context) SecurityGroupPtrOutput { + return o +} + +func (o SecurityGroupPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*SecurityGroup] { + return pulumix.Output[*SecurityGroup]{ + OutputState: o.OutputState, + } +} + +func (o SecurityGroupPtrOutput) Elem() SecurityGroupOutput { + return o.ApplyT(func(v *SecurityGroup) SecurityGroup { + if v != nil { + return *v + } + var ret SecurityGroup + return ret + }).(SecurityGroupOutput) +} + +// Security group description. Defaults to `Managed by Pulumi`. Cannot be `""`. **NOTE**: This field maps to the AWS `GroupDescription` attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use `tags`. +func (o SecurityGroupPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityGroup) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) +} + +// Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +func (o SecurityGroupPtrOutput) Egress() ec2.SecurityGroupEgressArrayOutput { + return o.ApplyT(func(v *SecurityGroup) []ec2.SecurityGroupEgress { + if v == nil { + return nil + } + return v.Egress + }).(ec2.SecurityGroupEgressArrayOutput) +} + +// Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +func (o SecurityGroupPtrOutput) Ingress() ec2.SecurityGroupIngressArrayOutput { + return o.ApplyT(func(v *SecurityGroup) []ec2.SecurityGroupIngress { + if v == nil { + return nil + } + return v.Ingress + }).(ec2.SecurityGroupIngressArrayOutput) +} + +// Name of the security group. If omitted, the provider will assign a random, unique name. +func (o SecurityGroupPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityGroup) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// Creates a unique name beginning with the specified prefix. Conflicts with `name`. +func (o SecurityGroupPtrOutput) NamePrefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityGroup) *string { + if v == nil { + return nil + } + return v.NamePrefix + }).(pulumi.StringPtrOutput) +} + +// Instruct the provider to revoke all of the Security Groups attached ingress and egress rules before deleting the rule itself. This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default `false`. +func (o SecurityGroupPtrOutput) RevokeRulesOnDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SecurityGroup) *bool { + if v == nil { + return nil + } + return v.RevokeRulesOnDelete + }).(pulumi.BoolPtrOutput) +} + +// Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o SecurityGroupPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *SecurityGroup) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// VPC ID. Defaults to the region's default VPC. +func (o SecurityGroupPtrOutput) VpcId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityGroup) *string { + if v == nil { + return nil + } + return v.VpcId + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BucketInput)(nil)).Elem(), BucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BucketPtrInput)(nil)).Elem(), BucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultLogGroupInput)(nil)).Elem(), DefaultLogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultLogGroupPtrInput)(nil)).Elem(), DefaultLogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRoleWithPolicyInput)(nil)).Elem(), DefaultRoleWithPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultRoleWithPolicyPtrInput)(nil)).Elem(), DefaultRoleWithPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultSecurityGroupInput)(nil)).Elem(), DefaultSecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DefaultSecurityGroupPtrInput)(nil)).Elem(), DefaultSecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ExistingBucketInput)(nil)).Elem(), ExistingBucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ExistingBucketPtrInput)(nil)).Elem(), ExistingBucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ExistingLogGroupInput)(nil)).Elem(), ExistingLogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ExistingLogGroupPtrInput)(nil)).Elem(), ExistingLogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogGroupInput)(nil)).Elem(), LogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LogGroupPtrInput)(nil)).Elem(), LogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OptionalLogGroupInput)(nil)).Elem(), OptionalLogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OptionalLogGroupPtrInput)(nil)).Elem(), OptionalLogGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RequiredBucketInput)(nil)).Elem(), RequiredBucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RequiredBucketPtrInput)(nil)).Elem(), RequiredBucketArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleWithPolicyInput)(nil)).Elem(), RoleWithPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RoleWithPolicyPtrInput)(nil)).Elem(), RoleWithPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityGroupInput)(nil)).Elem(), SecurityGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityGroupPtrInput)(nil)).Elem(), SecurityGroupArgs{}) + pulumi.RegisterOutputType(BucketOutput{}) + pulumi.RegisterOutputType(BucketPtrOutput{}) + pulumi.RegisterOutputType(DefaultLogGroupOutput{}) + pulumi.RegisterOutputType(DefaultLogGroupPtrOutput{}) + pulumi.RegisterOutputType(DefaultRoleWithPolicyOutput{}) + pulumi.RegisterOutputType(DefaultRoleWithPolicyPtrOutput{}) + pulumi.RegisterOutputType(DefaultSecurityGroupOutput{}) + pulumi.RegisterOutputType(DefaultSecurityGroupPtrOutput{}) + pulumi.RegisterOutputType(ExistingBucketOutput{}) + pulumi.RegisterOutputType(ExistingBucketPtrOutput{}) + pulumi.RegisterOutputType(ExistingLogGroupOutput{}) + pulumi.RegisterOutputType(ExistingLogGroupPtrOutput{}) + pulumi.RegisterOutputType(LogGroupOutput{}) + pulumi.RegisterOutputType(LogGroupPtrOutput{}) + pulumi.RegisterOutputType(OptionalLogGroupOutput{}) + pulumi.RegisterOutputType(OptionalLogGroupPtrOutput{}) + pulumi.RegisterOutputType(RequiredBucketOutput{}) + pulumi.RegisterOutputType(RequiredBucketPtrOutput{}) + pulumi.RegisterOutputType(RoleWithPolicyOutput{}) + pulumi.RegisterOutputType(RoleWithPolicyPtrOutput{}) + pulumi.RegisterOutputType(SecurityGroupOutput{}) + pulumi.RegisterOutputType(SecurityGroupPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2service.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2service.go new file mode 100644 index 000000000..93f21e2c1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2service.go @@ -0,0 +1,342 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Create an ECS Service resource for EC2 with the given unique name, arguments, and options. +// Creates Task definition if `taskDefinitionArgs` is specified. +type EC2Service struct { + pulumi.ResourceState + + // Underlying ECS Service resource + Service ecs.ServiceOutput `pulumi:"service"` + // Underlying EC2 Task definition component resource if created from args + TaskDefinition ecs.TaskDefinitionOutput `pulumi:"taskDefinition"` +} + +// NewEC2Service registers a new resource with the given unique name, arguments, and options. +func NewEC2Service(ctx *pulumi.Context, + name string, args *EC2ServiceArgs, opts ...pulumi.ResourceOption) (*EC2Service, error) { + if args == nil { + args = &EC2ServiceArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource EC2Service + err := ctx.RegisterRemoteComponentResource("awsx:ecs:EC2Service", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +type ec2serviceArgs struct { + // Information about the CloudWatch alarms. See below. + Alarms *ecs.ServiceAlarms `pulumi:"alarms"` + // ARN of an ECS cluster. + Cluster *string `pulumi:"cluster"` + // If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + ContinueBeforeSteadyState *bool `pulumi:"continueBeforeSteadyState"` + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker *ecs.ServiceDeploymentCircuitBreaker `pulumi:"deploymentCircuitBreaker"` + // Configuration block for deployment controller configuration. See below. + DeploymentController *ecs.ServiceDeploymentController `pulumi:"deploymentController"` + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent *int `pulumi:"deploymentMaximumPercent"` + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent *int `pulumi:"deploymentMinimumHealthyPercent"` + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount *int `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `ordered_placement_strategy` and `placement_constraints` updates. + ForceNewDeployment *bool `pulumi:"forceNewDeployment"` + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds *int `pulumi:"healthCheckGracePeriodSeconds"` + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole *string `pulumi:"iamRole"` + // Configuration block for load balancers. See below. + LoadBalancers []ecs.ServiceLoadBalancer `pulumi:"loadBalancers"` + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration *ecs.ServiceNetworkConfiguration `pulumi:"networkConfiguration"` + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. The maximum number of `ordered_placement_strategy` blocks is `5`. See below. + OrderedPlacementStrategies []ecs.ServiceOrderedPlacementStrategy `pulumi:"orderedPlacementStrategies"` + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. + PlacementConstraints []ecs.ServicePlacementConstraint `pulumi:"placementConstraints"` + // Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags *string `pulumi:"propagateTags"` + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy *string `pulumi:"schedulingStrategy"` + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration *ecs.ServiceServiceConnectConfiguration `pulumi:"serviceConnectConfiguration"` + // Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. + ServiceRegistries *ecs.ServiceServiceRegistries `pulumi:"serviceRegistries"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinition *string `pulumi:"taskDefinition"` + // The args of task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinitionArgs *EC2ServiceTaskDefinition `pulumi:"taskDefinitionArgs"` + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers map[string]string `pulumi:"triggers"` +} + +// The set of arguments for constructing a EC2Service resource. +type EC2ServiceArgs struct { + // Information about the CloudWatch alarms. See below. + Alarms ecs.ServiceAlarmsPtrInput + // ARN of an ECS cluster. + Cluster pulumi.StringPtrInput + // If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + ContinueBeforeSteadyState pulumi.BoolPtrInput + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker ecs.ServiceDeploymentCircuitBreakerPtrInput + // Configuration block for deployment controller configuration. See below. + DeploymentController ecs.ServiceDeploymentControllerPtrInput + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent pulumi.IntPtrInput + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent pulumi.IntPtrInput + // Number of instances of the task definition to place and keep running. Defaults to 0. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount pulumi.IntPtrInput + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags pulumi.BoolPtrInput + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand pulumi.BoolPtrInput + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `ordered_placement_strategy` and `placement_constraints` updates. + ForceNewDeployment pulumi.BoolPtrInput + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds pulumi.IntPtrInput + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole pulumi.StringPtrInput + // Configuration block for load balancers. See below. + LoadBalancers ecs.ServiceLoadBalancerArrayInput + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration ecs.ServiceNetworkConfigurationPtrInput + // Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. The maximum number of `ordered_placement_strategy` blocks is `5`. See below. + OrderedPlacementStrategies ecs.ServiceOrderedPlacementStrategyArrayInput + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. + PlacementConstraints ecs.ServicePlacementConstraintArrayInput + // Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags pulumi.StringPtrInput + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy pulumi.StringPtrInput + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration ecs.ServiceServiceConnectConfigurationPtrInput + // Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. + ServiceRegistries ecs.ServiceServiceRegistriesPtrInput + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinition pulumi.StringPtrInput + // The args of task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinitionArgs *EC2ServiceTaskDefinitionArgs + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers pulumi.StringMapInput +} + +func (EC2ServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ec2serviceArgs)(nil)).Elem() +} + +type EC2ServiceInput interface { + pulumi.Input + + ToEC2ServiceOutput() EC2ServiceOutput + ToEC2ServiceOutputWithContext(ctx context.Context) EC2ServiceOutput +} + +func (*EC2Service) ElementType() reflect.Type { + return reflect.TypeOf((**EC2Service)(nil)).Elem() +} + +func (i *EC2Service) ToEC2ServiceOutput() EC2ServiceOutput { + return i.ToEC2ServiceOutputWithContext(context.Background()) +} + +func (i *EC2Service) ToEC2ServiceOutputWithContext(ctx context.Context) EC2ServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2ServiceOutput) +} + +func (i *EC2Service) ToOutput(ctx context.Context) pulumix.Output[*EC2Service] { + return pulumix.Output[*EC2Service]{ + OutputState: i.ToEC2ServiceOutputWithContext(ctx).OutputState, + } +} + +// EC2ServiceArrayInput is an input type that accepts EC2ServiceArray and EC2ServiceArrayOutput values. +// You can construct a concrete instance of `EC2ServiceArrayInput` via: +// +// EC2ServiceArray{ EC2ServiceArgs{...} } +type EC2ServiceArrayInput interface { + pulumi.Input + + ToEC2ServiceArrayOutput() EC2ServiceArrayOutput + ToEC2ServiceArrayOutputWithContext(context.Context) EC2ServiceArrayOutput +} + +type EC2ServiceArray []EC2ServiceInput + +func (EC2ServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EC2Service)(nil)).Elem() +} + +func (i EC2ServiceArray) ToEC2ServiceArrayOutput() EC2ServiceArrayOutput { + return i.ToEC2ServiceArrayOutputWithContext(context.Background()) +} + +func (i EC2ServiceArray) ToEC2ServiceArrayOutputWithContext(ctx context.Context) EC2ServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2ServiceArrayOutput) +} + +func (i EC2ServiceArray) ToOutput(ctx context.Context) pulumix.Output[[]*EC2Service] { + return pulumix.Output[[]*EC2Service]{ + OutputState: i.ToEC2ServiceArrayOutputWithContext(ctx).OutputState, + } +} + +// EC2ServiceMapInput is an input type that accepts EC2ServiceMap and EC2ServiceMapOutput values. +// You can construct a concrete instance of `EC2ServiceMapInput` via: +// +// EC2ServiceMap{ "key": EC2ServiceArgs{...} } +type EC2ServiceMapInput interface { + pulumi.Input + + ToEC2ServiceMapOutput() EC2ServiceMapOutput + ToEC2ServiceMapOutputWithContext(context.Context) EC2ServiceMapOutput +} + +type EC2ServiceMap map[string]EC2ServiceInput + +func (EC2ServiceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EC2Service)(nil)).Elem() +} + +func (i EC2ServiceMap) ToEC2ServiceMapOutput() EC2ServiceMapOutput { + return i.ToEC2ServiceMapOutputWithContext(context.Background()) +} + +func (i EC2ServiceMap) ToEC2ServiceMapOutputWithContext(ctx context.Context) EC2ServiceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2ServiceMapOutput) +} + +func (i EC2ServiceMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*EC2Service] { + return pulumix.Output[map[string]*EC2Service]{ + OutputState: i.ToEC2ServiceMapOutputWithContext(ctx).OutputState, + } +} + +type EC2ServiceOutput struct{ *pulumi.OutputState } + +func (EC2ServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EC2Service)(nil)).Elem() +} + +func (o EC2ServiceOutput) ToEC2ServiceOutput() EC2ServiceOutput { + return o +} + +func (o EC2ServiceOutput) ToEC2ServiceOutputWithContext(ctx context.Context) EC2ServiceOutput { + return o +} + +func (o EC2ServiceOutput) ToOutput(ctx context.Context) pulumix.Output[*EC2Service] { + return pulumix.Output[*EC2Service]{ + OutputState: o.OutputState, + } +} + +// Underlying ECS Service resource +func (o EC2ServiceOutput) Service() ecs.ServiceOutput { + return o.ApplyT(func(v *EC2Service) ecs.ServiceOutput { return v.Service }).(ecs.ServiceOutput) +} + +// Underlying EC2 Task definition component resource if created from args +func (o EC2ServiceOutput) TaskDefinition() ecs.TaskDefinitionOutput { + return o.ApplyT(func(v *EC2Service) ecs.TaskDefinitionOutput { return v.TaskDefinition }).(ecs.TaskDefinitionOutput) +} + +type EC2ServiceArrayOutput struct{ *pulumi.OutputState } + +func (EC2ServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EC2Service)(nil)).Elem() +} + +func (o EC2ServiceArrayOutput) ToEC2ServiceArrayOutput() EC2ServiceArrayOutput { + return o +} + +func (o EC2ServiceArrayOutput) ToEC2ServiceArrayOutputWithContext(ctx context.Context) EC2ServiceArrayOutput { + return o +} + +func (o EC2ServiceArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*EC2Service] { + return pulumix.Output[[]*EC2Service]{ + OutputState: o.OutputState, + } +} + +func (o EC2ServiceArrayOutput) Index(i pulumi.IntInput) EC2ServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EC2Service { + return vs[0].([]*EC2Service)[vs[1].(int)] + }).(EC2ServiceOutput) +} + +type EC2ServiceMapOutput struct{ *pulumi.OutputState } + +func (EC2ServiceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EC2Service)(nil)).Elem() +} + +func (o EC2ServiceMapOutput) ToEC2ServiceMapOutput() EC2ServiceMapOutput { + return o +} + +func (o EC2ServiceMapOutput) ToEC2ServiceMapOutputWithContext(ctx context.Context) EC2ServiceMapOutput { + return o +} + +func (o EC2ServiceMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*EC2Service] { + return pulumix.Output[map[string]*EC2Service]{ + OutputState: o.OutputState, + } +} + +func (o EC2ServiceMapOutput) MapIndex(k pulumi.StringInput) EC2ServiceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EC2Service { + return vs[0].(map[string]*EC2Service)[vs[1].(string)] + }).(EC2ServiceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EC2ServiceInput)(nil)).Elem(), &EC2Service{}) + pulumi.RegisterInputType(reflect.TypeOf((*EC2ServiceArrayInput)(nil)).Elem(), EC2ServiceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EC2ServiceMapInput)(nil)).Elem(), EC2ServiceMap{}) + pulumi.RegisterOutputType(EC2ServiceOutput{}) + pulumi.RegisterOutputType(EC2ServiceArrayOutput{}) + pulumi.RegisterOutputType(EC2ServiceMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2taskDefinition.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2taskDefinition.go new file mode 100644 index 000000000..9ecfe9021 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/ec2taskDefinition.go @@ -0,0 +1,349 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type EC2TaskDefinition struct { + pulumi.ResourceState + + // Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRole iam.RoleOutput `pulumi:"executionRole"` + // Computed load balancers from target groups specified of container port mappings. + LoadBalancers ecs.ServiceLoadBalancerArrayOutput `pulumi:"loadBalancers"` + // Auto-created Log Group resource for use by containers. + LogGroup cloudwatch.LogGroupOutput `pulumi:"logGroup"` + // Underlying ECS Task Definition resource + TaskDefinition ecs.TaskDefinitionOutput `pulumi:"taskDefinition"` + // Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRole iam.RoleOutput `pulumi:"taskRole"` +} + +// NewEC2TaskDefinition registers a new resource with the given unique name, arguments, and options. +func NewEC2TaskDefinition(ctx *pulumi.Context, + name string, args *EC2TaskDefinitionArgs, opts ...pulumi.ResourceOption) (*EC2TaskDefinition, error) { + if args == nil { + args = &EC2TaskDefinitionArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource EC2TaskDefinition + err := ctx.RegisterRemoteComponentResource("awsx:ecs:EC2TaskDefinition", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +type ec2taskDefinitionArgs struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinition `pulumi:"container"` + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu *string `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` + // An optional unique name for your task definition. If not specified, then a default will be created. + Family *string `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode *string `pulumi:"ipcMode"` + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroup `pulumi:"logGroup"` + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory *string `pulumi:"memory"` + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode *string `pulumi:"networkMode"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode *string `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy *bool `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicy `pulumi:"taskRole"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` +} + +// The set of arguments for constructing a EC2TaskDefinition resource. +type EC2TaskDefinitionArgs struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinitionArgs + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinitionArgs + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu pulumi.StringPtrInput + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicyArgs + // An optional unique name for your task definition. If not specified, then a default will be created. + Family pulumi.StringPtrInput + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrInput + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroupArgs + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory pulumi.StringPtrInput + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode pulumi.StringPtrInput + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrInput + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrInput + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicyArgs + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes ecs.TaskDefinitionVolumeArrayInput +} + +func (EC2TaskDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ec2taskDefinitionArgs)(nil)).Elem() +} + +type EC2TaskDefinitionInput interface { + pulumi.Input + + ToEC2TaskDefinitionOutput() EC2TaskDefinitionOutput + ToEC2TaskDefinitionOutputWithContext(ctx context.Context) EC2TaskDefinitionOutput +} + +func (*EC2TaskDefinition) ElementType() reflect.Type { + return reflect.TypeOf((**EC2TaskDefinition)(nil)).Elem() +} + +func (i *EC2TaskDefinition) ToEC2TaskDefinitionOutput() EC2TaskDefinitionOutput { + return i.ToEC2TaskDefinitionOutputWithContext(context.Background()) +} + +func (i *EC2TaskDefinition) ToEC2TaskDefinitionOutputWithContext(ctx context.Context) EC2TaskDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2TaskDefinitionOutput) +} + +func (i *EC2TaskDefinition) ToOutput(ctx context.Context) pulumix.Output[*EC2TaskDefinition] { + return pulumix.Output[*EC2TaskDefinition]{ + OutputState: i.ToEC2TaskDefinitionOutputWithContext(ctx).OutputState, + } +} + +// EC2TaskDefinitionArrayInput is an input type that accepts EC2TaskDefinitionArray and EC2TaskDefinitionArrayOutput values. +// You can construct a concrete instance of `EC2TaskDefinitionArrayInput` via: +// +// EC2TaskDefinitionArray{ EC2TaskDefinitionArgs{...} } +type EC2TaskDefinitionArrayInput interface { + pulumi.Input + + ToEC2TaskDefinitionArrayOutput() EC2TaskDefinitionArrayOutput + ToEC2TaskDefinitionArrayOutputWithContext(context.Context) EC2TaskDefinitionArrayOutput +} + +type EC2TaskDefinitionArray []EC2TaskDefinitionInput + +func (EC2TaskDefinitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EC2TaskDefinition)(nil)).Elem() +} + +func (i EC2TaskDefinitionArray) ToEC2TaskDefinitionArrayOutput() EC2TaskDefinitionArrayOutput { + return i.ToEC2TaskDefinitionArrayOutputWithContext(context.Background()) +} + +func (i EC2TaskDefinitionArray) ToEC2TaskDefinitionArrayOutputWithContext(ctx context.Context) EC2TaskDefinitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2TaskDefinitionArrayOutput) +} + +func (i EC2TaskDefinitionArray) ToOutput(ctx context.Context) pulumix.Output[[]*EC2TaskDefinition] { + return pulumix.Output[[]*EC2TaskDefinition]{ + OutputState: i.ToEC2TaskDefinitionArrayOutputWithContext(ctx).OutputState, + } +} + +// EC2TaskDefinitionMapInput is an input type that accepts EC2TaskDefinitionMap and EC2TaskDefinitionMapOutput values. +// You can construct a concrete instance of `EC2TaskDefinitionMapInput` via: +// +// EC2TaskDefinitionMap{ "key": EC2TaskDefinitionArgs{...} } +type EC2TaskDefinitionMapInput interface { + pulumi.Input + + ToEC2TaskDefinitionMapOutput() EC2TaskDefinitionMapOutput + ToEC2TaskDefinitionMapOutputWithContext(context.Context) EC2TaskDefinitionMapOutput +} + +type EC2TaskDefinitionMap map[string]EC2TaskDefinitionInput + +func (EC2TaskDefinitionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EC2TaskDefinition)(nil)).Elem() +} + +func (i EC2TaskDefinitionMap) ToEC2TaskDefinitionMapOutput() EC2TaskDefinitionMapOutput { + return i.ToEC2TaskDefinitionMapOutputWithContext(context.Background()) +} + +func (i EC2TaskDefinitionMap) ToEC2TaskDefinitionMapOutputWithContext(ctx context.Context) EC2TaskDefinitionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2TaskDefinitionMapOutput) +} + +func (i EC2TaskDefinitionMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*EC2TaskDefinition] { + return pulumix.Output[map[string]*EC2TaskDefinition]{ + OutputState: i.ToEC2TaskDefinitionMapOutputWithContext(ctx).OutputState, + } +} + +type EC2TaskDefinitionOutput struct{ *pulumi.OutputState } + +func (EC2TaskDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EC2TaskDefinition)(nil)).Elem() +} + +func (o EC2TaskDefinitionOutput) ToEC2TaskDefinitionOutput() EC2TaskDefinitionOutput { + return o +} + +func (o EC2TaskDefinitionOutput) ToEC2TaskDefinitionOutputWithContext(ctx context.Context) EC2TaskDefinitionOutput { + return o +} + +func (o EC2TaskDefinitionOutput) ToOutput(ctx context.Context) pulumix.Output[*EC2TaskDefinition] { + return pulumix.Output[*EC2TaskDefinition]{ + OutputState: o.OutputState, + } +} + +// Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume. +func (o EC2TaskDefinitionOutput) ExecutionRole() iam.RoleOutput { + return o.ApplyT(func(v *EC2TaskDefinition) iam.RoleOutput { return v.ExecutionRole }).(iam.RoleOutput) +} + +// Computed load balancers from target groups specified of container port mappings. +func (o EC2TaskDefinitionOutput) LoadBalancers() ecs.ServiceLoadBalancerArrayOutput { + return o.ApplyT(func(v *EC2TaskDefinition) ecs.ServiceLoadBalancerArrayOutput { return v.LoadBalancers }).(ecs.ServiceLoadBalancerArrayOutput) +} + +// Auto-created Log Group resource for use by containers. +func (o EC2TaskDefinitionOutput) LogGroup() cloudwatch.LogGroupOutput { + return o.ApplyT(func(v *EC2TaskDefinition) cloudwatch.LogGroupOutput { return v.LogGroup }).(cloudwatch.LogGroupOutput) +} + +// Underlying ECS Task Definition resource +func (o EC2TaskDefinitionOutput) TaskDefinition() ecs.TaskDefinitionOutput { + return o.ApplyT(func(v *EC2TaskDefinition) ecs.TaskDefinitionOutput { return v.TaskDefinition }).(ecs.TaskDefinitionOutput) +} + +// Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services. +func (o EC2TaskDefinitionOutput) TaskRole() iam.RoleOutput { + return o.ApplyT(func(v *EC2TaskDefinition) iam.RoleOutput { return v.TaskRole }).(iam.RoleOutput) +} + +type EC2TaskDefinitionArrayOutput struct{ *pulumi.OutputState } + +func (EC2TaskDefinitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EC2TaskDefinition)(nil)).Elem() +} + +func (o EC2TaskDefinitionArrayOutput) ToEC2TaskDefinitionArrayOutput() EC2TaskDefinitionArrayOutput { + return o +} + +func (o EC2TaskDefinitionArrayOutput) ToEC2TaskDefinitionArrayOutputWithContext(ctx context.Context) EC2TaskDefinitionArrayOutput { + return o +} + +func (o EC2TaskDefinitionArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*EC2TaskDefinition] { + return pulumix.Output[[]*EC2TaskDefinition]{ + OutputState: o.OutputState, + } +} + +func (o EC2TaskDefinitionArrayOutput) Index(i pulumi.IntInput) EC2TaskDefinitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EC2TaskDefinition { + return vs[0].([]*EC2TaskDefinition)[vs[1].(int)] + }).(EC2TaskDefinitionOutput) +} + +type EC2TaskDefinitionMapOutput struct{ *pulumi.OutputState } + +func (EC2TaskDefinitionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EC2TaskDefinition)(nil)).Elem() +} + +func (o EC2TaskDefinitionMapOutput) ToEC2TaskDefinitionMapOutput() EC2TaskDefinitionMapOutput { + return o +} + +func (o EC2TaskDefinitionMapOutput) ToEC2TaskDefinitionMapOutputWithContext(ctx context.Context) EC2TaskDefinitionMapOutput { + return o +} + +func (o EC2TaskDefinitionMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*EC2TaskDefinition] { + return pulumix.Output[map[string]*EC2TaskDefinition]{ + OutputState: o.OutputState, + } +} + +func (o EC2TaskDefinitionMapOutput) MapIndex(k pulumi.StringInput) EC2TaskDefinitionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EC2TaskDefinition { + return vs[0].(map[string]*EC2TaskDefinition)[vs[1].(string)] + }).(EC2TaskDefinitionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EC2TaskDefinitionInput)(nil)).Elem(), &EC2TaskDefinition{}) + pulumi.RegisterInputType(reflect.TypeOf((*EC2TaskDefinitionArrayInput)(nil)).Elem(), EC2TaskDefinitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EC2TaskDefinitionMapInput)(nil)).Elem(), EC2TaskDefinitionMap{}) + pulumi.RegisterOutputType(EC2TaskDefinitionOutput{}) + pulumi.RegisterOutputType(EC2TaskDefinitionArrayOutput{}) + pulumi.RegisterOutputType(EC2TaskDefinitionMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateService.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateService.go new file mode 100644 index 000000000..dd02a5619 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateService.go @@ -0,0 +1,342 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Create an ECS Service resource for Fargate with the given unique name, arguments, and options. +// Creates Task definition if `taskDefinitionArgs` is specified. +type FargateService struct { + pulumi.ResourceState + + // Underlying ECS Service resource + Service ecs.ServiceOutput `pulumi:"service"` + // Underlying Fargate component resource if created from args + TaskDefinition ecs.TaskDefinitionOutput `pulumi:"taskDefinition"` +} + +// NewFargateService registers a new resource with the given unique name, arguments, and options. +func NewFargateService(ctx *pulumi.Context, + name string, args *FargateServiceArgs, opts ...pulumi.ResourceOption) (*FargateService, error) { + if args == nil { + args = &FargateServiceArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource FargateService + err := ctx.RegisterRemoteComponentResource("awsx:ecs:FargateService", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +type fargateServiceArgs struct { + // Information about the CloudWatch alarms. See below. + Alarms *ecs.ServiceAlarms `pulumi:"alarms"` + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. + AssignPublicIp *bool `pulumi:"assignPublicIp"` + // ARN of an ECS cluster. + Cluster *string `pulumi:"cluster"` + // If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + ContinueBeforeSteadyState *bool `pulumi:"continueBeforeSteadyState"` + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker *ecs.ServiceDeploymentCircuitBreaker `pulumi:"deploymentCircuitBreaker"` + // Configuration block for deployment controller configuration. See below. + DeploymentController *ecs.ServiceDeploymentController `pulumi:"deploymentController"` + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent *int `pulumi:"deploymentMaximumPercent"` + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent *int `pulumi:"deploymentMinimumHealthyPercent"` + // Number of instances of the task definition to place and keep running. Defaults to 1. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount *int `pulumi:"desiredCount"` + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags *bool `pulumi:"enableEcsManagedTags"` + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand *bool `pulumi:"enableExecuteCommand"` + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `ordered_placement_strategy` and `placement_constraints` updates. + ForceNewDeployment *bool `pulumi:"forceNewDeployment"` + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds *int `pulumi:"healthCheckGracePeriodSeconds"` + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole *string `pulumi:"iamRole"` + // Configuration block for load balancers. See below. + LoadBalancers []ecs.ServiceLoadBalancer `pulumi:"loadBalancers"` + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name *string `pulumi:"name"` + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration *ecs.ServiceNetworkConfiguration `pulumi:"networkConfiguration"` + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. + PlacementConstraints []ecs.ServicePlacementConstraint `pulumi:"placementConstraints"` + // Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion *string `pulumi:"platformVersion"` + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags *string `pulumi:"propagateTags"` + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy *string `pulumi:"schedulingStrategy"` + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration *ecs.ServiceServiceConnectConfiguration `pulumi:"serviceConnectConfiguration"` + // Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. + ServiceRegistries *ecs.ServiceServiceRegistries `pulumi:"serviceRegistries"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinition *string `pulumi:"taskDefinition"` + // The args of task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinitionArgs *FargateServiceTaskDefinition `pulumi:"taskDefinitionArgs"` + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers map[string]string `pulumi:"triggers"` +} + +// The set of arguments for constructing a FargateService resource. +type FargateServiceArgs struct { + // Information about the CloudWatch alarms. See below. + Alarms ecs.ServiceAlarmsPtrInput + // Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. + AssignPublicIp pulumi.BoolPtrInput + // ARN of an ECS cluster. + Cluster pulumi.StringPtrInput + // If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`. + ContinueBeforeSteadyState pulumi.BoolPtrInput + // Configuration block for deployment circuit breaker. See below. + DeploymentCircuitBreaker ecs.ServiceDeploymentCircuitBreakerPtrInput + // Configuration block for deployment controller configuration. See below. + DeploymentController ecs.ServiceDeploymentControllerPtrInput + // Upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. Not valid when using the `DAEMON` scheduling strategy. + DeploymentMaximumPercent pulumi.IntPtrInput + // Lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. + DeploymentMinimumHealthyPercent pulumi.IntPtrInput + // Number of instances of the task definition to place and keep running. Defaults to 1. Do not specify if using the `DAEMON` scheduling strategy. + DesiredCount pulumi.IntPtrInput + // Specifies whether to enable Amazon ECS managed tags for the tasks within the service. + EnableEcsManagedTags pulumi.BoolPtrInput + // Specifies whether to enable Amazon ECS Exec for the tasks within the service. + EnableExecuteCommand pulumi.BoolPtrInput + // Enable to force a new task deployment of the service. This can be used to update tasks to use a newer Docker image with same image/tag combination (e.g., `myimage:latest`), roll Fargate tasks onto a newer platform version, or immediately deploy `ordered_placement_strategy` and `placement_constraints` updates. + ForceNewDeployment pulumi.BoolPtrInput + // Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 2147483647. Only valid for services configured to use load balancers. + HealthCheckGracePeriodSeconds pulumi.IntPtrInput + // ARN of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service, but only if your task definition does not use the `awsvpc` network mode. If using `awsvpc` network mode, do not specify this role. If your account has already created the Amazon ECS service-linked role, that role is used by default for your service unless you specify a role here. + IamRole pulumi.StringPtrInput + // Configuration block for load balancers. See below. + LoadBalancers ecs.ServiceLoadBalancerArrayInput + // Name of the service (up to 255 letters, numbers, hyphens, and underscores) + // + // The following arguments are optional: + Name pulumi.StringPtrInput + // Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below. + NetworkConfiguration ecs.ServiceNetworkConfigurationPtrInput + // Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below. + PlacementConstraints ecs.ServicePlacementConstraintArrayInput + // Platform version on which to run your service. Only applicable for `launch_type` set to `FARGATE`. Defaults to `LATEST`. More information about Fargate platform versions can be found in the [AWS ECS User Guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html). + PlatformVersion pulumi.StringPtrInput + // Specifies whether to propagate the tags from the task definition or the service to the tasks. The valid values are `SERVICE` and `TASK_DEFINITION`. + PropagateTags pulumi.StringPtrInput + // Scheduling strategy to use for the service. The valid values are `REPLICA` and `DAEMON`. Defaults to `REPLICA`. Note that [*Tasks using the Fargate launch type or the `CODE_DEPLOY` or `EXTERNAL` deployment controller types don't support the `DAEMON` scheduling strategy*](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html). + SchedulingStrategy pulumi.StringPtrInput + // The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below. + ServiceConnectConfiguration ecs.ServiceServiceConnectConfigurationPtrInput + // Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below. + ServiceRegistries ecs.ServiceServiceRegistriesPtrInput + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // Family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinition pulumi.StringPtrInput + // The args of task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. + TaskDefinitionArgs *FargateServiceTaskDefinitionArgs + // Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. + Triggers pulumi.StringMapInput +} + +func (FargateServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*fargateServiceArgs)(nil)).Elem() +} + +type FargateServiceInput interface { + pulumi.Input + + ToFargateServiceOutput() FargateServiceOutput + ToFargateServiceOutputWithContext(ctx context.Context) FargateServiceOutput +} + +func (*FargateService) ElementType() reflect.Type { + return reflect.TypeOf((**FargateService)(nil)).Elem() +} + +func (i *FargateService) ToFargateServiceOutput() FargateServiceOutput { + return i.ToFargateServiceOutputWithContext(context.Background()) +} + +func (i *FargateService) ToFargateServiceOutputWithContext(ctx context.Context) FargateServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateServiceOutput) +} + +func (i *FargateService) ToOutput(ctx context.Context) pulumix.Output[*FargateService] { + return pulumix.Output[*FargateService]{ + OutputState: i.ToFargateServiceOutputWithContext(ctx).OutputState, + } +} + +// FargateServiceArrayInput is an input type that accepts FargateServiceArray and FargateServiceArrayOutput values. +// You can construct a concrete instance of `FargateServiceArrayInput` via: +// +// FargateServiceArray{ FargateServiceArgs{...} } +type FargateServiceArrayInput interface { + pulumi.Input + + ToFargateServiceArrayOutput() FargateServiceArrayOutput + ToFargateServiceArrayOutputWithContext(context.Context) FargateServiceArrayOutput +} + +type FargateServiceArray []FargateServiceInput + +func (FargateServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*FargateService)(nil)).Elem() +} + +func (i FargateServiceArray) ToFargateServiceArrayOutput() FargateServiceArrayOutput { + return i.ToFargateServiceArrayOutputWithContext(context.Background()) +} + +func (i FargateServiceArray) ToFargateServiceArrayOutputWithContext(ctx context.Context) FargateServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateServiceArrayOutput) +} + +func (i FargateServiceArray) ToOutput(ctx context.Context) pulumix.Output[[]*FargateService] { + return pulumix.Output[[]*FargateService]{ + OutputState: i.ToFargateServiceArrayOutputWithContext(ctx).OutputState, + } +} + +// FargateServiceMapInput is an input type that accepts FargateServiceMap and FargateServiceMapOutput values. +// You can construct a concrete instance of `FargateServiceMapInput` via: +// +// FargateServiceMap{ "key": FargateServiceArgs{...} } +type FargateServiceMapInput interface { + pulumi.Input + + ToFargateServiceMapOutput() FargateServiceMapOutput + ToFargateServiceMapOutputWithContext(context.Context) FargateServiceMapOutput +} + +type FargateServiceMap map[string]FargateServiceInput + +func (FargateServiceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*FargateService)(nil)).Elem() +} + +func (i FargateServiceMap) ToFargateServiceMapOutput() FargateServiceMapOutput { + return i.ToFargateServiceMapOutputWithContext(context.Background()) +} + +func (i FargateServiceMap) ToFargateServiceMapOutputWithContext(ctx context.Context) FargateServiceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateServiceMapOutput) +} + +func (i FargateServiceMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*FargateService] { + return pulumix.Output[map[string]*FargateService]{ + OutputState: i.ToFargateServiceMapOutputWithContext(ctx).OutputState, + } +} + +type FargateServiceOutput struct{ *pulumi.OutputState } + +func (FargateServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FargateService)(nil)).Elem() +} + +func (o FargateServiceOutput) ToFargateServiceOutput() FargateServiceOutput { + return o +} + +func (o FargateServiceOutput) ToFargateServiceOutputWithContext(ctx context.Context) FargateServiceOutput { + return o +} + +func (o FargateServiceOutput) ToOutput(ctx context.Context) pulumix.Output[*FargateService] { + return pulumix.Output[*FargateService]{ + OutputState: o.OutputState, + } +} + +// Underlying ECS Service resource +func (o FargateServiceOutput) Service() ecs.ServiceOutput { + return o.ApplyT(func(v *FargateService) ecs.ServiceOutput { return v.Service }).(ecs.ServiceOutput) +} + +// Underlying Fargate component resource if created from args +func (o FargateServiceOutput) TaskDefinition() ecs.TaskDefinitionOutput { + return o.ApplyT(func(v *FargateService) ecs.TaskDefinitionOutput { return v.TaskDefinition }).(ecs.TaskDefinitionOutput) +} + +type FargateServiceArrayOutput struct{ *pulumi.OutputState } + +func (FargateServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*FargateService)(nil)).Elem() +} + +func (o FargateServiceArrayOutput) ToFargateServiceArrayOutput() FargateServiceArrayOutput { + return o +} + +func (o FargateServiceArrayOutput) ToFargateServiceArrayOutputWithContext(ctx context.Context) FargateServiceArrayOutput { + return o +} + +func (o FargateServiceArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*FargateService] { + return pulumix.Output[[]*FargateService]{ + OutputState: o.OutputState, + } +} + +func (o FargateServiceArrayOutput) Index(i pulumi.IntInput) FargateServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FargateService { + return vs[0].([]*FargateService)[vs[1].(int)] + }).(FargateServiceOutput) +} + +type FargateServiceMapOutput struct{ *pulumi.OutputState } + +func (FargateServiceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*FargateService)(nil)).Elem() +} + +func (o FargateServiceMapOutput) ToFargateServiceMapOutput() FargateServiceMapOutput { + return o +} + +func (o FargateServiceMapOutput) ToFargateServiceMapOutputWithContext(ctx context.Context) FargateServiceMapOutput { + return o +} + +func (o FargateServiceMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*FargateService] { + return pulumix.Output[map[string]*FargateService]{ + OutputState: o.OutputState, + } +} + +func (o FargateServiceMapOutput) MapIndex(k pulumi.StringInput) FargateServiceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FargateService { + return vs[0].(map[string]*FargateService)[vs[1].(string)] + }).(FargateServiceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FargateServiceInput)(nil)).Elem(), &FargateService{}) + pulumi.RegisterInputType(reflect.TypeOf((*FargateServiceArrayInput)(nil)).Elem(), FargateServiceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FargateServiceMapInput)(nil)).Elem(), FargateServiceMap{}) + pulumi.RegisterOutputType(FargateServiceOutput{}) + pulumi.RegisterOutputType(FargateServiceArrayOutput{}) + pulumi.RegisterOutputType(FargateServiceMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateTaskDefinition.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateTaskDefinition.go new file mode 100644 index 000000000..e4c72041c --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/fargateTaskDefinition.go @@ -0,0 +1,345 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type FargateTaskDefinition struct { + pulumi.ResourceState + + // Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume. + ExecutionRole iam.RoleOutput `pulumi:"executionRole"` + // Computed load balancers from target groups specified of container port mappings. + LoadBalancers ecs.ServiceLoadBalancerArrayOutput `pulumi:"loadBalancers"` + // Auto-created Log Group resource for use by containers. + LogGroup cloudwatch.LogGroupOutput `pulumi:"logGroup"` + // Underlying ECS Task Definition resource + TaskDefinition ecs.TaskDefinitionOutput `pulumi:"taskDefinition"` + // Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services. + TaskRole iam.RoleOutput `pulumi:"taskRole"` +} + +// NewFargateTaskDefinition registers a new resource with the given unique name, arguments, and options. +func NewFargateTaskDefinition(ctx *pulumi.Context, + name string, args *FargateTaskDefinitionArgs, opts ...pulumi.ResourceOption) (*FargateTaskDefinition, error) { + if args == nil { + args = &FargateTaskDefinitionArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource FargateTaskDefinition + err := ctx.RegisterRemoteComponentResource("awsx:ecs:FargateTaskDefinition", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +type fargateTaskDefinitionArgs struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinition `pulumi:"container"` + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu *string `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` + // An optional unique name for your task definition. If not specified, then a default will be created. + Family *string `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode *string `pulumi:"ipcMode"` + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroup `pulumi:"logGroup"` + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory *string `pulumi:"memory"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode *string `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy *bool `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicy `pulumi:"taskRole"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` +} + +// The set of arguments for constructing a FargateTaskDefinition resource. +type FargateTaskDefinitionArgs struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinitionArgs + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinitionArgs + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu pulumi.StringPtrInput + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicyArgs + // An optional unique name for your task definition. If not specified, then a default will be created. + Family pulumi.StringPtrInput + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrInput + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroupArgs + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory pulumi.StringPtrInput + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrInput + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrInput + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicyArgs + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes ecs.TaskDefinitionVolumeArrayInput +} + +func (FargateTaskDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*fargateTaskDefinitionArgs)(nil)).Elem() +} + +type FargateTaskDefinitionInput interface { + pulumi.Input + + ToFargateTaskDefinitionOutput() FargateTaskDefinitionOutput + ToFargateTaskDefinitionOutputWithContext(ctx context.Context) FargateTaskDefinitionOutput +} + +func (*FargateTaskDefinition) ElementType() reflect.Type { + return reflect.TypeOf((**FargateTaskDefinition)(nil)).Elem() +} + +func (i *FargateTaskDefinition) ToFargateTaskDefinitionOutput() FargateTaskDefinitionOutput { + return i.ToFargateTaskDefinitionOutputWithContext(context.Background()) +} + +func (i *FargateTaskDefinition) ToFargateTaskDefinitionOutputWithContext(ctx context.Context) FargateTaskDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateTaskDefinitionOutput) +} + +func (i *FargateTaskDefinition) ToOutput(ctx context.Context) pulumix.Output[*FargateTaskDefinition] { + return pulumix.Output[*FargateTaskDefinition]{ + OutputState: i.ToFargateTaskDefinitionOutputWithContext(ctx).OutputState, + } +} + +// FargateTaskDefinitionArrayInput is an input type that accepts FargateTaskDefinitionArray and FargateTaskDefinitionArrayOutput values. +// You can construct a concrete instance of `FargateTaskDefinitionArrayInput` via: +// +// FargateTaskDefinitionArray{ FargateTaskDefinitionArgs{...} } +type FargateTaskDefinitionArrayInput interface { + pulumi.Input + + ToFargateTaskDefinitionArrayOutput() FargateTaskDefinitionArrayOutput + ToFargateTaskDefinitionArrayOutputWithContext(context.Context) FargateTaskDefinitionArrayOutput +} + +type FargateTaskDefinitionArray []FargateTaskDefinitionInput + +func (FargateTaskDefinitionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*FargateTaskDefinition)(nil)).Elem() +} + +func (i FargateTaskDefinitionArray) ToFargateTaskDefinitionArrayOutput() FargateTaskDefinitionArrayOutput { + return i.ToFargateTaskDefinitionArrayOutputWithContext(context.Background()) +} + +func (i FargateTaskDefinitionArray) ToFargateTaskDefinitionArrayOutputWithContext(ctx context.Context) FargateTaskDefinitionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateTaskDefinitionArrayOutput) +} + +func (i FargateTaskDefinitionArray) ToOutput(ctx context.Context) pulumix.Output[[]*FargateTaskDefinition] { + return pulumix.Output[[]*FargateTaskDefinition]{ + OutputState: i.ToFargateTaskDefinitionArrayOutputWithContext(ctx).OutputState, + } +} + +// FargateTaskDefinitionMapInput is an input type that accepts FargateTaskDefinitionMap and FargateTaskDefinitionMapOutput values. +// You can construct a concrete instance of `FargateTaskDefinitionMapInput` via: +// +// FargateTaskDefinitionMap{ "key": FargateTaskDefinitionArgs{...} } +type FargateTaskDefinitionMapInput interface { + pulumi.Input + + ToFargateTaskDefinitionMapOutput() FargateTaskDefinitionMapOutput + ToFargateTaskDefinitionMapOutputWithContext(context.Context) FargateTaskDefinitionMapOutput +} + +type FargateTaskDefinitionMap map[string]FargateTaskDefinitionInput + +func (FargateTaskDefinitionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*FargateTaskDefinition)(nil)).Elem() +} + +func (i FargateTaskDefinitionMap) ToFargateTaskDefinitionMapOutput() FargateTaskDefinitionMapOutput { + return i.ToFargateTaskDefinitionMapOutputWithContext(context.Background()) +} + +func (i FargateTaskDefinitionMap) ToFargateTaskDefinitionMapOutputWithContext(ctx context.Context) FargateTaskDefinitionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateTaskDefinitionMapOutput) +} + +func (i FargateTaskDefinitionMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*FargateTaskDefinition] { + return pulumix.Output[map[string]*FargateTaskDefinition]{ + OutputState: i.ToFargateTaskDefinitionMapOutputWithContext(ctx).OutputState, + } +} + +type FargateTaskDefinitionOutput struct{ *pulumi.OutputState } + +func (FargateTaskDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FargateTaskDefinition)(nil)).Elem() +} + +func (o FargateTaskDefinitionOutput) ToFargateTaskDefinitionOutput() FargateTaskDefinitionOutput { + return o +} + +func (o FargateTaskDefinitionOutput) ToFargateTaskDefinitionOutputWithContext(ctx context.Context) FargateTaskDefinitionOutput { + return o +} + +func (o FargateTaskDefinitionOutput) ToOutput(ctx context.Context) pulumix.Output[*FargateTaskDefinition] { + return pulumix.Output[*FargateTaskDefinition]{ + OutputState: o.OutputState, + } +} + +// Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume. +func (o FargateTaskDefinitionOutput) ExecutionRole() iam.RoleOutput { + return o.ApplyT(func(v *FargateTaskDefinition) iam.RoleOutput { return v.ExecutionRole }).(iam.RoleOutput) +} + +// Computed load balancers from target groups specified of container port mappings. +func (o FargateTaskDefinitionOutput) LoadBalancers() ecs.ServiceLoadBalancerArrayOutput { + return o.ApplyT(func(v *FargateTaskDefinition) ecs.ServiceLoadBalancerArrayOutput { return v.LoadBalancers }).(ecs.ServiceLoadBalancerArrayOutput) +} + +// Auto-created Log Group resource for use by containers. +func (o FargateTaskDefinitionOutput) LogGroup() cloudwatch.LogGroupOutput { + return o.ApplyT(func(v *FargateTaskDefinition) cloudwatch.LogGroupOutput { return v.LogGroup }).(cloudwatch.LogGroupOutput) +} + +// Underlying ECS Task Definition resource +func (o FargateTaskDefinitionOutput) TaskDefinition() ecs.TaskDefinitionOutput { + return o.ApplyT(func(v *FargateTaskDefinition) ecs.TaskDefinitionOutput { return v.TaskDefinition }).(ecs.TaskDefinitionOutput) +} + +// Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services. +func (o FargateTaskDefinitionOutput) TaskRole() iam.RoleOutput { + return o.ApplyT(func(v *FargateTaskDefinition) iam.RoleOutput { return v.TaskRole }).(iam.RoleOutput) +} + +type FargateTaskDefinitionArrayOutput struct{ *pulumi.OutputState } + +func (FargateTaskDefinitionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*FargateTaskDefinition)(nil)).Elem() +} + +func (o FargateTaskDefinitionArrayOutput) ToFargateTaskDefinitionArrayOutput() FargateTaskDefinitionArrayOutput { + return o +} + +func (o FargateTaskDefinitionArrayOutput) ToFargateTaskDefinitionArrayOutputWithContext(ctx context.Context) FargateTaskDefinitionArrayOutput { + return o +} + +func (o FargateTaskDefinitionArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*FargateTaskDefinition] { + return pulumix.Output[[]*FargateTaskDefinition]{ + OutputState: o.OutputState, + } +} + +func (o FargateTaskDefinitionArrayOutput) Index(i pulumi.IntInput) FargateTaskDefinitionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FargateTaskDefinition { + return vs[0].([]*FargateTaskDefinition)[vs[1].(int)] + }).(FargateTaskDefinitionOutput) +} + +type FargateTaskDefinitionMapOutput struct{ *pulumi.OutputState } + +func (FargateTaskDefinitionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*FargateTaskDefinition)(nil)).Elem() +} + +func (o FargateTaskDefinitionMapOutput) ToFargateTaskDefinitionMapOutput() FargateTaskDefinitionMapOutput { + return o +} + +func (o FargateTaskDefinitionMapOutput) ToFargateTaskDefinitionMapOutputWithContext(ctx context.Context) FargateTaskDefinitionMapOutput { + return o +} + +func (o FargateTaskDefinitionMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*FargateTaskDefinition] { + return pulumix.Output[map[string]*FargateTaskDefinition]{ + OutputState: o.OutputState, + } +} + +func (o FargateTaskDefinitionMapOutput) MapIndex(k pulumi.StringInput) FargateTaskDefinitionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FargateTaskDefinition { + return vs[0].(map[string]*FargateTaskDefinition)[vs[1].(string)] + }).(FargateTaskDefinitionOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FargateTaskDefinitionInput)(nil)).Elem(), &FargateTaskDefinition{}) + pulumi.RegisterInputType(reflect.TypeOf((*FargateTaskDefinitionArrayInput)(nil)).Elem(), FargateTaskDefinitionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FargateTaskDefinitionMapInput)(nil)).Elem(), FargateTaskDefinitionMap{}) + pulumi.RegisterOutputType(FargateTaskDefinitionOutput{}) + pulumi.RegisterOutputType(FargateTaskDefinitionArrayOutput{}) + pulumi.RegisterOutputType(FargateTaskDefinitionMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/init.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/init.go new file mode 100644 index 000000000..d0cf46fa6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/init.go @@ -0,0 +1,51 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + _ "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "awsx:ecs:EC2Service": + r = &EC2Service{} + case "awsx:ecs:EC2TaskDefinition": + r = &EC2TaskDefinition{} + case "awsx:ecs:FargateService": + r = &FargateService{} + case "awsx:ecs:FargateTaskDefinition": + r = &FargateTaskDefinition{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "awsx", + "ecs", + &module{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiEnums.go new file mode 100644 index 000000000..73399f646 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiEnums.go @@ -0,0 +1,202 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +type TaskDefinitionPortMappingAppProtocol string + +const ( + TaskDefinitionPortMappingAppProtocolHttp = TaskDefinitionPortMappingAppProtocol("http") + TaskDefinitionPortMappingAppProtocolHttp2 = TaskDefinitionPortMappingAppProtocol("http2") + TaskDefinitionPortMappingAppProtocolGrpc = TaskDefinitionPortMappingAppProtocol("grpc") +) + +func (TaskDefinitionPortMappingAppProtocol) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionPortMappingAppProtocol)(nil)).Elem() +} + +func (e TaskDefinitionPortMappingAppProtocol) ToTaskDefinitionPortMappingAppProtocolOutput() TaskDefinitionPortMappingAppProtocolOutput { + return pulumi.ToOutput(e).(TaskDefinitionPortMappingAppProtocolOutput) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToTaskDefinitionPortMappingAppProtocolOutputWithContext(ctx context.Context) TaskDefinitionPortMappingAppProtocolOutput { + return pulumi.ToOutputWithContext(ctx, e).(TaskDefinitionPortMappingAppProtocolOutput) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToTaskDefinitionPortMappingAppProtocolPtrOutput() TaskDefinitionPortMappingAppProtocolPtrOutput { + return e.ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(context.Background()) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(ctx context.Context) TaskDefinitionPortMappingAppProtocolPtrOutput { + return TaskDefinitionPortMappingAppProtocol(e).ToTaskDefinitionPortMappingAppProtocolOutputWithContext(ctx).ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(ctx) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e TaskDefinitionPortMappingAppProtocol) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type TaskDefinitionPortMappingAppProtocolOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionPortMappingAppProtocolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionPortMappingAppProtocol)(nil)).Elem() +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToTaskDefinitionPortMappingAppProtocolOutput() TaskDefinitionPortMappingAppProtocolOutput { + return o +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToTaskDefinitionPortMappingAppProtocolOutputWithContext(ctx context.Context) TaskDefinitionPortMappingAppProtocolOutput { + return o +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToTaskDefinitionPortMappingAppProtocolPtrOutput() TaskDefinitionPortMappingAppProtocolPtrOutput { + return o.ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(ctx context.Context) TaskDefinitionPortMappingAppProtocolPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionPortMappingAppProtocol) *TaskDefinitionPortMappingAppProtocol { + return &v + }).(TaskDefinitionPortMappingAppProtocolPtrOutput) +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionPortMappingAppProtocol] { + return pulumix.Output[TaskDefinitionPortMappingAppProtocol]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TaskDefinitionPortMappingAppProtocol) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionPortMappingAppProtocolOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TaskDefinitionPortMappingAppProtocol) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionPortMappingAppProtocolPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionPortMappingAppProtocolPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionPortMappingAppProtocol)(nil)).Elem() +} + +func (o TaskDefinitionPortMappingAppProtocolPtrOutput) ToTaskDefinitionPortMappingAppProtocolPtrOutput() TaskDefinitionPortMappingAppProtocolPtrOutput { + return o +} + +func (o TaskDefinitionPortMappingAppProtocolPtrOutput) ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(ctx context.Context) TaskDefinitionPortMappingAppProtocolPtrOutput { + return o +} + +func (o TaskDefinitionPortMappingAppProtocolPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionPortMappingAppProtocol] { + return pulumix.Output[*TaskDefinitionPortMappingAppProtocol]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionPortMappingAppProtocolPtrOutput) Elem() TaskDefinitionPortMappingAppProtocolOutput { + return o.ApplyT(func(v *TaskDefinitionPortMappingAppProtocol) TaskDefinitionPortMappingAppProtocol { + if v != nil { + return *v + } + var ret TaskDefinitionPortMappingAppProtocol + return ret + }).(TaskDefinitionPortMappingAppProtocolOutput) +} + +func (o TaskDefinitionPortMappingAppProtocolPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionPortMappingAppProtocolPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *TaskDefinitionPortMappingAppProtocol) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// TaskDefinitionPortMappingAppProtocolInput is an input type that accepts TaskDefinitionPortMappingAppProtocolArgs and TaskDefinitionPortMappingAppProtocolOutput values. +// You can construct a concrete instance of `TaskDefinitionPortMappingAppProtocolInput` via: +// +// TaskDefinitionPortMappingAppProtocolArgs{...} +type TaskDefinitionPortMappingAppProtocolInput interface { + pulumi.Input + + ToTaskDefinitionPortMappingAppProtocolOutput() TaskDefinitionPortMappingAppProtocolOutput + ToTaskDefinitionPortMappingAppProtocolOutputWithContext(context.Context) TaskDefinitionPortMappingAppProtocolOutput +} + +var taskDefinitionPortMappingAppProtocolPtrType = reflect.TypeOf((**TaskDefinitionPortMappingAppProtocol)(nil)).Elem() + +type TaskDefinitionPortMappingAppProtocolPtrInput interface { + pulumi.Input + + ToTaskDefinitionPortMappingAppProtocolPtrOutput() TaskDefinitionPortMappingAppProtocolPtrOutput + ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(context.Context) TaskDefinitionPortMappingAppProtocolPtrOutput +} + +type taskDefinitionPortMappingAppProtocolPtr string + +func TaskDefinitionPortMappingAppProtocolPtr(v string) TaskDefinitionPortMappingAppProtocolPtrInput { + return (*taskDefinitionPortMappingAppProtocolPtr)(&v) +} + +func (*taskDefinitionPortMappingAppProtocolPtr) ElementType() reflect.Type { + return taskDefinitionPortMappingAppProtocolPtrType +} + +func (in *taskDefinitionPortMappingAppProtocolPtr) ToTaskDefinitionPortMappingAppProtocolPtrOutput() TaskDefinitionPortMappingAppProtocolPtrOutput { + return pulumi.ToOutput(in).(TaskDefinitionPortMappingAppProtocolPtrOutput) +} + +func (in *taskDefinitionPortMappingAppProtocolPtr) ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(ctx context.Context) TaskDefinitionPortMappingAppProtocolPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(TaskDefinitionPortMappingAppProtocolPtrOutput) +} + +func (in *taskDefinitionPortMappingAppProtocolPtr) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionPortMappingAppProtocol] { + return pulumix.Output[*TaskDefinitionPortMappingAppProtocol]{ + OutputState: in.ToTaskDefinitionPortMappingAppProtocolPtrOutputWithContext(ctx).OutputState, + } +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionPortMappingAppProtocolInput)(nil)).Elem(), TaskDefinitionPortMappingAppProtocol("http")) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionPortMappingAppProtocolPtrInput)(nil)).Elem(), TaskDefinitionPortMappingAppProtocol("http")) + pulumi.RegisterOutputType(TaskDefinitionPortMappingAppProtocolOutput{}) + pulumi.RegisterOutputType(TaskDefinitionPortMappingAppProtocolPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiTypes.go new file mode 100644 index 000000000..edc808d87 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs/pulumiTypes.go @@ -0,0 +1,4856 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ecs + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs" + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +var _ = internal.GetEnvOrDefault + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type EC2ServiceTaskDefinition struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinition `pulumi:"container"` + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu *string `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` + // An optional unique name for your task definition. If not specified, then a default will be created. + Family *string `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode *string `pulumi:"ipcMode"` + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroup `pulumi:"logGroup"` + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory *string `pulumi:"memory"` + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode *string `pulumi:"networkMode"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode *string `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy *bool `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicy `pulumi:"taskRole"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` +} + +// EC2ServiceTaskDefinitionInput is an input type that accepts EC2ServiceTaskDefinitionArgs and EC2ServiceTaskDefinitionOutput values. +// You can construct a concrete instance of `EC2ServiceTaskDefinitionInput` via: +// +// EC2ServiceTaskDefinitionArgs{...} +type EC2ServiceTaskDefinitionInput interface { + pulumi.Input + + ToEC2ServiceTaskDefinitionOutput() EC2ServiceTaskDefinitionOutput + ToEC2ServiceTaskDefinitionOutputWithContext(context.Context) EC2ServiceTaskDefinitionOutput +} + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type EC2ServiceTaskDefinitionArgs struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinitionArgs `pulumi:"container"` + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinitionArgs `pulumi:"containers"` + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu pulumi.StringPtrInput `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput `pulumi:"ephemeralStorage"` + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicyArgs `pulumi:"executionRole"` + // An optional unique name for your task definition. If not specified, then a default will be created. + Family pulumi.StringPtrInput `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrInput `pulumi:"ipcMode"` + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroupArgs `pulumi:"logGroup"` + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory pulumi.StringPtrInput `pulumi:"memory"` + // Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. + NetworkMode pulumi.StringPtrInput `pulumi:"networkMode"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrInput `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput `pulumi:"proxyConfiguration"` + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrInput `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicyArgs `pulumi:"taskRole"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes ecs.TaskDefinitionVolumeArrayInput `pulumi:"volumes"` +} + +func (EC2ServiceTaskDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*EC2ServiceTaskDefinition)(nil)).Elem() +} + +func (i EC2ServiceTaskDefinitionArgs) ToEC2ServiceTaskDefinitionOutput() EC2ServiceTaskDefinitionOutput { + return i.ToEC2ServiceTaskDefinitionOutputWithContext(context.Background()) +} + +func (i EC2ServiceTaskDefinitionArgs) ToEC2ServiceTaskDefinitionOutputWithContext(ctx context.Context) EC2ServiceTaskDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2ServiceTaskDefinitionOutput) +} + +func (i EC2ServiceTaskDefinitionArgs) ToOutput(ctx context.Context) pulumix.Output[EC2ServiceTaskDefinition] { + return pulumix.Output[EC2ServiceTaskDefinition]{ + OutputState: i.ToEC2ServiceTaskDefinitionOutputWithContext(ctx).OutputState, + } +} + +func (i EC2ServiceTaskDefinitionArgs) ToEC2ServiceTaskDefinitionPtrOutput() EC2ServiceTaskDefinitionPtrOutput { + return i.ToEC2ServiceTaskDefinitionPtrOutputWithContext(context.Background()) +} + +func (i EC2ServiceTaskDefinitionArgs) ToEC2ServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) EC2ServiceTaskDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2ServiceTaskDefinitionOutput).ToEC2ServiceTaskDefinitionPtrOutputWithContext(ctx) +} + +// EC2ServiceTaskDefinitionPtrInput is an input type that accepts EC2ServiceTaskDefinitionArgs, EC2ServiceTaskDefinitionPtr and EC2ServiceTaskDefinitionPtrOutput values. +// You can construct a concrete instance of `EC2ServiceTaskDefinitionPtrInput` via: +// +// EC2ServiceTaskDefinitionArgs{...} +// +// or: +// +// nil +type EC2ServiceTaskDefinitionPtrInput interface { + pulumi.Input + + ToEC2ServiceTaskDefinitionPtrOutput() EC2ServiceTaskDefinitionPtrOutput + ToEC2ServiceTaskDefinitionPtrOutputWithContext(context.Context) EC2ServiceTaskDefinitionPtrOutput +} + +type ec2serviceTaskDefinitionPtrType EC2ServiceTaskDefinitionArgs + +func EC2ServiceTaskDefinitionPtr(v *EC2ServiceTaskDefinitionArgs) EC2ServiceTaskDefinitionPtrInput { + return (*ec2serviceTaskDefinitionPtrType)(v) +} + +func (*ec2serviceTaskDefinitionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**EC2ServiceTaskDefinition)(nil)).Elem() +} + +func (i *ec2serviceTaskDefinitionPtrType) ToEC2ServiceTaskDefinitionPtrOutput() EC2ServiceTaskDefinitionPtrOutput { + return i.ToEC2ServiceTaskDefinitionPtrOutputWithContext(context.Background()) +} + +func (i *ec2serviceTaskDefinitionPtrType) ToEC2ServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) EC2ServiceTaskDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(EC2ServiceTaskDefinitionPtrOutput) +} + +func (i *ec2serviceTaskDefinitionPtrType) ToOutput(ctx context.Context) pulumix.Output[*EC2ServiceTaskDefinition] { + return pulumix.Output[*EC2ServiceTaskDefinition]{ + OutputState: i.ToEC2ServiceTaskDefinitionPtrOutputWithContext(ctx).OutputState, + } +} + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type EC2ServiceTaskDefinitionOutput struct{ *pulumi.OutputState } + +func (EC2ServiceTaskDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*EC2ServiceTaskDefinition)(nil)).Elem() +} + +func (o EC2ServiceTaskDefinitionOutput) ToEC2ServiceTaskDefinitionOutput() EC2ServiceTaskDefinitionOutput { + return o +} + +func (o EC2ServiceTaskDefinitionOutput) ToEC2ServiceTaskDefinitionOutputWithContext(ctx context.Context) EC2ServiceTaskDefinitionOutput { + return o +} + +func (o EC2ServiceTaskDefinitionOutput) ToEC2ServiceTaskDefinitionPtrOutput() EC2ServiceTaskDefinitionPtrOutput { + return o.ToEC2ServiceTaskDefinitionPtrOutputWithContext(context.Background()) +} + +func (o EC2ServiceTaskDefinitionOutput) ToEC2ServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) EC2ServiceTaskDefinitionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v EC2ServiceTaskDefinition) *EC2ServiceTaskDefinition { + return &v + }).(EC2ServiceTaskDefinitionPtrOutput) +} + +func (o EC2ServiceTaskDefinitionOutput) ToOutput(ctx context.Context) pulumix.Output[EC2ServiceTaskDefinition] { + return pulumix.Output[EC2ServiceTaskDefinition]{ + OutputState: o.OutputState, + } +} + +// Single container to make a TaskDefinition from. Useful for simple cases where there aren't +// multiple containers, especially when creating a TaskDefinition to call [run] on. +// +// Either [container] or [containers] must be provided. +func (o EC2ServiceTaskDefinitionOutput) Container() TaskDefinitionContainerDefinitionPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *TaskDefinitionContainerDefinition { return v.Container }).(TaskDefinitionContainerDefinitionPtrOutput) +} + +// All the containers to make a TaskDefinition from. Useful when creating a Service that will +// contain many containers within. +// +// Either [container] or [containers] must be provided. +func (o EC2ServiceTaskDefinitionOutput) Containers() TaskDefinitionContainerDefinitionMapOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) map[string]TaskDefinitionContainerDefinition { return v.Containers }).(TaskDefinitionContainerDefinitionMapOutput) +} + +// The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] +func (o EC2ServiceTaskDefinitionOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.Cpu }).(pulumi.StringPtrOutput) +} + +// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. +func (o EC2ServiceTaskDefinitionOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { return v.EphemeralStorage }).(ecs.TaskDefinitionEphemeralStoragePtrOutput) +} + +// The execution role that the Amazon ECS container agent and the Docker daemon can assume. +// Will be created automatically if not defined. +func (o EC2ServiceTaskDefinitionOutput) ExecutionRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { return v.ExecutionRole }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// An optional unique name for your task definition. If not specified, then a default will be created. +func (o EC2ServiceTaskDefinitionOutput) Family() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.Family }).(pulumi.StringPtrOutput) +} + +// Configuration block(s) with Inference Accelerators settings. Detailed below. +func (o EC2ServiceTaskDefinitionOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { + return v.InferenceAccelerators + }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) +} + +// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. +func (o EC2ServiceTaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.IpcMode }).(pulumi.StringPtrOutput) +} + +// A set of volume blocks that containers in your task may use. +func (o EC2ServiceTaskDefinitionOutput) LogGroup() awsx.DefaultLogGroupPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *awsx.DefaultLogGroup { return v.LogGroup }).(awsx.DefaultLogGroupPtrOutput) +} + +// The amount (in MiB) of memory used by the task. If not provided, a default will be computed +// based on the cumulative needs specified by [containerDefinitions] +func (o EC2ServiceTaskDefinitionOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.Memory }).(pulumi.StringPtrOutput) +} + +// Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. +func (o EC2ServiceTaskDefinitionOutput) NetworkMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.NetworkMode }).(pulumi.StringPtrOutput) +} + +// Process namespace to use for the containers in the task. The valid values are `host` and `task`. +func (o EC2ServiceTaskDefinitionOutput) PidMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *string { return v.PidMode }).(pulumi.StringPtrOutput) +} + +// Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. +func (o EC2ServiceTaskDefinitionOutput) PlacementConstraints() ecs.TaskDefinitionPlacementConstraintArrayOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) []ecs.TaskDefinitionPlacementConstraint { + return v.PlacementConstraints + }).(ecs.TaskDefinitionPlacementConstraintArrayOutput) +} + +// Configuration block for the App Mesh proxy. Detailed below. +func (o EC2ServiceTaskDefinitionOutput) ProxyConfiguration() ecs.TaskDefinitionProxyConfigurationPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *ecs.TaskDefinitionProxyConfiguration { return v.ProxyConfiguration }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) +} + +// Configuration block for runtime_platform that containers in your task may use. +func (o EC2ServiceTaskDefinitionOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { return v.RuntimePlatform }).(ecs.TaskDefinitionRuntimePlatformPtrOutput) +} + +// Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. +func (o EC2ServiceTaskDefinitionOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *bool { return v.SkipDestroy }).(pulumi.BoolPtrOutput) +} + +// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o EC2ServiceTaskDefinitionOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// IAM role that allows your Amazon ECS container task to make calls to other AWS services. +// Will be created automatically if not defined. +func (o EC2ServiceTaskDefinitionOutput) TaskRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { return v.TaskRole }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// Configuration block for volumes that containers in your task may use. Detailed below. +func (o EC2ServiceTaskDefinitionOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { + return o.ApplyT(func(v EC2ServiceTaskDefinition) []ecs.TaskDefinitionVolume { return v.Volumes }).(ecs.TaskDefinitionVolumeArrayOutput) +} + +type EC2ServiceTaskDefinitionPtrOutput struct{ *pulumi.OutputState } + +func (EC2ServiceTaskDefinitionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EC2ServiceTaskDefinition)(nil)).Elem() +} + +func (o EC2ServiceTaskDefinitionPtrOutput) ToEC2ServiceTaskDefinitionPtrOutput() EC2ServiceTaskDefinitionPtrOutput { + return o +} + +func (o EC2ServiceTaskDefinitionPtrOutput) ToEC2ServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) EC2ServiceTaskDefinitionPtrOutput { + return o +} + +func (o EC2ServiceTaskDefinitionPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*EC2ServiceTaskDefinition] { + return pulumix.Output[*EC2ServiceTaskDefinition]{ + OutputState: o.OutputState, + } +} + +func (o EC2ServiceTaskDefinitionPtrOutput) Elem() EC2ServiceTaskDefinitionOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) EC2ServiceTaskDefinition { + if v != nil { + return *v + } + var ret EC2ServiceTaskDefinition + return ret + }).(EC2ServiceTaskDefinitionOutput) +} + +// Single container to make a TaskDefinition from. Useful for simple cases where there aren't +// multiple containers, especially when creating a TaskDefinition to call [run] on. +// +// Either [container] or [containers] must be provided. +func (o EC2ServiceTaskDefinitionPtrOutput) Container() TaskDefinitionContainerDefinitionPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *TaskDefinitionContainerDefinition { + if v == nil { + return nil + } + return v.Container + }).(TaskDefinitionContainerDefinitionPtrOutput) +} + +// All the containers to make a TaskDefinition from. Useful when creating a Service that will +// contain many containers within. +// +// Either [container] or [containers] must be provided. +func (o EC2ServiceTaskDefinitionPtrOutput) Containers() TaskDefinitionContainerDefinitionMapOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) map[string]TaskDefinitionContainerDefinition { + if v == nil { + return nil + } + return v.Containers + }).(TaskDefinitionContainerDefinitionMapOutput) +} + +// The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] +func (o EC2ServiceTaskDefinitionPtrOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Cpu + }).(pulumi.StringPtrOutput) +} + +// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. +func (o EC2ServiceTaskDefinitionPtrOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { + if v == nil { + return nil + } + return v.EphemeralStorage + }).(ecs.TaskDefinitionEphemeralStoragePtrOutput) +} + +// The execution role that the Amazon ECS container agent and the Docker daemon can assume. +// Will be created automatically if not defined. +func (o EC2ServiceTaskDefinitionPtrOutput) ExecutionRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { + if v == nil { + return nil + } + return v.ExecutionRole + }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// An optional unique name for your task definition. If not specified, then a default will be created. +func (o EC2ServiceTaskDefinitionPtrOutput) Family() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Family + }).(pulumi.StringPtrOutput) +} + +// Configuration block(s) with Inference Accelerators settings. Detailed below. +func (o EC2ServiceTaskDefinitionPtrOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { + if v == nil { + return nil + } + return v.InferenceAccelerators + }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) +} + +// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. +func (o EC2ServiceTaskDefinitionPtrOutput) IpcMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.IpcMode + }).(pulumi.StringPtrOutput) +} + +// A set of volume blocks that containers in your task may use. +func (o EC2ServiceTaskDefinitionPtrOutput) LogGroup() awsx.DefaultLogGroupPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *awsx.DefaultLogGroup { + if v == nil { + return nil + } + return v.LogGroup + }).(awsx.DefaultLogGroupPtrOutput) +} + +// The amount (in MiB) of memory used by the task. If not provided, a default will be computed +// based on the cumulative needs specified by [containerDefinitions] +func (o EC2ServiceTaskDefinitionPtrOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Memory + }).(pulumi.StringPtrOutput) +} + +// Docker networking mode to use for the containers in the task. Valid values are `none`, `bridge`, `awsvpc`, and `host`. +func (o EC2ServiceTaskDefinitionPtrOutput) NetworkMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.NetworkMode + }).(pulumi.StringPtrOutput) +} + +// Process namespace to use for the containers in the task. The valid values are `host` and `task`. +func (o EC2ServiceTaskDefinitionPtrOutput) PidMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.PidMode + }).(pulumi.StringPtrOutput) +} + +// Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. +func (o EC2ServiceTaskDefinitionPtrOutput) PlacementConstraints() ecs.TaskDefinitionPlacementConstraintArrayOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) []ecs.TaskDefinitionPlacementConstraint { + if v == nil { + return nil + } + return v.PlacementConstraints + }).(ecs.TaskDefinitionPlacementConstraintArrayOutput) +} + +// Configuration block for the App Mesh proxy. Detailed below. +func (o EC2ServiceTaskDefinitionPtrOutput) ProxyConfiguration() ecs.TaskDefinitionProxyConfigurationPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *ecs.TaskDefinitionProxyConfiguration { + if v == nil { + return nil + } + return v.ProxyConfiguration + }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) +} + +// Configuration block for runtime_platform that containers in your task may use. +func (o EC2ServiceTaskDefinitionPtrOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { + if v == nil { + return nil + } + return v.RuntimePlatform + }).(ecs.TaskDefinitionRuntimePlatformPtrOutput) +} + +// Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. +func (o EC2ServiceTaskDefinitionPtrOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *bool { + if v == nil { + return nil + } + return v.SkipDestroy + }).(pulumi.BoolPtrOutput) +} + +// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o EC2ServiceTaskDefinitionPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// IAM role that allows your Amazon ECS container task to make calls to other AWS services. +// Will be created automatically if not defined. +func (o EC2ServiceTaskDefinitionPtrOutput) TaskRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { + if v == nil { + return nil + } + return v.TaskRole + }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// Configuration block for volumes that containers in your task may use. Detailed below. +func (o EC2ServiceTaskDefinitionPtrOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { + return o.ApplyT(func(v *EC2ServiceTaskDefinition) []ecs.TaskDefinitionVolume { + if v == nil { + return nil + } + return v.Volumes + }).(ecs.TaskDefinitionVolumeArrayOutput) +} + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type FargateServiceTaskDefinition struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinition `pulumi:"container"` + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinition `pulumi:"containers"` + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu *string `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage *ecs.TaskDefinitionEphemeralStorage `pulumi:"ephemeralStorage"` + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicy `pulumi:"executionRole"` + // An optional unique name for your task definition. If not specified, then a default will be created. + Family *string `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators []ecs.TaskDefinitionInferenceAccelerator `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode *string `pulumi:"ipcMode"` + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroup `pulumi:"logGroup"` + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory *string `pulumi:"memory"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode *string `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints []ecs.TaskDefinitionPlacementConstraint `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration *ecs.TaskDefinitionProxyConfiguration `pulumi:"proxyConfiguration"` + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform *ecs.TaskDefinitionRuntimePlatform `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy *bool `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicy `pulumi:"taskRole"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes []ecs.TaskDefinitionVolume `pulumi:"volumes"` +} + +// FargateServiceTaskDefinitionInput is an input type that accepts FargateServiceTaskDefinitionArgs and FargateServiceTaskDefinitionOutput values. +// You can construct a concrete instance of `FargateServiceTaskDefinitionInput` via: +// +// FargateServiceTaskDefinitionArgs{...} +type FargateServiceTaskDefinitionInput interface { + pulumi.Input + + ToFargateServiceTaskDefinitionOutput() FargateServiceTaskDefinitionOutput + ToFargateServiceTaskDefinitionOutputWithContext(context.Context) FargateServiceTaskDefinitionOutput +} + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type FargateServiceTaskDefinitionArgs struct { + // Single container to make a TaskDefinition from. Useful for simple cases where there aren't + // multiple containers, especially when creating a TaskDefinition to call [run] on. + // + // Either [container] or [containers] must be provided. + Container *TaskDefinitionContainerDefinitionArgs `pulumi:"container"` + // All the containers to make a TaskDefinition from. Useful when creating a Service that will + // contain many containers within. + // + // Either [container] or [containers] must be provided. + Containers map[string]TaskDefinitionContainerDefinitionArgs `pulumi:"containers"` + // The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] + Cpu pulumi.StringPtrInput `pulumi:"cpu"` + // The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. + EphemeralStorage ecs.TaskDefinitionEphemeralStoragePtrInput `pulumi:"ephemeralStorage"` + // The execution role that the Amazon ECS container agent and the Docker daemon can assume. + // Will be created automatically if not defined. + ExecutionRole *awsx.DefaultRoleWithPolicyArgs `pulumi:"executionRole"` + // An optional unique name for your task definition. If not specified, then a default will be created. + Family pulumi.StringPtrInput `pulumi:"family"` + // Configuration block(s) with Inference Accelerators settings. Detailed below. + InferenceAccelerators ecs.TaskDefinitionInferenceAcceleratorArrayInput `pulumi:"inferenceAccelerators"` + // IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. + IpcMode pulumi.StringPtrInput `pulumi:"ipcMode"` + // A set of volume blocks that containers in your task may use. + LogGroup *awsx.DefaultLogGroupArgs `pulumi:"logGroup"` + // The amount (in MiB) of memory used by the task. If not provided, a default will be computed + // based on the cumulative needs specified by [containerDefinitions] + Memory pulumi.StringPtrInput `pulumi:"memory"` + // Process namespace to use for the containers in the task. The valid values are `host` and `task`. + PidMode pulumi.StringPtrInput `pulumi:"pidMode"` + // Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. + PlacementConstraints ecs.TaskDefinitionPlacementConstraintArrayInput `pulumi:"placementConstraints"` + // Configuration block for the App Mesh proxy. Detailed below. + ProxyConfiguration ecs.TaskDefinitionProxyConfigurationPtrInput `pulumi:"proxyConfiguration"` + // Configuration block for runtime_platform that containers in your task may use. + RuntimePlatform ecs.TaskDefinitionRuntimePlatformPtrInput `pulumi:"runtimePlatform"` + // Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. + SkipDestroy pulumi.BoolPtrInput `pulumi:"skipDestroy"` + // Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput `pulumi:"tags"` + // IAM role that allows your Amazon ECS container task to make calls to other AWS services. + // Will be created automatically if not defined. + TaskRole *awsx.DefaultRoleWithPolicyArgs `pulumi:"taskRole"` + // Configuration block for volumes that containers in your task may use. Detailed below. + Volumes ecs.TaskDefinitionVolumeArrayInput `pulumi:"volumes"` +} + +func (FargateServiceTaskDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FargateServiceTaskDefinition)(nil)).Elem() +} + +func (i FargateServiceTaskDefinitionArgs) ToFargateServiceTaskDefinitionOutput() FargateServiceTaskDefinitionOutput { + return i.ToFargateServiceTaskDefinitionOutputWithContext(context.Background()) +} + +func (i FargateServiceTaskDefinitionArgs) ToFargateServiceTaskDefinitionOutputWithContext(ctx context.Context) FargateServiceTaskDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateServiceTaskDefinitionOutput) +} + +func (i FargateServiceTaskDefinitionArgs) ToOutput(ctx context.Context) pulumix.Output[FargateServiceTaskDefinition] { + return pulumix.Output[FargateServiceTaskDefinition]{ + OutputState: i.ToFargateServiceTaskDefinitionOutputWithContext(ctx).OutputState, + } +} + +func (i FargateServiceTaskDefinitionArgs) ToFargateServiceTaskDefinitionPtrOutput() FargateServiceTaskDefinitionPtrOutput { + return i.ToFargateServiceTaskDefinitionPtrOutputWithContext(context.Background()) +} + +func (i FargateServiceTaskDefinitionArgs) ToFargateServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) FargateServiceTaskDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateServiceTaskDefinitionOutput).ToFargateServiceTaskDefinitionPtrOutputWithContext(ctx) +} + +// FargateServiceTaskDefinitionPtrInput is an input type that accepts FargateServiceTaskDefinitionArgs, FargateServiceTaskDefinitionPtr and FargateServiceTaskDefinitionPtrOutput values. +// You can construct a concrete instance of `FargateServiceTaskDefinitionPtrInput` via: +// +// FargateServiceTaskDefinitionArgs{...} +// +// or: +// +// nil +type FargateServiceTaskDefinitionPtrInput interface { + pulumi.Input + + ToFargateServiceTaskDefinitionPtrOutput() FargateServiceTaskDefinitionPtrOutput + ToFargateServiceTaskDefinitionPtrOutputWithContext(context.Context) FargateServiceTaskDefinitionPtrOutput +} + +type fargateServiceTaskDefinitionPtrType FargateServiceTaskDefinitionArgs + +func FargateServiceTaskDefinitionPtr(v *FargateServiceTaskDefinitionArgs) FargateServiceTaskDefinitionPtrInput { + return (*fargateServiceTaskDefinitionPtrType)(v) +} + +func (*fargateServiceTaskDefinitionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FargateServiceTaskDefinition)(nil)).Elem() +} + +func (i *fargateServiceTaskDefinitionPtrType) ToFargateServiceTaskDefinitionPtrOutput() FargateServiceTaskDefinitionPtrOutput { + return i.ToFargateServiceTaskDefinitionPtrOutputWithContext(context.Background()) +} + +func (i *fargateServiceTaskDefinitionPtrType) ToFargateServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) FargateServiceTaskDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FargateServiceTaskDefinitionPtrOutput) +} + +func (i *fargateServiceTaskDefinitionPtrType) ToOutput(ctx context.Context) pulumix.Output[*FargateServiceTaskDefinition] { + return pulumix.Output[*FargateServiceTaskDefinition]{ + OutputState: i.ToFargateServiceTaskDefinitionPtrOutputWithContext(ctx).OutputState, + } +} + +// Create a TaskDefinition resource with the given unique name, arguments, and options. +// Creates required log-group and task & execution roles. +// Presents required Service load balancers if target group included in port mappings. +type FargateServiceTaskDefinitionOutput struct{ *pulumi.OutputState } + +func (FargateServiceTaskDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FargateServiceTaskDefinition)(nil)).Elem() +} + +func (o FargateServiceTaskDefinitionOutput) ToFargateServiceTaskDefinitionOutput() FargateServiceTaskDefinitionOutput { + return o +} + +func (o FargateServiceTaskDefinitionOutput) ToFargateServiceTaskDefinitionOutputWithContext(ctx context.Context) FargateServiceTaskDefinitionOutput { + return o +} + +func (o FargateServiceTaskDefinitionOutput) ToFargateServiceTaskDefinitionPtrOutput() FargateServiceTaskDefinitionPtrOutput { + return o.ToFargateServiceTaskDefinitionPtrOutputWithContext(context.Background()) +} + +func (o FargateServiceTaskDefinitionOutput) ToFargateServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) FargateServiceTaskDefinitionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FargateServiceTaskDefinition) *FargateServiceTaskDefinition { + return &v + }).(FargateServiceTaskDefinitionPtrOutput) +} + +func (o FargateServiceTaskDefinitionOutput) ToOutput(ctx context.Context) pulumix.Output[FargateServiceTaskDefinition] { + return pulumix.Output[FargateServiceTaskDefinition]{ + OutputState: o.OutputState, + } +} + +// Single container to make a TaskDefinition from. Useful for simple cases where there aren't +// multiple containers, especially when creating a TaskDefinition to call [run] on. +// +// Either [container] or [containers] must be provided. +func (o FargateServiceTaskDefinitionOutput) Container() TaskDefinitionContainerDefinitionPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *TaskDefinitionContainerDefinition { return v.Container }).(TaskDefinitionContainerDefinitionPtrOutput) +} + +// All the containers to make a TaskDefinition from. Useful when creating a Service that will +// contain many containers within. +// +// Either [container] or [containers] must be provided. +func (o FargateServiceTaskDefinitionOutput) Containers() TaskDefinitionContainerDefinitionMapOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) map[string]TaskDefinitionContainerDefinition { return v.Containers }).(TaskDefinitionContainerDefinitionMapOutput) +} + +// The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] +func (o FargateServiceTaskDefinitionOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.Cpu }).(pulumi.StringPtrOutput) +} + +// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. +func (o FargateServiceTaskDefinitionOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { return v.EphemeralStorage }).(ecs.TaskDefinitionEphemeralStoragePtrOutput) +} + +// The execution role that the Amazon ECS container agent and the Docker daemon can assume. +// Will be created automatically if not defined. +func (o FargateServiceTaskDefinitionOutput) ExecutionRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { return v.ExecutionRole }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// An optional unique name for your task definition. If not specified, then a default will be created. +func (o FargateServiceTaskDefinitionOutput) Family() pulumi.StringPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.Family }).(pulumi.StringPtrOutput) +} + +// Configuration block(s) with Inference Accelerators settings. Detailed below. +func (o FargateServiceTaskDefinitionOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { + return v.InferenceAccelerators + }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) +} + +// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. +func (o FargateServiceTaskDefinitionOutput) IpcMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.IpcMode }).(pulumi.StringPtrOutput) +} + +// A set of volume blocks that containers in your task may use. +func (o FargateServiceTaskDefinitionOutput) LogGroup() awsx.DefaultLogGroupPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *awsx.DefaultLogGroup { return v.LogGroup }).(awsx.DefaultLogGroupPtrOutput) +} + +// The amount (in MiB) of memory used by the task. If not provided, a default will be computed +// based on the cumulative needs specified by [containerDefinitions] +func (o FargateServiceTaskDefinitionOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.Memory }).(pulumi.StringPtrOutput) +} + +// Process namespace to use for the containers in the task. The valid values are `host` and `task`. +func (o FargateServiceTaskDefinitionOutput) PidMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *string { return v.PidMode }).(pulumi.StringPtrOutput) +} + +// Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. +func (o FargateServiceTaskDefinitionOutput) PlacementConstraints() ecs.TaskDefinitionPlacementConstraintArrayOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) []ecs.TaskDefinitionPlacementConstraint { + return v.PlacementConstraints + }).(ecs.TaskDefinitionPlacementConstraintArrayOutput) +} + +// Configuration block for the App Mesh proxy. Detailed below. +func (o FargateServiceTaskDefinitionOutput) ProxyConfiguration() ecs.TaskDefinitionProxyConfigurationPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *ecs.TaskDefinitionProxyConfiguration { + return v.ProxyConfiguration + }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) +} + +// Configuration block for runtime_platform that containers in your task may use. +func (o FargateServiceTaskDefinitionOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { return v.RuntimePlatform }).(ecs.TaskDefinitionRuntimePlatformPtrOutput) +} + +// Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. +func (o FargateServiceTaskDefinitionOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *bool { return v.SkipDestroy }).(pulumi.BoolPtrOutput) +} + +// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o FargateServiceTaskDefinitionOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// IAM role that allows your Amazon ECS container task to make calls to other AWS services. +// Will be created automatically if not defined. +func (o FargateServiceTaskDefinitionOutput) TaskRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { return v.TaskRole }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// Configuration block for volumes that containers in your task may use. Detailed below. +func (o FargateServiceTaskDefinitionOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { + return o.ApplyT(func(v FargateServiceTaskDefinition) []ecs.TaskDefinitionVolume { return v.Volumes }).(ecs.TaskDefinitionVolumeArrayOutput) +} + +type FargateServiceTaskDefinitionPtrOutput struct{ *pulumi.OutputState } + +func (FargateServiceTaskDefinitionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FargateServiceTaskDefinition)(nil)).Elem() +} + +func (o FargateServiceTaskDefinitionPtrOutput) ToFargateServiceTaskDefinitionPtrOutput() FargateServiceTaskDefinitionPtrOutput { + return o +} + +func (o FargateServiceTaskDefinitionPtrOutput) ToFargateServiceTaskDefinitionPtrOutputWithContext(ctx context.Context) FargateServiceTaskDefinitionPtrOutput { + return o +} + +func (o FargateServiceTaskDefinitionPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*FargateServiceTaskDefinition] { + return pulumix.Output[*FargateServiceTaskDefinition]{ + OutputState: o.OutputState, + } +} + +func (o FargateServiceTaskDefinitionPtrOutput) Elem() FargateServiceTaskDefinitionOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) FargateServiceTaskDefinition { + if v != nil { + return *v + } + var ret FargateServiceTaskDefinition + return ret + }).(FargateServiceTaskDefinitionOutput) +} + +// Single container to make a TaskDefinition from. Useful for simple cases where there aren't +// multiple containers, especially when creating a TaskDefinition to call [run] on. +// +// Either [container] or [containers] must be provided. +func (o FargateServiceTaskDefinitionPtrOutput) Container() TaskDefinitionContainerDefinitionPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *TaskDefinitionContainerDefinition { + if v == nil { + return nil + } + return v.Container + }).(TaskDefinitionContainerDefinitionPtrOutput) +} + +// All the containers to make a TaskDefinition from. Useful when creating a Service that will +// contain many containers within. +// +// Either [container] or [containers] must be provided. +func (o FargateServiceTaskDefinitionPtrOutput) Containers() TaskDefinitionContainerDefinitionMapOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) map[string]TaskDefinitionContainerDefinition { + if v == nil { + return nil + } + return v.Containers + }).(TaskDefinitionContainerDefinitionMapOutput) +} + +// The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions] +func (o FargateServiceTaskDefinitionPtrOutput) Cpu() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Cpu + }).(pulumi.StringPtrOutput) +} + +// The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage. +func (o FargateServiceTaskDefinitionPtrOutput) EphemeralStorage() ecs.TaskDefinitionEphemeralStoragePtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *ecs.TaskDefinitionEphemeralStorage { + if v == nil { + return nil + } + return v.EphemeralStorage + }).(ecs.TaskDefinitionEphemeralStoragePtrOutput) +} + +// The execution role that the Amazon ECS container agent and the Docker daemon can assume. +// Will be created automatically if not defined. +func (o FargateServiceTaskDefinitionPtrOutput) ExecutionRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { + if v == nil { + return nil + } + return v.ExecutionRole + }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// An optional unique name for your task definition. If not specified, then a default will be created. +func (o FargateServiceTaskDefinitionPtrOutput) Family() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Family + }).(pulumi.StringPtrOutput) +} + +// Configuration block(s) with Inference Accelerators settings. Detailed below. +func (o FargateServiceTaskDefinitionPtrOutput) InferenceAccelerators() ecs.TaskDefinitionInferenceAcceleratorArrayOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) []ecs.TaskDefinitionInferenceAccelerator { + if v == nil { + return nil + } + return v.InferenceAccelerators + }).(ecs.TaskDefinitionInferenceAcceleratorArrayOutput) +} + +// IPC resource namespace to be used for the containers in the task The valid values are `host`, `task`, and `none`. +func (o FargateServiceTaskDefinitionPtrOutput) IpcMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.IpcMode + }).(pulumi.StringPtrOutput) +} + +// A set of volume blocks that containers in your task may use. +func (o FargateServiceTaskDefinitionPtrOutput) LogGroup() awsx.DefaultLogGroupPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *awsx.DefaultLogGroup { + if v == nil { + return nil + } + return v.LogGroup + }).(awsx.DefaultLogGroupPtrOutput) +} + +// The amount (in MiB) of memory used by the task. If not provided, a default will be computed +// based on the cumulative needs specified by [containerDefinitions] +func (o FargateServiceTaskDefinitionPtrOutput) Memory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.Memory + }).(pulumi.StringPtrOutput) +} + +// Process namespace to use for the containers in the task. The valid values are `host` and `task`. +func (o FargateServiceTaskDefinitionPtrOutput) PidMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *string { + if v == nil { + return nil + } + return v.PidMode + }).(pulumi.StringPtrOutput) +} + +// Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below. +func (o FargateServiceTaskDefinitionPtrOutput) PlacementConstraints() ecs.TaskDefinitionPlacementConstraintArrayOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) []ecs.TaskDefinitionPlacementConstraint { + if v == nil { + return nil + } + return v.PlacementConstraints + }).(ecs.TaskDefinitionPlacementConstraintArrayOutput) +} + +// Configuration block for the App Mesh proxy. Detailed below. +func (o FargateServiceTaskDefinitionPtrOutput) ProxyConfiguration() ecs.TaskDefinitionProxyConfigurationPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *ecs.TaskDefinitionProxyConfiguration { + if v == nil { + return nil + } + return v.ProxyConfiguration + }).(ecs.TaskDefinitionProxyConfigurationPtrOutput) +} + +// Configuration block for runtime_platform that containers in your task may use. +func (o FargateServiceTaskDefinitionPtrOutput) RuntimePlatform() ecs.TaskDefinitionRuntimePlatformPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *ecs.TaskDefinitionRuntimePlatform { + if v == nil { + return nil + } + return v.RuntimePlatform + }).(ecs.TaskDefinitionRuntimePlatformPtrOutput) +} + +// Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is `false`. +func (o FargateServiceTaskDefinitionPtrOutput) SkipDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *bool { + if v == nil { + return nil + } + return v.SkipDestroy + }).(pulumi.BoolPtrOutput) +} + +// Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o FargateServiceTaskDefinitionPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// IAM role that allows your Amazon ECS container task to make calls to other AWS services. +// Will be created automatically if not defined. +func (o FargateServiceTaskDefinitionPtrOutput) TaskRole() awsx.DefaultRoleWithPolicyPtrOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) *awsx.DefaultRoleWithPolicy { + if v == nil { + return nil + } + return v.TaskRole + }).(awsx.DefaultRoleWithPolicyPtrOutput) +} + +// Configuration block for volumes that containers in your task may use. Detailed below. +func (o FargateServiceTaskDefinitionPtrOutput) Volumes() ecs.TaskDefinitionVolumeArrayOutput { + return o.ApplyT(func(v *FargateServiceTaskDefinition) []ecs.TaskDefinitionVolume { + if v == nil { + return nil + } + return v.Volumes + }).(ecs.TaskDefinitionVolumeArrayOutput) +} + +// List of container definitions that are passed to the Docker daemon on a container instance +type TaskDefinitionContainerDefinition struct { + Command []string `pulumi:"command"` + Cpu *int `pulumi:"cpu"` + DependsOn []TaskDefinitionContainerDependency `pulumi:"dependsOn"` + DisableNetworking *bool `pulumi:"disableNetworking"` + DnsSearchDomains []string `pulumi:"dnsSearchDomains"` + DnsServers []string `pulumi:"dnsServers"` + DockerLabels interface{} `pulumi:"dockerLabels"` + DockerSecurityOptions []string `pulumi:"dockerSecurityOptions"` + EntryPoint []string `pulumi:"entryPoint"` + // The environment variables to pass to a container + Environment []TaskDefinitionKeyValuePair `pulumi:"environment"` + // The list of one or more files that contain the environment variables to pass to a container + EnvironmentFiles []TaskDefinitionEnvironmentFile `pulumi:"environmentFiles"` + Essential *bool `pulumi:"essential"` + ExtraHosts []TaskDefinitionHostEntry `pulumi:"extraHosts"` + FirelensConfiguration *TaskDefinitionFirelensConfiguration `pulumi:"firelensConfiguration"` + HealthCheck *TaskDefinitionHealthCheck `pulumi:"healthCheck"` + Hostname *string `pulumi:"hostname"` + // The image used to start a container. This string is passed directly to the Docker daemon. + Image string `pulumi:"image"` + Interactive *bool `pulumi:"interactive"` + Links []string `pulumi:"links"` + LinuxParameters *TaskDefinitionLinuxParameters `pulumi:"linuxParameters"` + LogConfiguration *TaskDefinitionLogConfiguration `pulumi:"logConfiguration"` + // The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. + Memory *int `pulumi:"memory"` + MemoryReservation *int `pulumi:"memoryReservation"` + MountPoints []TaskDefinitionMountPoint `pulumi:"mountPoints"` + // The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed + Name string `pulumi:"name"` + // Port mappings allow containers to access ports on the host container instance to send or receive traffic. + PortMappings []TaskDefinitionPortMapping `pulumi:"portMappings"` + Privileged *bool `pulumi:"privileged"` + PseudoTerminal *bool `pulumi:"pseudoTerminal"` + ReadonlyRootFilesystem *bool `pulumi:"readonlyRootFilesystem"` + RepositoryCredentials *TaskDefinitionRepositoryCredentials `pulumi:"repositoryCredentials"` + ResourceRequirements []TaskDefinitionResourceRequirement `pulumi:"resourceRequirements"` + Secrets []TaskDefinitionSecret `pulumi:"secrets"` + StartTimeout *int `pulumi:"startTimeout"` + StopTimeout *int `pulumi:"stopTimeout"` + SystemControls []TaskDefinitionSystemControl `pulumi:"systemControls"` + Ulimits []TaskDefinitionUlimit `pulumi:"ulimits"` + User *string `pulumi:"user"` + VolumesFrom []TaskDefinitionVolumeFrom `pulumi:"volumesFrom"` + WorkingDirectory *string `pulumi:"workingDirectory"` +} + +// TaskDefinitionContainerDefinitionInput is an input type that accepts TaskDefinitionContainerDefinitionArgs and TaskDefinitionContainerDefinitionOutput values. +// You can construct a concrete instance of `TaskDefinitionContainerDefinitionInput` via: +// +// TaskDefinitionContainerDefinitionArgs{...} +type TaskDefinitionContainerDefinitionInput interface { + pulumi.Input + + ToTaskDefinitionContainerDefinitionOutput() TaskDefinitionContainerDefinitionOutput + ToTaskDefinitionContainerDefinitionOutputWithContext(context.Context) TaskDefinitionContainerDefinitionOutput +} + +// List of container definitions that are passed to the Docker daemon on a container instance +type TaskDefinitionContainerDefinitionArgs struct { + Command pulumi.StringArrayInput `pulumi:"command"` + Cpu pulumi.IntPtrInput `pulumi:"cpu"` + DependsOn TaskDefinitionContainerDependencyArrayInput `pulumi:"dependsOn"` + DisableNetworking pulumi.BoolPtrInput `pulumi:"disableNetworking"` + DnsSearchDomains pulumi.StringArrayInput `pulumi:"dnsSearchDomains"` + DnsServers pulumi.StringArrayInput `pulumi:"dnsServers"` + DockerLabels pulumi.Input `pulumi:"dockerLabels"` + DockerSecurityOptions pulumi.StringArrayInput `pulumi:"dockerSecurityOptions"` + EntryPoint pulumi.StringArrayInput `pulumi:"entryPoint"` + // The environment variables to pass to a container + Environment TaskDefinitionKeyValuePairArrayInput `pulumi:"environment"` + // The list of one or more files that contain the environment variables to pass to a container + EnvironmentFiles TaskDefinitionEnvironmentFileArrayInput `pulumi:"environmentFiles"` + Essential pulumi.BoolPtrInput `pulumi:"essential"` + ExtraHosts TaskDefinitionHostEntryArrayInput `pulumi:"extraHosts"` + FirelensConfiguration TaskDefinitionFirelensConfigurationPtrInput `pulumi:"firelensConfiguration"` + HealthCheck TaskDefinitionHealthCheckPtrInput `pulumi:"healthCheck"` + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // The image used to start a container. This string is passed directly to the Docker daemon. + Image pulumi.StringInput `pulumi:"image"` + Interactive pulumi.BoolPtrInput `pulumi:"interactive"` + Links pulumi.StringArrayInput `pulumi:"links"` + LinuxParameters TaskDefinitionLinuxParametersPtrInput `pulumi:"linuxParameters"` + LogConfiguration TaskDefinitionLogConfigurationPtrInput `pulumi:"logConfiguration"` + // The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. + Memory pulumi.IntPtrInput `pulumi:"memory"` + MemoryReservation pulumi.IntPtrInput `pulumi:"memoryReservation"` + MountPoints TaskDefinitionMountPointArrayInput `pulumi:"mountPoints"` + // The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed + Name pulumi.StringInput `pulumi:"name"` + // Port mappings allow containers to access ports on the host container instance to send or receive traffic. + PortMappings TaskDefinitionPortMappingArrayInput `pulumi:"portMappings"` + Privileged pulumi.BoolPtrInput `pulumi:"privileged"` + PseudoTerminal pulumi.BoolPtrInput `pulumi:"pseudoTerminal"` + ReadonlyRootFilesystem pulumi.BoolPtrInput `pulumi:"readonlyRootFilesystem"` + RepositoryCredentials TaskDefinitionRepositoryCredentialsPtrInput `pulumi:"repositoryCredentials"` + ResourceRequirements TaskDefinitionResourceRequirementArrayInput `pulumi:"resourceRequirements"` + Secrets TaskDefinitionSecretArrayInput `pulumi:"secrets"` + StartTimeout pulumi.IntPtrInput `pulumi:"startTimeout"` + StopTimeout pulumi.IntPtrInput `pulumi:"stopTimeout"` + SystemControls TaskDefinitionSystemControlArrayInput `pulumi:"systemControls"` + Ulimits TaskDefinitionUlimitArrayInput `pulumi:"ulimits"` + User pulumi.StringPtrInput `pulumi:"user"` + VolumesFrom TaskDefinitionVolumeFromArrayInput `pulumi:"volumesFrom"` + WorkingDirectory pulumi.StringPtrInput `pulumi:"workingDirectory"` +} + +func (TaskDefinitionContainerDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionContainerDefinition)(nil)).Elem() +} + +func (i TaskDefinitionContainerDefinitionArgs) ToTaskDefinitionContainerDefinitionOutput() TaskDefinitionContainerDefinitionOutput { + return i.ToTaskDefinitionContainerDefinitionOutputWithContext(context.Background()) +} + +func (i TaskDefinitionContainerDefinitionArgs) ToTaskDefinitionContainerDefinitionOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionContainerDefinitionOutput) +} + +func (i TaskDefinitionContainerDefinitionArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionContainerDefinition] { + return pulumix.Output[TaskDefinitionContainerDefinition]{ + OutputState: i.ToTaskDefinitionContainerDefinitionOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionContainerDefinitionArgs) ToTaskDefinitionContainerDefinitionPtrOutput() TaskDefinitionContainerDefinitionPtrOutput { + return i.ToTaskDefinitionContainerDefinitionPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionContainerDefinitionArgs) ToTaskDefinitionContainerDefinitionPtrOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionContainerDefinitionOutput).ToTaskDefinitionContainerDefinitionPtrOutputWithContext(ctx) +} + +// TaskDefinitionContainerDefinitionPtrInput is an input type that accepts TaskDefinitionContainerDefinitionArgs, TaskDefinitionContainerDefinitionPtr and TaskDefinitionContainerDefinitionPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionContainerDefinitionPtrInput` via: +// +// TaskDefinitionContainerDefinitionArgs{...} +// +// or: +// +// nil +type TaskDefinitionContainerDefinitionPtrInput interface { + pulumi.Input + + ToTaskDefinitionContainerDefinitionPtrOutput() TaskDefinitionContainerDefinitionPtrOutput + ToTaskDefinitionContainerDefinitionPtrOutputWithContext(context.Context) TaskDefinitionContainerDefinitionPtrOutput +} + +type taskDefinitionContainerDefinitionPtrType TaskDefinitionContainerDefinitionArgs + +func TaskDefinitionContainerDefinitionPtr(v *TaskDefinitionContainerDefinitionArgs) TaskDefinitionContainerDefinitionPtrInput { + return (*taskDefinitionContainerDefinitionPtrType)(v) +} + +func (*taskDefinitionContainerDefinitionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionContainerDefinition)(nil)).Elem() +} + +func (i *taskDefinitionContainerDefinitionPtrType) ToTaskDefinitionContainerDefinitionPtrOutput() TaskDefinitionContainerDefinitionPtrOutput { + return i.ToTaskDefinitionContainerDefinitionPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionContainerDefinitionPtrType) ToTaskDefinitionContainerDefinitionPtrOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionContainerDefinitionPtrOutput) +} + +func (i *taskDefinitionContainerDefinitionPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionContainerDefinition] { + return pulumix.Output[*TaskDefinitionContainerDefinition]{ + OutputState: i.ToTaskDefinitionContainerDefinitionPtrOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionContainerDefinitionMapInput is an input type that accepts TaskDefinitionContainerDefinitionMap and TaskDefinitionContainerDefinitionMapOutput values. +// You can construct a concrete instance of `TaskDefinitionContainerDefinitionMapInput` via: +// +// TaskDefinitionContainerDefinitionMap{ "key": TaskDefinitionContainerDefinitionArgs{...} } +type TaskDefinitionContainerDefinitionMapInput interface { + pulumi.Input + + ToTaskDefinitionContainerDefinitionMapOutput() TaskDefinitionContainerDefinitionMapOutput + ToTaskDefinitionContainerDefinitionMapOutputWithContext(context.Context) TaskDefinitionContainerDefinitionMapOutput +} + +type TaskDefinitionContainerDefinitionMap map[string]TaskDefinitionContainerDefinitionInput + +func (TaskDefinitionContainerDefinitionMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]TaskDefinitionContainerDefinition)(nil)).Elem() +} + +func (i TaskDefinitionContainerDefinitionMap) ToTaskDefinitionContainerDefinitionMapOutput() TaskDefinitionContainerDefinitionMapOutput { + return i.ToTaskDefinitionContainerDefinitionMapOutputWithContext(context.Background()) +} + +func (i TaskDefinitionContainerDefinitionMap) ToTaskDefinitionContainerDefinitionMapOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionContainerDefinitionMapOutput) +} + +func (i TaskDefinitionContainerDefinitionMap) ToOutput(ctx context.Context) pulumix.Output[map[string]TaskDefinitionContainerDefinition] { + return pulumix.Output[map[string]TaskDefinitionContainerDefinition]{ + OutputState: i.ToTaskDefinitionContainerDefinitionMapOutputWithContext(ctx).OutputState, + } +} + +// List of container definitions that are passed to the Docker daemon on a container instance +type TaskDefinitionContainerDefinitionOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionContainerDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionContainerDefinition)(nil)).Elem() +} + +func (o TaskDefinitionContainerDefinitionOutput) ToTaskDefinitionContainerDefinitionOutput() TaskDefinitionContainerDefinitionOutput { + return o +} + +func (o TaskDefinitionContainerDefinitionOutput) ToTaskDefinitionContainerDefinitionOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionOutput { + return o +} + +func (o TaskDefinitionContainerDefinitionOutput) ToTaskDefinitionContainerDefinitionPtrOutput() TaskDefinitionContainerDefinitionPtrOutput { + return o.ToTaskDefinitionContainerDefinitionPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionContainerDefinitionOutput) ToTaskDefinitionContainerDefinitionPtrOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionContainerDefinition) *TaskDefinitionContainerDefinition { + return &v + }).(TaskDefinitionContainerDefinitionPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionContainerDefinition] { + return pulumix.Output[TaskDefinitionContainerDefinition]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionContainerDefinitionOutput) Command() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.Command }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Cpu() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.Cpu }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) DependsOn() TaskDefinitionContainerDependencyArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionContainerDependency { return v.DependsOn }).(TaskDefinitionContainerDependencyArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) DisableNetworking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *bool { return v.DisableNetworking }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) DnsSearchDomains() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.DnsSearchDomains }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) DnsServers() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.DnsServers }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) DockerLabels() pulumi.AnyOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) interface{} { return v.DockerLabels }).(pulumi.AnyOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) DockerSecurityOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.DockerSecurityOptions }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) EntryPoint() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.EntryPoint }).(pulumi.StringArrayOutput) +} + +// The environment variables to pass to a container +func (o TaskDefinitionContainerDefinitionOutput) Environment() TaskDefinitionKeyValuePairArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionKeyValuePair { return v.Environment }).(TaskDefinitionKeyValuePairArrayOutput) +} + +// The list of one or more files that contain the environment variables to pass to a container +func (o TaskDefinitionContainerDefinitionOutput) EnvironmentFiles() TaskDefinitionEnvironmentFileArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionEnvironmentFile { return v.EnvironmentFiles }).(TaskDefinitionEnvironmentFileArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Essential() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *bool { return v.Essential }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) ExtraHosts() TaskDefinitionHostEntryArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionHostEntry { return v.ExtraHosts }).(TaskDefinitionHostEntryArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) FirelensConfiguration() TaskDefinitionFirelensConfigurationPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *TaskDefinitionFirelensConfiguration { + return v.FirelensConfiguration + }).(TaskDefinitionFirelensConfigurationPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) HealthCheck() TaskDefinitionHealthCheckPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *TaskDefinitionHealthCheck { return v.HealthCheck }).(TaskDefinitionHealthCheckPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +// The image used to start a container. This string is passed directly to the Docker daemon. +func (o TaskDefinitionContainerDefinitionOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) string { return v.Image }).(pulumi.StringOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Interactive() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *bool { return v.Interactive }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Links() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []string { return v.Links }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) LinuxParameters() TaskDefinitionLinuxParametersPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *TaskDefinitionLinuxParameters { return v.LinuxParameters }).(TaskDefinitionLinuxParametersPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) LogConfiguration() TaskDefinitionLogConfigurationPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *TaskDefinitionLogConfiguration { return v.LogConfiguration }).(TaskDefinitionLogConfigurationPtrOutput) +} + +// The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. +func (o TaskDefinitionContainerDefinitionOutput) Memory() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.Memory }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) MemoryReservation() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.MemoryReservation }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) MountPoints() TaskDefinitionMountPointArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionMountPoint { return v.MountPoints }).(TaskDefinitionMountPointArrayOutput) +} + +// The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed +func (o TaskDefinitionContainerDefinitionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) string { return v.Name }).(pulumi.StringOutput) +} + +// Port mappings allow containers to access ports on the host container instance to send or receive traffic. +func (o TaskDefinitionContainerDefinitionOutput) PortMappings() TaskDefinitionPortMappingArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionPortMapping { return v.PortMappings }).(TaskDefinitionPortMappingArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Privileged() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *bool { return v.Privileged }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) PseudoTerminal() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *bool { return v.PseudoTerminal }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) ReadonlyRootFilesystem() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *bool { return v.ReadonlyRootFilesystem }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) RepositoryCredentials() TaskDefinitionRepositoryCredentialsPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *TaskDefinitionRepositoryCredentials { + return v.RepositoryCredentials + }).(TaskDefinitionRepositoryCredentialsPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) ResourceRequirements() TaskDefinitionResourceRequirementArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionResourceRequirement { + return v.ResourceRequirements + }).(TaskDefinitionResourceRequirementArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Secrets() TaskDefinitionSecretArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionSecret { return v.Secrets }).(TaskDefinitionSecretArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) StartTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.StartTimeout }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) StopTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *int { return v.StopTimeout }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) SystemControls() TaskDefinitionSystemControlArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionSystemControl { return v.SystemControls }).(TaskDefinitionSystemControlArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) Ulimits() TaskDefinitionUlimitArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionUlimit { return v.Ulimits }).(TaskDefinitionUlimitArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *string { return v.User }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) VolumesFrom() TaskDefinitionVolumeFromArrayOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) []TaskDefinitionVolumeFrom { return v.VolumesFrom }).(TaskDefinitionVolumeFromArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionOutput) WorkingDirectory() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDefinition) *string { return v.WorkingDirectory }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionContainerDefinitionPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionContainerDefinitionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionContainerDefinition)(nil)).Elem() +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) ToTaskDefinitionContainerDefinitionPtrOutput() TaskDefinitionContainerDefinitionPtrOutput { + return o +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) ToTaskDefinitionContainerDefinitionPtrOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionPtrOutput { + return o +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionContainerDefinition] { + return pulumix.Output[*TaskDefinitionContainerDefinition]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Elem() TaskDefinitionContainerDefinitionOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) TaskDefinitionContainerDefinition { + if v != nil { + return *v + } + var ret TaskDefinitionContainerDefinition + return ret + }).(TaskDefinitionContainerDefinitionOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Command() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []string { + if v == nil { + return nil + } + return v.Command + }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Cpu() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *int { + if v == nil { + return nil + } + return v.Cpu + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) DependsOn() TaskDefinitionContainerDependencyArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionContainerDependency { + if v == nil { + return nil + } + return v.DependsOn + }).(TaskDefinitionContainerDependencyArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) DisableNetworking() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *bool { + if v == nil { + return nil + } + return v.DisableNetworking + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) DnsSearchDomains() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []string { + if v == nil { + return nil + } + return v.DnsSearchDomains + }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) DnsServers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []string { + if v == nil { + return nil + } + return v.DnsServers + }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) DockerLabels() pulumi.AnyOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) interface{} { + if v == nil { + return nil + } + return v.DockerLabels + }).(pulumi.AnyOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) DockerSecurityOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []string { + if v == nil { + return nil + } + return v.DockerSecurityOptions + }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) EntryPoint() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []string { + if v == nil { + return nil + } + return v.EntryPoint + }).(pulumi.StringArrayOutput) +} + +// The environment variables to pass to a container +func (o TaskDefinitionContainerDefinitionPtrOutput) Environment() TaskDefinitionKeyValuePairArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionKeyValuePair { + if v == nil { + return nil + } + return v.Environment + }).(TaskDefinitionKeyValuePairArrayOutput) +} + +// The list of one or more files that contain the environment variables to pass to a container +func (o TaskDefinitionContainerDefinitionPtrOutput) EnvironmentFiles() TaskDefinitionEnvironmentFileArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionEnvironmentFile { + if v == nil { + return nil + } + return v.EnvironmentFiles + }).(TaskDefinitionEnvironmentFileArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Essential() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *bool { + if v == nil { + return nil + } + return v.Essential + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) ExtraHosts() TaskDefinitionHostEntryArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionHostEntry { + if v == nil { + return nil + } + return v.ExtraHosts + }).(TaskDefinitionHostEntryArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) FirelensConfiguration() TaskDefinitionFirelensConfigurationPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *TaskDefinitionFirelensConfiguration { + if v == nil { + return nil + } + return v.FirelensConfiguration + }).(TaskDefinitionFirelensConfigurationPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) HealthCheck() TaskDefinitionHealthCheckPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *TaskDefinitionHealthCheck { + if v == nil { + return nil + } + return v.HealthCheck + }).(TaskDefinitionHealthCheckPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +// The image used to start a container. This string is passed directly to the Docker daemon. +func (o TaskDefinitionContainerDefinitionPtrOutput) Image() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *string { + if v == nil { + return nil + } + return &v.Image + }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Interactive() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *bool { + if v == nil { + return nil + } + return v.Interactive + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Links() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []string { + if v == nil { + return nil + } + return v.Links + }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) LinuxParameters() TaskDefinitionLinuxParametersPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *TaskDefinitionLinuxParameters { + if v == nil { + return nil + } + return v.LinuxParameters + }).(TaskDefinitionLinuxParametersPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) LogConfiguration() TaskDefinitionLogConfigurationPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *TaskDefinitionLogConfiguration { + if v == nil { + return nil + } + return v.LogConfiguration + }).(TaskDefinitionLogConfigurationPtrOutput) +} + +// The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. +func (o TaskDefinitionContainerDefinitionPtrOutput) Memory() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *int { + if v == nil { + return nil + } + return v.Memory + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) MemoryReservation() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *int { + if v == nil { + return nil + } + return v.MemoryReservation + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) MountPoints() TaskDefinitionMountPointArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionMountPoint { + if v == nil { + return nil + } + return v.MountPoints + }).(TaskDefinitionMountPointArrayOutput) +} + +// The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed +func (o TaskDefinitionContainerDefinitionPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// Port mappings allow containers to access ports on the host container instance to send or receive traffic. +func (o TaskDefinitionContainerDefinitionPtrOutput) PortMappings() TaskDefinitionPortMappingArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionPortMapping { + if v == nil { + return nil + } + return v.PortMappings + }).(TaskDefinitionPortMappingArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Privileged() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *bool { + if v == nil { + return nil + } + return v.Privileged + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) PseudoTerminal() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *bool { + if v == nil { + return nil + } + return v.PseudoTerminal + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) ReadonlyRootFilesystem() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *bool { + if v == nil { + return nil + } + return v.ReadonlyRootFilesystem + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) RepositoryCredentials() TaskDefinitionRepositoryCredentialsPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *TaskDefinitionRepositoryCredentials { + if v == nil { + return nil + } + return v.RepositoryCredentials + }).(TaskDefinitionRepositoryCredentialsPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) ResourceRequirements() TaskDefinitionResourceRequirementArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionResourceRequirement { + if v == nil { + return nil + } + return v.ResourceRequirements + }).(TaskDefinitionResourceRequirementArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Secrets() TaskDefinitionSecretArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionSecret { + if v == nil { + return nil + } + return v.Secrets + }).(TaskDefinitionSecretArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) StartTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *int { + if v == nil { + return nil + } + return v.StartTimeout + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) StopTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *int { + if v == nil { + return nil + } + return v.StopTimeout + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) SystemControls() TaskDefinitionSystemControlArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionSystemControl { + if v == nil { + return nil + } + return v.SystemControls + }).(TaskDefinitionSystemControlArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) Ulimits() TaskDefinitionUlimitArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionUlimit { + if v == nil { + return nil + } + return v.Ulimits + }).(TaskDefinitionUlimitArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *string { + if v == nil { + return nil + } + return v.User + }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) VolumesFrom() TaskDefinitionVolumeFromArrayOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) []TaskDefinitionVolumeFrom { + if v == nil { + return nil + } + return v.VolumesFrom + }).(TaskDefinitionVolumeFromArrayOutput) +} + +func (o TaskDefinitionContainerDefinitionPtrOutput) WorkingDirectory() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionContainerDefinition) *string { + if v == nil { + return nil + } + return v.WorkingDirectory + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionContainerDefinitionMapOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionContainerDefinitionMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]TaskDefinitionContainerDefinition)(nil)).Elem() +} + +func (o TaskDefinitionContainerDefinitionMapOutput) ToTaskDefinitionContainerDefinitionMapOutput() TaskDefinitionContainerDefinitionMapOutput { + return o +} + +func (o TaskDefinitionContainerDefinitionMapOutput) ToTaskDefinitionContainerDefinitionMapOutputWithContext(ctx context.Context) TaskDefinitionContainerDefinitionMapOutput { + return o +} + +func (o TaskDefinitionContainerDefinitionMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]TaskDefinitionContainerDefinition] { + return pulumix.Output[map[string]TaskDefinitionContainerDefinition]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionContainerDefinitionMapOutput) MapIndex(k pulumi.StringInput) TaskDefinitionContainerDefinitionOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) TaskDefinitionContainerDefinition { + return vs[0].(map[string]TaskDefinitionContainerDefinition)[vs[1].(string)] + }).(TaskDefinitionContainerDefinitionOutput) +} + +type TaskDefinitionContainerDependency struct { + Condition *string `pulumi:"condition"` + ContainerName *string `pulumi:"containerName"` +} + +// TaskDefinitionContainerDependencyInput is an input type that accepts TaskDefinitionContainerDependencyArgs and TaskDefinitionContainerDependencyOutput values. +// You can construct a concrete instance of `TaskDefinitionContainerDependencyInput` via: +// +// TaskDefinitionContainerDependencyArgs{...} +type TaskDefinitionContainerDependencyInput interface { + pulumi.Input + + ToTaskDefinitionContainerDependencyOutput() TaskDefinitionContainerDependencyOutput + ToTaskDefinitionContainerDependencyOutputWithContext(context.Context) TaskDefinitionContainerDependencyOutput +} + +type TaskDefinitionContainerDependencyArgs struct { + Condition pulumi.StringPtrInput `pulumi:"condition"` + ContainerName pulumi.StringPtrInput `pulumi:"containerName"` +} + +func (TaskDefinitionContainerDependencyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionContainerDependency)(nil)).Elem() +} + +func (i TaskDefinitionContainerDependencyArgs) ToTaskDefinitionContainerDependencyOutput() TaskDefinitionContainerDependencyOutput { + return i.ToTaskDefinitionContainerDependencyOutputWithContext(context.Background()) +} + +func (i TaskDefinitionContainerDependencyArgs) ToTaskDefinitionContainerDependencyOutputWithContext(ctx context.Context) TaskDefinitionContainerDependencyOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionContainerDependencyOutput) +} + +func (i TaskDefinitionContainerDependencyArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionContainerDependency] { + return pulumix.Output[TaskDefinitionContainerDependency]{ + OutputState: i.ToTaskDefinitionContainerDependencyOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionContainerDependencyArrayInput is an input type that accepts TaskDefinitionContainerDependencyArray and TaskDefinitionContainerDependencyArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionContainerDependencyArrayInput` via: +// +// TaskDefinitionContainerDependencyArray{ TaskDefinitionContainerDependencyArgs{...} } +type TaskDefinitionContainerDependencyArrayInput interface { + pulumi.Input + + ToTaskDefinitionContainerDependencyArrayOutput() TaskDefinitionContainerDependencyArrayOutput + ToTaskDefinitionContainerDependencyArrayOutputWithContext(context.Context) TaskDefinitionContainerDependencyArrayOutput +} + +type TaskDefinitionContainerDependencyArray []TaskDefinitionContainerDependencyInput + +func (TaskDefinitionContainerDependencyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionContainerDependency)(nil)).Elem() +} + +func (i TaskDefinitionContainerDependencyArray) ToTaskDefinitionContainerDependencyArrayOutput() TaskDefinitionContainerDependencyArrayOutput { + return i.ToTaskDefinitionContainerDependencyArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionContainerDependencyArray) ToTaskDefinitionContainerDependencyArrayOutputWithContext(ctx context.Context) TaskDefinitionContainerDependencyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionContainerDependencyArrayOutput) +} + +func (i TaskDefinitionContainerDependencyArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionContainerDependency] { + return pulumix.Output[[]TaskDefinitionContainerDependency]{ + OutputState: i.ToTaskDefinitionContainerDependencyArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionContainerDependencyOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionContainerDependencyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionContainerDependency)(nil)).Elem() +} + +func (o TaskDefinitionContainerDependencyOutput) ToTaskDefinitionContainerDependencyOutput() TaskDefinitionContainerDependencyOutput { + return o +} + +func (o TaskDefinitionContainerDependencyOutput) ToTaskDefinitionContainerDependencyOutputWithContext(ctx context.Context) TaskDefinitionContainerDependencyOutput { + return o +} + +func (o TaskDefinitionContainerDependencyOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionContainerDependency] { + return pulumix.Output[TaskDefinitionContainerDependency]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionContainerDependencyOutput) Condition() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDependency) *string { return v.Condition }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionContainerDependencyOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionContainerDependency) *string { return v.ContainerName }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionContainerDependencyArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionContainerDependencyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionContainerDependency)(nil)).Elem() +} + +func (o TaskDefinitionContainerDependencyArrayOutput) ToTaskDefinitionContainerDependencyArrayOutput() TaskDefinitionContainerDependencyArrayOutput { + return o +} + +func (o TaskDefinitionContainerDependencyArrayOutput) ToTaskDefinitionContainerDependencyArrayOutputWithContext(ctx context.Context) TaskDefinitionContainerDependencyArrayOutput { + return o +} + +func (o TaskDefinitionContainerDependencyArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionContainerDependency] { + return pulumix.Output[[]TaskDefinitionContainerDependency]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionContainerDependencyArrayOutput) Index(i pulumi.IntInput) TaskDefinitionContainerDependencyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionContainerDependency { + return vs[0].([]TaskDefinitionContainerDependency)[vs[1].(int)] + }).(TaskDefinitionContainerDependencyOutput) +} + +type TaskDefinitionDevice struct { + ContainerPath *string `pulumi:"containerPath"` + HostPath *string `pulumi:"hostPath"` + Permissions []string `pulumi:"permissions"` +} + +// TaskDefinitionDeviceInput is an input type that accepts TaskDefinitionDeviceArgs and TaskDefinitionDeviceOutput values. +// You can construct a concrete instance of `TaskDefinitionDeviceInput` via: +// +// TaskDefinitionDeviceArgs{...} +type TaskDefinitionDeviceInput interface { + pulumi.Input + + ToTaskDefinitionDeviceOutput() TaskDefinitionDeviceOutput + ToTaskDefinitionDeviceOutputWithContext(context.Context) TaskDefinitionDeviceOutput +} + +type TaskDefinitionDeviceArgs struct { + ContainerPath pulumi.StringPtrInput `pulumi:"containerPath"` + HostPath pulumi.StringPtrInput `pulumi:"hostPath"` + Permissions pulumi.StringArrayInput `pulumi:"permissions"` +} + +func (TaskDefinitionDeviceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionDevice)(nil)).Elem() +} + +func (i TaskDefinitionDeviceArgs) ToTaskDefinitionDeviceOutput() TaskDefinitionDeviceOutput { + return i.ToTaskDefinitionDeviceOutputWithContext(context.Background()) +} + +func (i TaskDefinitionDeviceArgs) ToTaskDefinitionDeviceOutputWithContext(ctx context.Context) TaskDefinitionDeviceOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionDeviceOutput) +} + +func (i TaskDefinitionDeviceArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionDevice] { + return pulumix.Output[TaskDefinitionDevice]{ + OutputState: i.ToTaskDefinitionDeviceOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionDeviceArrayInput is an input type that accepts TaskDefinitionDeviceArray and TaskDefinitionDeviceArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionDeviceArrayInput` via: +// +// TaskDefinitionDeviceArray{ TaskDefinitionDeviceArgs{...} } +type TaskDefinitionDeviceArrayInput interface { + pulumi.Input + + ToTaskDefinitionDeviceArrayOutput() TaskDefinitionDeviceArrayOutput + ToTaskDefinitionDeviceArrayOutputWithContext(context.Context) TaskDefinitionDeviceArrayOutput +} + +type TaskDefinitionDeviceArray []TaskDefinitionDeviceInput + +func (TaskDefinitionDeviceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionDevice)(nil)).Elem() +} + +func (i TaskDefinitionDeviceArray) ToTaskDefinitionDeviceArrayOutput() TaskDefinitionDeviceArrayOutput { + return i.ToTaskDefinitionDeviceArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionDeviceArray) ToTaskDefinitionDeviceArrayOutputWithContext(ctx context.Context) TaskDefinitionDeviceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionDeviceArrayOutput) +} + +func (i TaskDefinitionDeviceArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionDevice] { + return pulumix.Output[[]TaskDefinitionDevice]{ + OutputState: i.ToTaskDefinitionDeviceArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionDeviceOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionDeviceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionDevice)(nil)).Elem() +} + +func (o TaskDefinitionDeviceOutput) ToTaskDefinitionDeviceOutput() TaskDefinitionDeviceOutput { + return o +} + +func (o TaskDefinitionDeviceOutput) ToTaskDefinitionDeviceOutputWithContext(ctx context.Context) TaskDefinitionDeviceOutput { + return o +} + +func (o TaskDefinitionDeviceOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionDevice] { + return pulumix.Output[TaskDefinitionDevice]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionDeviceOutput) ContainerPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionDevice) *string { return v.ContainerPath }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionDeviceOutput) HostPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionDevice) *string { return v.HostPath }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionDeviceOutput) Permissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionDevice) []string { return v.Permissions }).(pulumi.StringArrayOutput) +} + +type TaskDefinitionDeviceArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionDeviceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionDevice)(nil)).Elem() +} + +func (o TaskDefinitionDeviceArrayOutput) ToTaskDefinitionDeviceArrayOutput() TaskDefinitionDeviceArrayOutput { + return o +} + +func (o TaskDefinitionDeviceArrayOutput) ToTaskDefinitionDeviceArrayOutputWithContext(ctx context.Context) TaskDefinitionDeviceArrayOutput { + return o +} + +func (o TaskDefinitionDeviceArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionDevice] { + return pulumix.Output[[]TaskDefinitionDevice]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionDeviceArrayOutput) Index(i pulumi.IntInput) TaskDefinitionDeviceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionDevice { + return vs[0].([]TaskDefinitionDevice)[vs[1].(int)] + }).(TaskDefinitionDeviceOutput) +} + +type TaskDefinitionEnvironmentFile struct { + Type *string `pulumi:"type"` + Value *string `pulumi:"value"` +} + +// TaskDefinitionEnvironmentFileInput is an input type that accepts TaskDefinitionEnvironmentFileArgs and TaskDefinitionEnvironmentFileOutput values. +// You can construct a concrete instance of `TaskDefinitionEnvironmentFileInput` via: +// +// TaskDefinitionEnvironmentFileArgs{...} +type TaskDefinitionEnvironmentFileInput interface { + pulumi.Input + + ToTaskDefinitionEnvironmentFileOutput() TaskDefinitionEnvironmentFileOutput + ToTaskDefinitionEnvironmentFileOutputWithContext(context.Context) TaskDefinitionEnvironmentFileOutput +} + +type TaskDefinitionEnvironmentFileArgs struct { + Type pulumi.StringPtrInput `pulumi:"type"` + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (TaskDefinitionEnvironmentFileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionEnvironmentFile)(nil)).Elem() +} + +func (i TaskDefinitionEnvironmentFileArgs) ToTaskDefinitionEnvironmentFileOutput() TaskDefinitionEnvironmentFileOutput { + return i.ToTaskDefinitionEnvironmentFileOutputWithContext(context.Background()) +} + +func (i TaskDefinitionEnvironmentFileArgs) ToTaskDefinitionEnvironmentFileOutputWithContext(ctx context.Context) TaskDefinitionEnvironmentFileOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionEnvironmentFileOutput) +} + +func (i TaskDefinitionEnvironmentFileArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionEnvironmentFile] { + return pulumix.Output[TaskDefinitionEnvironmentFile]{ + OutputState: i.ToTaskDefinitionEnvironmentFileOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionEnvironmentFileArrayInput is an input type that accepts TaskDefinitionEnvironmentFileArray and TaskDefinitionEnvironmentFileArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionEnvironmentFileArrayInput` via: +// +// TaskDefinitionEnvironmentFileArray{ TaskDefinitionEnvironmentFileArgs{...} } +type TaskDefinitionEnvironmentFileArrayInput interface { + pulumi.Input + + ToTaskDefinitionEnvironmentFileArrayOutput() TaskDefinitionEnvironmentFileArrayOutput + ToTaskDefinitionEnvironmentFileArrayOutputWithContext(context.Context) TaskDefinitionEnvironmentFileArrayOutput +} + +type TaskDefinitionEnvironmentFileArray []TaskDefinitionEnvironmentFileInput + +func (TaskDefinitionEnvironmentFileArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionEnvironmentFile)(nil)).Elem() +} + +func (i TaskDefinitionEnvironmentFileArray) ToTaskDefinitionEnvironmentFileArrayOutput() TaskDefinitionEnvironmentFileArrayOutput { + return i.ToTaskDefinitionEnvironmentFileArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionEnvironmentFileArray) ToTaskDefinitionEnvironmentFileArrayOutputWithContext(ctx context.Context) TaskDefinitionEnvironmentFileArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionEnvironmentFileArrayOutput) +} + +func (i TaskDefinitionEnvironmentFileArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionEnvironmentFile] { + return pulumix.Output[[]TaskDefinitionEnvironmentFile]{ + OutputState: i.ToTaskDefinitionEnvironmentFileArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionEnvironmentFileOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionEnvironmentFileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionEnvironmentFile)(nil)).Elem() +} + +func (o TaskDefinitionEnvironmentFileOutput) ToTaskDefinitionEnvironmentFileOutput() TaskDefinitionEnvironmentFileOutput { + return o +} + +func (o TaskDefinitionEnvironmentFileOutput) ToTaskDefinitionEnvironmentFileOutputWithContext(ctx context.Context) TaskDefinitionEnvironmentFileOutput { + return o +} + +func (o TaskDefinitionEnvironmentFileOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionEnvironmentFile] { + return pulumix.Output[TaskDefinitionEnvironmentFile]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionEnvironmentFileOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionEnvironmentFile) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionEnvironmentFileOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionEnvironmentFile) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionEnvironmentFileArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionEnvironmentFileArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionEnvironmentFile)(nil)).Elem() +} + +func (o TaskDefinitionEnvironmentFileArrayOutput) ToTaskDefinitionEnvironmentFileArrayOutput() TaskDefinitionEnvironmentFileArrayOutput { + return o +} + +func (o TaskDefinitionEnvironmentFileArrayOutput) ToTaskDefinitionEnvironmentFileArrayOutputWithContext(ctx context.Context) TaskDefinitionEnvironmentFileArrayOutput { + return o +} + +func (o TaskDefinitionEnvironmentFileArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionEnvironmentFile] { + return pulumix.Output[[]TaskDefinitionEnvironmentFile]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionEnvironmentFileArrayOutput) Index(i pulumi.IntInput) TaskDefinitionEnvironmentFileOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionEnvironmentFile { + return vs[0].([]TaskDefinitionEnvironmentFile)[vs[1].(int)] + }).(TaskDefinitionEnvironmentFileOutput) +} + +type TaskDefinitionFirelensConfiguration struct { + Options interface{} `pulumi:"options"` + Type *string `pulumi:"type"` +} + +// TaskDefinitionFirelensConfigurationInput is an input type that accepts TaskDefinitionFirelensConfigurationArgs and TaskDefinitionFirelensConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionFirelensConfigurationInput` via: +// +// TaskDefinitionFirelensConfigurationArgs{...} +type TaskDefinitionFirelensConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionFirelensConfigurationOutput() TaskDefinitionFirelensConfigurationOutput + ToTaskDefinitionFirelensConfigurationOutputWithContext(context.Context) TaskDefinitionFirelensConfigurationOutput +} + +type TaskDefinitionFirelensConfigurationArgs struct { + Options pulumi.Input `pulumi:"options"` + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (TaskDefinitionFirelensConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionFirelensConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionFirelensConfigurationArgs) ToTaskDefinitionFirelensConfigurationOutput() TaskDefinitionFirelensConfigurationOutput { + return i.ToTaskDefinitionFirelensConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionFirelensConfigurationArgs) ToTaskDefinitionFirelensConfigurationOutputWithContext(ctx context.Context) TaskDefinitionFirelensConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFirelensConfigurationOutput) +} + +func (i TaskDefinitionFirelensConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionFirelensConfiguration] { + return pulumix.Output[TaskDefinitionFirelensConfiguration]{ + OutputState: i.ToTaskDefinitionFirelensConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionFirelensConfigurationArgs) ToTaskDefinitionFirelensConfigurationPtrOutput() TaskDefinitionFirelensConfigurationPtrOutput { + return i.ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionFirelensConfigurationArgs) ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFirelensConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFirelensConfigurationOutput).ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionFirelensConfigurationPtrInput is an input type that accepts TaskDefinitionFirelensConfigurationArgs, TaskDefinitionFirelensConfigurationPtr and TaskDefinitionFirelensConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionFirelensConfigurationPtrInput` via: +// +// TaskDefinitionFirelensConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionFirelensConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionFirelensConfigurationPtrOutput() TaskDefinitionFirelensConfigurationPtrOutput + ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(context.Context) TaskDefinitionFirelensConfigurationPtrOutput +} + +type taskDefinitionFirelensConfigurationPtrType TaskDefinitionFirelensConfigurationArgs + +func TaskDefinitionFirelensConfigurationPtr(v *TaskDefinitionFirelensConfigurationArgs) TaskDefinitionFirelensConfigurationPtrInput { + return (*taskDefinitionFirelensConfigurationPtrType)(v) +} + +func (*taskDefinitionFirelensConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionFirelensConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionFirelensConfigurationPtrType) ToTaskDefinitionFirelensConfigurationPtrOutput() TaskDefinitionFirelensConfigurationPtrOutput { + return i.ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionFirelensConfigurationPtrType) ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFirelensConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionFirelensConfigurationPtrOutput) +} + +func (i *taskDefinitionFirelensConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionFirelensConfiguration] { + return pulumix.Output[*TaskDefinitionFirelensConfiguration]{ + OutputState: i.ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionFirelensConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionFirelensConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionFirelensConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionFirelensConfigurationOutput) ToTaskDefinitionFirelensConfigurationOutput() TaskDefinitionFirelensConfigurationOutput { + return o +} + +func (o TaskDefinitionFirelensConfigurationOutput) ToTaskDefinitionFirelensConfigurationOutputWithContext(ctx context.Context) TaskDefinitionFirelensConfigurationOutput { + return o +} + +func (o TaskDefinitionFirelensConfigurationOutput) ToTaskDefinitionFirelensConfigurationPtrOutput() TaskDefinitionFirelensConfigurationPtrOutput { + return o.ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionFirelensConfigurationOutput) ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFirelensConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionFirelensConfiguration) *TaskDefinitionFirelensConfiguration { + return &v + }).(TaskDefinitionFirelensConfigurationPtrOutput) +} + +func (o TaskDefinitionFirelensConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionFirelensConfiguration] { + return pulumix.Output[TaskDefinitionFirelensConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionFirelensConfigurationOutput) Options() pulumi.AnyOutput { + return o.ApplyT(func(v TaskDefinitionFirelensConfiguration) interface{} { return v.Options }).(pulumi.AnyOutput) +} + +func (o TaskDefinitionFirelensConfigurationOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionFirelensConfiguration) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionFirelensConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionFirelensConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionFirelensConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionFirelensConfigurationPtrOutput) ToTaskDefinitionFirelensConfigurationPtrOutput() TaskDefinitionFirelensConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionFirelensConfigurationPtrOutput) ToTaskDefinitionFirelensConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionFirelensConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionFirelensConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionFirelensConfiguration] { + return pulumix.Output[*TaskDefinitionFirelensConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionFirelensConfigurationPtrOutput) Elem() TaskDefinitionFirelensConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionFirelensConfiguration) TaskDefinitionFirelensConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionFirelensConfiguration + return ret + }).(TaskDefinitionFirelensConfigurationOutput) +} + +func (o TaskDefinitionFirelensConfigurationPtrOutput) Options() pulumi.AnyOutput { + return o.ApplyT(func(v *TaskDefinitionFirelensConfiguration) interface{} { + if v == nil { + return nil + } + return v.Options + }).(pulumi.AnyOutput) +} + +func (o TaskDefinitionFirelensConfigurationPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionFirelensConfiguration) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +// The health check command and associated configuration parameters for the container. +type TaskDefinitionHealthCheck struct { + // A string array representing the command that the container runs to determine if it is healthy. + Command []string `pulumi:"command"` + // The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. + Interval *int `pulumi:"interval"` + // The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is three retries. + Retries *int `pulumi:"retries"` + // The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. + StartPeriod *int `pulumi:"startPeriod"` + // The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. + Timeout *int `pulumi:"timeout"` +} + +// TaskDefinitionHealthCheckInput is an input type that accepts TaskDefinitionHealthCheckArgs and TaskDefinitionHealthCheckOutput values. +// You can construct a concrete instance of `TaskDefinitionHealthCheckInput` via: +// +// TaskDefinitionHealthCheckArgs{...} +type TaskDefinitionHealthCheckInput interface { + pulumi.Input + + ToTaskDefinitionHealthCheckOutput() TaskDefinitionHealthCheckOutput + ToTaskDefinitionHealthCheckOutputWithContext(context.Context) TaskDefinitionHealthCheckOutput +} + +// The health check command and associated configuration parameters for the container. +type TaskDefinitionHealthCheckArgs struct { + // A string array representing the command that the container runs to determine if it is healthy. + Command pulumi.StringArrayInput `pulumi:"command"` + // The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. + Interval pulumi.IntPtrInput `pulumi:"interval"` + // The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is three retries. + Retries pulumi.IntPtrInput `pulumi:"retries"` + // The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. + StartPeriod pulumi.IntPtrInput `pulumi:"startPeriod"` + // The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. + Timeout pulumi.IntPtrInput `pulumi:"timeout"` +} + +func (TaskDefinitionHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionHealthCheck)(nil)).Elem() +} + +func (i TaskDefinitionHealthCheckArgs) ToTaskDefinitionHealthCheckOutput() TaskDefinitionHealthCheckOutput { + return i.ToTaskDefinitionHealthCheckOutputWithContext(context.Background()) +} + +func (i TaskDefinitionHealthCheckArgs) ToTaskDefinitionHealthCheckOutputWithContext(ctx context.Context) TaskDefinitionHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionHealthCheckOutput) +} + +func (i TaskDefinitionHealthCheckArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionHealthCheck] { + return pulumix.Output[TaskDefinitionHealthCheck]{ + OutputState: i.ToTaskDefinitionHealthCheckOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionHealthCheckArgs) ToTaskDefinitionHealthCheckPtrOutput() TaskDefinitionHealthCheckPtrOutput { + return i.ToTaskDefinitionHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionHealthCheckArgs) ToTaskDefinitionHealthCheckPtrOutputWithContext(ctx context.Context) TaskDefinitionHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionHealthCheckOutput).ToTaskDefinitionHealthCheckPtrOutputWithContext(ctx) +} + +// TaskDefinitionHealthCheckPtrInput is an input type that accepts TaskDefinitionHealthCheckArgs, TaskDefinitionHealthCheckPtr and TaskDefinitionHealthCheckPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionHealthCheckPtrInput` via: +// +// TaskDefinitionHealthCheckArgs{...} +// +// or: +// +// nil +type TaskDefinitionHealthCheckPtrInput interface { + pulumi.Input + + ToTaskDefinitionHealthCheckPtrOutput() TaskDefinitionHealthCheckPtrOutput + ToTaskDefinitionHealthCheckPtrOutputWithContext(context.Context) TaskDefinitionHealthCheckPtrOutput +} + +type taskDefinitionHealthCheckPtrType TaskDefinitionHealthCheckArgs + +func TaskDefinitionHealthCheckPtr(v *TaskDefinitionHealthCheckArgs) TaskDefinitionHealthCheckPtrInput { + return (*taskDefinitionHealthCheckPtrType)(v) +} + +func (*taskDefinitionHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionHealthCheck)(nil)).Elem() +} + +func (i *taskDefinitionHealthCheckPtrType) ToTaskDefinitionHealthCheckPtrOutput() TaskDefinitionHealthCheckPtrOutput { + return i.ToTaskDefinitionHealthCheckPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionHealthCheckPtrType) ToTaskDefinitionHealthCheckPtrOutputWithContext(ctx context.Context) TaskDefinitionHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionHealthCheckPtrOutput) +} + +func (i *taskDefinitionHealthCheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionHealthCheck] { + return pulumix.Output[*TaskDefinitionHealthCheck]{ + OutputState: i.ToTaskDefinitionHealthCheckPtrOutputWithContext(ctx).OutputState, + } +} + +// The health check command and associated configuration parameters for the container. +type TaskDefinitionHealthCheckOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionHealthCheck)(nil)).Elem() +} + +func (o TaskDefinitionHealthCheckOutput) ToTaskDefinitionHealthCheckOutput() TaskDefinitionHealthCheckOutput { + return o +} + +func (o TaskDefinitionHealthCheckOutput) ToTaskDefinitionHealthCheckOutputWithContext(ctx context.Context) TaskDefinitionHealthCheckOutput { + return o +} + +func (o TaskDefinitionHealthCheckOutput) ToTaskDefinitionHealthCheckPtrOutput() TaskDefinitionHealthCheckPtrOutput { + return o.ToTaskDefinitionHealthCheckPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionHealthCheckOutput) ToTaskDefinitionHealthCheckPtrOutputWithContext(ctx context.Context) TaskDefinitionHealthCheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionHealthCheck) *TaskDefinitionHealthCheck { + return &v + }).(TaskDefinitionHealthCheckPtrOutput) +} + +func (o TaskDefinitionHealthCheckOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionHealthCheck] { + return pulumix.Output[TaskDefinitionHealthCheck]{ + OutputState: o.OutputState, + } +} + +// A string array representing the command that the container runs to determine if it is healthy. +func (o TaskDefinitionHealthCheckOutput) Command() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionHealthCheck) []string { return v.Command }).(pulumi.StringArrayOutput) +} + +// The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. +func (o TaskDefinitionHealthCheckOutput) Interval() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionHealthCheck) *int { return v.Interval }).(pulumi.IntPtrOutput) +} + +// The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is three retries. +func (o TaskDefinitionHealthCheckOutput) Retries() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionHealthCheck) *int { return v.Retries }).(pulumi.IntPtrOutput) +} + +// The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. +func (o TaskDefinitionHealthCheckOutput) StartPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionHealthCheck) *int { return v.StartPeriod }).(pulumi.IntPtrOutput) +} + +// The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. +func (o TaskDefinitionHealthCheckOutput) Timeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionHealthCheck) *int { return v.Timeout }).(pulumi.IntPtrOutput) +} + +type TaskDefinitionHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionHealthCheck)(nil)).Elem() +} + +func (o TaskDefinitionHealthCheckPtrOutput) ToTaskDefinitionHealthCheckPtrOutput() TaskDefinitionHealthCheckPtrOutput { + return o +} + +func (o TaskDefinitionHealthCheckPtrOutput) ToTaskDefinitionHealthCheckPtrOutputWithContext(ctx context.Context) TaskDefinitionHealthCheckPtrOutput { + return o +} + +func (o TaskDefinitionHealthCheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionHealthCheck] { + return pulumix.Output[*TaskDefinitionHealthCheck]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionHealthCheckPtrOutput) Elem() TaskDefinitionHealthCheckOutput { + return o.ApplyT(func(v *TaskDefinitionHealthCheck) TaskDefinitionHealthCheck { + if v != nil { + return *v + } + var ret TaskDefinitionHealthCheck + return ret + }).(TaskDefinitionHealthCheckOutput) +} + +// A string array representing the command that the container runs to determine if it is healthy. +func (o TaskDefinitionHealthCheckPtrOutput) Command() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionHealthCheck) []string { + if v == nil { + return nil + } + return v.Command + }).(pulumi.StringArrayOutput) +} + +// The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. +func (o TaskDefinitionHealthCheckPtrOutput) Interval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionHealthCheck) *int { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.IntPtrOutput) +} + +// The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is three retries. +func (o TaskDefinitionHealthCheckPtrOutput) Retries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionHealthCheck) *int { + if v == nil { + return nil + } + return v.Retries + }).(pulumi.IntPtrOutput) +} + +// The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. +func (o TaskDefinitionHealthCheckPtrOutput) StartPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionHealthCheck) *int { + if v == nil { + return nil + } + return v.StartPeriod + }).(pulumi.IntPtrOutput) +} + +// The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. +func (o TaskDefinitionHealthCheckPtrOutput) Timeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionHealthCheck) *int { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.IntPtrOutput) +} + +type TaskDefinitionHostEntry struct { + Hostname *string `pulumi:"hostname"` + IpAddress *string `pulumi:"ipAddress"` +} + +// TaskDefinitionHostEntryInput is an input type that accepts TaskDefinitionHostEntryArgs and TaskDefinitionHostEntryOutput values. +// You can construct a concrete instance of `TaskDefinitionHostEntryInput` via: +// +// TaskDefinitionHostEntryArgs{...} +type TaskDefinitionHostEntryInput interface { + pulumi.Input + + ToTaskDefinitionHostEntryOutput() TaskDefinitionHostEntryOutput + ToTaskDefinitionHostEntryOutputWithContext(context.Context) TaskDefinitionHostEntryOutput +} + +type TaskDefinitionHostEntryArgs struct { + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` +} + +func (TaskDefinitionHostEntryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionHostEntry)(nil)).Elem() +} + +func (i TaskDefinitionHostEntryArgs) ToTaskDefinitionHostEntryOutput() TaskDefinitionHostEntryOutput { + return i.ToTaskDefinitionHostEntryOutputWithContext(context.Background()) +} + +func (i TaskDefinitionHostEntryArgs) ToTaskDefinitionHostEntryOutputWithContext(ctx context.Context) TaskDefinitionHostEntryOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionHostEntryOutput) +} + +func (i TaskDefinitionHostEntryArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionHostEntry] { + return pulumix.Output[TaskDefinitionHostEntry]{ + OutputState: i.ToTaskDefinitionHostEntryOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionHostEntryArrayInput is an input type that accepts TaskDefinitionHostEntryArray and TaskDefinitionHostEntryArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionHostEntryArrayInput` via: +// +// TaskDefinitionHostEntryArray{ TaskDefinitionHostEntryArgs{...} } +type TaskDefinitionHostEntryArrayInput interface { + pulumi.Input + + ToTaskDefinitionHostEntryArrayOutput() TaskDefinitionHostEntryArrayOutput + ToTaskDefinitionHostEntryArrayOutputWithContext(context.Context) TaskDefinitionHostEntryArrayOutput +} + +type TaskDefinitionHostEntryArray []TaskDefinitionHostEntryInput + +func (TaskDefinitionHostEntryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionHostEntry)(nil)).Elem() +} + +func (i TaskDefinitionHostEntryArray) ToTaskDefinitionHostEntryArrayOutput() TaskDefinitionHostEntryArrayOutput { + return i.ToTaskDefinitionHostEntryArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionHostEntryArray) ToTaskDefinitionHostEntryArrayOutputWithContext(ctx context.Context) TaskDefinitionHostEntryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionHostEntryArrayOutput) +} + +func (i TaskDefinitionHostEntryArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionHostEntry] { + return pulumix.Output[[]TaskDefinitionHostEntry]{ + OutputState: i.ToTaskDefinitionHostEntryArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionHostEntryOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionHostEntryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionHostEntry)(nil)).Elem() +} + +func (o TaskDefinitionHostEntryOutput) ToTaskDefinitionHostEntryOutput() TaskDefinitionHostEntryOutput { + return o +} + +func (o TaskDefinitionHostEntryOutput) ToTaskDefinitionHostEntryOutputWithContext(ctx context.Context) TaskDefinitionHostEntryOutput { + return o +} + +func (o TaskDefinitionHostEntryOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionHostEntry] { + return pulumix.Output[TaskDefinitionHostEntry]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionHostEntryOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionHostEntry) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionHostEntryOutput) IpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionHostEntry) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionHostEntryArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionHostEntryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionHostEntry)(nil)).Elem() +} + +func (o TaskDefinitionHostEntryArrayOutput) ToTaskDefinitionHostEntryArrayOutput() TaskDefinitionHostEntryArrayOutput { + return o +} + +func (o TaskDefinitionHostEntryArrayOutput) ToTaskDefinitionHostEntryArrayOutputWithContext(ctx context.Context) TaskDefinitionHostEntryArrayOutput { + return o +} + +func (o TaskDefinitionHostEntryArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionHostEntry] { + return pulumix.Output[[]TaskDefinitionHostEntry]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionHostEntryArrayOutput) Index(i pulumi.IntInput) TaskDefinitionHostEntryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionHostEntry { + return vs[0].([]TaskDefinitionHostEntry)[vs[1].(int)] + }).(TaskDefinitionHostEntryOutput) +} + +type TaskDefinitionKernelCapabilities struct { + Add []string `pulumi:"add"` + Drop []string `pulumi:"drop"` +} + +// TaskDefinitionKernelCapabilitiesInput is an input type that accepts TaskDefinitionKernelCapabilitiesArgs and TaskDefinitionKernelCapabilitiesOutput values. +// You can construct a concrete instance of `TaskDefinitionKernelCapabilitiesInput` via: +// +// TaskDefinitionKernelCapabilitiesArgs{...} +type TaskDefinitionKernelCapabilitiesInput interface { + pulumi.Input + + ToTaskDefinitionKernelCapabilitiesOutput() TaskDefinitionKernelCapabilitiesOutput + ToTaskDefinitionKernelCapabilitiesOutputWithContext(context.Context) TaskDefinitionKernelCapabilitiesOutput +} + +type TaskDefinitionKernelCapabilitiesArgs struct { + Add pulumi.StringArrayInput `pulumi:"add"` + Drop pulumi.StringArrayInput `pulumi:"drop"` +} + +func (TaskDefinitionKernelCapabilitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionKernelCapabilities)(nil)).Elem() +} + +func (i TaskDefinitionKernelCapabilitiesArgs) ToTaskDefinitionKernelCapabilitiesOutput() TaskDefinitionKernelCapabilitiesOutput { + return i.ToTaskDefinitionKernelCapabilitiesOutputWithContext(context.Background()) +} + +func (i TaskDefinitionKernelCapabilitiesArgs) ToTaskDefinitionKernelCapabilitiesOutputWithContext(ctx context.Context) TaskDefinitionKernelCapabilitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionKernelCapabilitiesOutput) +} + +func (i TaskDefinitionKernelCapabilitiesArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionKernelCapabilities] { + return pulumix.Output[TaskDefinitionKernelCapabilities]{ + OutputState: i.ToTaskDefinitionKernelCapabilitiesOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionKernelCapabilitiesArgs) ToTaskDefinitionKernelCapabilitiesPtrOutput() TaskDefinitionKernelCapabilitiesPtrOutput { + return i.ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionKernelCapabilitiesArgs) ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(ctx context.Context) TaskDefinitionKernelCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionKernelCapabilitiesOutput).ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(ctx) +} + +// TaskDefinitionKernelCapabilitiesPtrInput is an input type that accepts TaskDefinitionKernelCapabilitiesArgs, TaskDefinitionKernelCapabilitiesPtr and TaskDefinitionKernelCapabilitiesPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionKernelCapabilitiesPtrInput` via: +// +// TaskDefinitionKernelCapabilitiesArgs{...} +// +// or: +// +// nil +type TaskDefinitionKernelCapabilitiesPtrInput interface { + pulumi.Input + + ToTaskDefinitionKernelCapabilitiesPtrOutput() TaskDefinitionKernelCapabilitiesPtrOutput + ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(context.Context) TaskDefinitionKernelCapabilitiesPtrOutput +} + +type taskDefinitionKernelCapabilitiesPtrType TaskDefinitionKernelCapabilitiesArgs + +func TaskDefinitionKernelCapabilitiesPtr(v *TaskDefinitionKernelCapabilitiesArgs) TaskDefinitionKernelCapabilitiesPtrInput { + return (*taskDefinitionKernelCapabilitiesPtrType)(v) +} + +func (*taskDefinitionKernelCapabilitiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionKernelCapabilities)(nil)).Elem() +} + +func (i *taskDefinitionKernelCapabilitiesPtrType) ToTaskDefinitionKernelCapabilitiesPtrOutput() TaskDefinitionKernelCapabilitiesPtrOutput { + return i.ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionKernelCapabilitiesPtrType) ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(ctx context.Context) TaskDefinitionKernelCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionKernelCapabilitiesPtrOutput) +} + +func (i *taskDefinitionKernelCapabilitiesPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionKernelCapabilities] { + return pulumix.Output[*TaskDefinitionKernelCapabilities]{ + OutputState: i.ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionKernelCapabilitiesOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionKernelCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionKernelCapabilities)(nil)).Elem() +} + +func (o TaskDefinitionKernelCapabilitiesOutput) ToTaskDefinitionKernelCapabilitiesOutput() TaskDefinitionKernelCapabilitiesOutput { + return o +} + +func (o TaskDefinitionKernelCapabilitiesOutput) ToTaskDefinitionKernelCapabilitiesOutputWithContext(ctx context.Context) TaskDefinitionKernelCapabilitiesOutput { + return o +} + +func (o TaskDefinitionKernelCapabilitiesOutput) ToTaskDefinitionKernelCapabilitiesPtrOutput() TaskDefinitionKernelCapabilitiesPtrOutput { + return o.ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionKernelCapabilitiesOutput) ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(ctx context.Context) TaskDefinitionKernelCapabilitiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionKernelCapabilities) *TaskDefinitionKernelCapabilities { + return &v + }).(TaskDefinitionKernelCapabilitiesPtrOutput) +} + +func (o TaskDefinitionKernelCapabilitiesOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionKernelCapabilities] { + return pulumix.Output[TaskDefinitionKernelCapabilities]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionKernelCapabilitiesOutput) Add() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionKernelCapabilities) []string { return v.Add }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionKernelCapabilitiesOutput) Drop() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionKernelCapabilities) []string { return v.Drop }).(pulumi.StringArrayOutput) +} + +type TaskDefinitionKernelCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionKernelCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionKernelCapabilities)(nil)).Elem() +} + +func (o TaskDefinitionKernelCapabilitiesPtrOutput) ToTaskDefinitionKernelCapabilitiesPtrOutput() TaskDefinitionKernelCapabilitiesPtrOutput { + return o +} + +func (o TaskDefinitionKernelCapabilitiesPtrOutput) ToTaskDefinitionKernelCapabilitiesPtrOutputWithContext(ctx context.Context) TaskDefinitionKernelCapabilitiesPtrOutput { + return o +} + +func (o TaskDefinitionKernelCapabilitiesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionKernelCapabilities] { + return pulumix.Output[*TaskDefinitionKernelCapabilities]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionKernelCapabilitiesPtrOutput) Elem() TaskDefinitionKernelCapabilitiesOutput { + return o.ApplyT(func(v *TaskDefinitionKernelCapabilities) TaskDefinitionKernelCapabilities { + if v != nil { + return *v + } + var ret TaskDefinitionKernelCapabilities + return ret + }).(TaskDefinitionKernelCapabilitiesOutput) +} + +func (o TaskDefinitionKernelCapabilitiesPtrOutput) Add() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionKernelCapabilities) []string { + if v == nil { + return nil + } + return v.Add + }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionKernelCapabilitiesPtrOutput) Drop() pulumi.StringArrayOutput { + return o.ApplyT(func(v *TaskDefinitionKernelCapabilities) []string { + if v == nil { + return nil + } + return v.Drop + }).(pulumi.StringArrayOutput) +} + +type TaskDefinitionKeyValuePair struct { + Name *string `pulumi:"name"` + Value *string `pulumi:"value"` +} + +// TaskDefinitionKeyValuePairInput is an input type that accepts TaskDefinitionKeyValuePairArgs and TaskDefinitionKeyValuePairOutput values. +// You can construct a concrete instance of `TaskDefinitionKeyValuePairInput` via: +// +// TaskDefinitionKeyValuePairArgs{...} +type TaskDefinitionKeyValuePairInput interface { + pulumi.Input + + ToTaskDefinitionKeyValuePairOutput() TaskDefinitionKeyValuePairOutput + ToTaskDefinitionKeyValuePairOutputWithContext(context.Context) TaskDefinitionKeyValuePairOutput +} + +type TaskDefinitionKeyValuePairArgs struct { + Name pulumi.StringPtrInput `pulumi:"name"` + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (TaskDefinitionKeyValuePairArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionKeyValuePair)(nil)).Elem() +} + +func (i TaskDefinitionKeyValuePairArgs) ToTaskDefinitionKeyValuePairOutput() TaskDefinitionKeyValuePairOutput { + return i.ToTaskDefinitionKeyValuePairOutputWithContext(context.Background()) +} + +func (i TaskDefinitionKeyValuePairArgs) ToTaskDefinitionKeyValuePairOutputWithContext(ctx context.Context) TaskDefinitionKeyValuePairOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionKeyValuePairOutput) +} + +func (i TaskDefinitionKeyValuePairArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionKeyValuePair] { + return pulumix.Output[TaskDefinitionKeyValuePair]{ + OutputState: i.ToTaskDefinitionKeyValuePairOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionKeyValuePairArrayInput is an input type that accepts TaskDefinitionKeyValuePairArray and TaskDefinitionKeyValuePairArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionKeyValuePairArrayInput` via: +// +// TaskDefinitionKeyValuePairArray{ TaskDefinitionKeyValuePairArgs{...} } +type TaskDefinitionKeyValuePairArrayInput interface { + pulumi.Input + + ToTaskDefinitionKeyValuePairArrayOutput() TaskDefinitionKeyValuePairArrayOutput + ToTaskDefinitionKeyValuePairArrayOutputWithContext(context.Context) TaskDefinitionKeyValuePairArrayOutput +} + +type TaskDefinitionKeyValuePairArray []TaskDefinitionKeyValuePairInput + +func (TaskDefinitionKeyValuePairArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionKeyValuePair)(nil)).Elem() +} + +func (i TaskDefinitionKeyValuePairArray) ToTaskDefinitionKeyValuePairArrayOutput() TaskDefinitionKeyValuePairArrayOutput { + return i.ToTaskDefinitionKeyValuePairArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionKeyValuePairArray) ToTaskDefinitionKeyValuePairArrayOutputWithContext(ctx context.Context) TaskDefinitionKeyValuePairArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionKeyValuePairArrayOutput) +} + +func (i TaskDefinitionKeyValuePairArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionKeyValuePair] { + return pulumix.Output[[]TaskDefinitionKeyValuePair]{ + OutputState: i.ToTaskDefinitionKeyValuePairArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionKeyValuePairOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionKeyValuePairOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionKeyValuePair)(nil)).Elem() +} + +func (o TaskDefinitionKeyValuePairOutput) ToTaskDefinitionKeyValuePairOutput() TaskDefinitionKeyValuePairOutput { + return o +} + +func (o TaskDefinitionKeyValuePairOutput) ToTaskDefinitionKeyValuePairOutputWithContext(ctx context.Context) TaskDefinitionKeyValuePairOutput { + return o +} + +func (o TaskDefinitionKeyValuePairOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionKeyValuePair] { + return pulumix.Output[TaskDefinitionKeyValuePair]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionKeyValuePairOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionKeyValuePair) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionKeyValuePairOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionKeyValuePair) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionKeyValuePairArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionKeyValuePairArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionKeyValuePair)(nil)).Elem() +} + +func (o TaskDefinitionKeyValuePairArrayOutput) ToTaskDefinitionKeyValuePairArrayOutput() TaskDefinitionKeyValuePairArrayOutput { + return o +} + +func (o TaskDefinitionKeyValuePairArrayOutput) ToTaskDefinitionKeyValuePairArrayOutputWithContext(ctx context.Context) TaskDefinitionKeyValuePairArrayOutput { + return o +} + +func (o TaskDefinitionKeyValuePairArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionKeyValuePair] { + return pulumix.Output[[]TaskDefinitionKeyValuePair]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionKeyValuePairArrayOutput) Index(i pulumi.IntInput) TaskDefinitionKeyValuePairOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionKeyValuePair { + return vs[0].([]TaskDefinitionKeyValuePair)[vs[1].(int)] + }).(TaskDefinitionKeyValuePairOutput) +} + +type TaskDefinitionLinuxParameters struct { + Capabilities *TaskDefinitionKernelCapabilities `pulumi:"capabilities"` + Devices []TaskDefinitionDevice `pulumi:"devices"` + InitProcessEnabled *bool `pulumi:"initProcessEnabled"` + MaxSwap *int `pulumi:"maxSwap"` + SharedMemorySize *int `pulumi:"sharedMemorySize"` + Swappiness *int `pulumi:"swappiness"` + Tmpfs []TaskDefinitionTmpfs `pulumi:"tmpfs"` +} + +// TaskDefinitionLinuxParametersInput is an input type that accepts TaskDefinitionLinuxParametersArgs and TaskDefinitionLinuxParametersOutput values. +// You can construct a concrete instance of `TaskDefinitionLinuxParametersInput` via: +// +// TaskDefinitionLinuxParametersArgs{...} +type TaskDefinitionLinuxParametersInput interface { + pulumi.Input + + ToTaskDefinitionLinuxParametersOutput() TaskDefinitionLinuxParametersOutput + ToTaskDefinitionLinuxParametersOutputWithContext(context.Context) TaskDefinitionLinuxParametersOutput +} + +type TaskDefinitionLinuxParametersArgs struct { + Capabilities TaskDefinitionKernelCapabilitiesPtrInput `pulumi:"capabilities"` + Devices TaskDefinitionDeviceArrayInput `pulumi:"devices"` + InitProcessEnabled pulumi.BoolPtrInput `pulumi:"initProcessEnabled"` + MaxSwap pulumi.IntPtrInput `pulumi:"maxSwap"` + SharedMemorySize pulumi.IntPtrInput `pulumi:"sharedMemorySize"` + Swappiness pulumi.IntPtrInput `pulumi:"swappiness"` + Tmpfs TaskDefinitionTmpfsArrayInput `pulumi:"tmpfs"` +} + +func (TaskDefinitionLinuxParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionLinuxParameters)(nil)).Elem() +} + +func (i TaskDefinitionLinuxParametersArgs) ToTaskDefinitionLinuxParametersOutput() TaskDefinitionLinuxParametersOutput { + return i.ToTaskDefinitionLinuxParametersOutputWithContext(context.Background()) +} + +func (i TaskDefinitionLinuxParametersArgs) ToTaskDefinitionLinuxParametersOutputWithContext(ctx context.Context) TaskDefinitionLinuxParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionLinuxParametersOutput) +} + +func (i TaskDefinitionLinuxParametersArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionLinuxParameters] { + return pulumix.Output[TaskDefinitionLinuxParameters]{ + OutputState: i.ToTaskDefinitionLinuxParametersOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionLinuxParametersArgs) ToTaskDefinitionLinuxParametersPtrOutput() TaskDefinitionLinuxParametersPtrOutput { + return i.ToTaskDefinitionLinuxParametersPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionLinuxParametersArgs) ToTaskDefinitionLinuxParametersPtrOutputWithContext(ctx context.Context) TaskDefinitionLinuxParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionLinuxParametersOutput).ToTaskDefinitionLinuxParametersPtrOutputWithContext(ctx) +} + +// TaskDefinitionLinuxParametersPtrInput is an input type that accepts TaskDefinitionLinuxParametersArgs, TaskDefinitionLinuxParametersPtr and TaskDefinitionLinuxParametersPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionLinuxParametersPtrInput` via: +// +// TaskDefinitionLinuxParametersArgs{...} +// +// or: +// +// nil +type TaskDefinitionLinuxParametersPtrInput interface { + pulumi.Input + + ToTaskDefinitionLinuxParametersPtrOutput() TaskDefinitionLinuxParametersPtrOutput + ToTaskDefinitionLinuxParametersPtrOutputWithContext(context.Context) TaskDefinitionLinuxParametersPtrOutput +} + +type taskDefinitionLinuxParametersPtrType TaskDefinitionLinuxParametersArgs + +func TaskDefinitionLinuxParametersPtr(v *TaskDefinitionLinuxParametersArgs) TaskDefinitionLinuxParametersPtrInput { + return (*taskDefinitionLinuxParametersPtrType)(v) +} + +func (*taskDefinitionLinuxParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionLinuxParameters)(nil)).Elem() +} + +func (i *taskDefinitionLinuxParametersPtrType) ToTaskDefinitionLinuxParametersPtrOutput() TaskDefinitionLinuxParametersPtrOutput { + return i.ToTaskDefinitionLinuxParametersPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionLinuxParametersPtrType) ToTaskDefinitionLinuxParametersPtrOutputWithContext(ctx context.Context) TaskDefinitionLinuxParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionLinuxParametersPtrOutput) +} + +func (i *taskDefinitionLinuxParametersPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionLinuxParameters] { + return pulumix.Output[*TaskDefinitionLinuxParameters]{ + OutputState: i.ToTaskDefinitionLinuxParametersPtrOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionLinuxParametersOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionLinuxParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionLinuxParameters)(nil)).Elem() +} + +func (o TaskDefinitionLinuxParametersOutput) ToTaskDefinitionLinuxParametersOutput() TaskDefinitionLinuxParametersOutput { + return o +} + +func (o TaskDefinitionLinuxParametersOutput) ToTaskDefinitionLinuxParametersOutputWithContext(ctx context.Context) TaskDefinitionLinuxParametersOutput { + return o +} + +func (o TaskDefinitionLinuxParametersOutput) ToTaskDefinitionLinuxParametersPtrOutput() TaskDefinitionLinuxParametersPtrOutput { + return o.ToTaskDefinitionLinuxParametersPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionLinuxParametersOutput) ToTaskDefinitionLinuxParametersPtrOutputWithContext(ctx context.Context) TaskDefinitionLinuxParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionLinuxParameters) *TaskDefinitionLinuxParameters { + return &v + }).(TaskDefinitionLinuxParametersPtrOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionLinuxParameters] { + return pulumix.Output[TaskDefinitionLinuxParameters]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionLinuxParametersOutput) Capabilities() TaskDefinitionKernelCapabilitiesPtrOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) *TaskDefinitionKernelCapabilities { return v.Capabilities }).(TaskDefinitionKernelCapabilitiesPtrOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) Devices() TaskDefinitionDeviceArrayOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) []TaskDefinitionDevice { return v.Devices }).(TaskDefinitionDeviceArrayOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) InitProcessEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) *bool { return v.InitProcessEnabled }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) MaxSwap() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) *int { return v.MaxSwap }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) SharedMemorySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) *int { return v.SharedMemorySize }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) Swappiness() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) *int { return v.Swappiness }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionLinuxParametersOutput) Tmpfs() TaskDefinitionTmpfsArrayOutput { + return o.ApplyT(func(v TaskDefinitionLinuxParameters) []TaskDefinitionTmpfs { return v.Tmpfs }).(TaskDefinitionTmpfsArrayOutput) +} + +type TaskDefinitionLinuxParametersPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionLinuxParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionLinuxParameters)(nil)).Elem() +} + +func (o TaskDefinitionLinuxParametersPtrOutput) ToTaskDefinitionLinuxParametersPtrOutput() TaskDefinitionLinuxParametersPtrOutput { + return o +} + +func (o TaskDefinitionLinuxParametersPtrOutput) ToTaskDefinitionLinuxParametersPtrOutputWithContext(ctx context.Context) TaskDefinitionLinuxParametersPtrOutput { + return o +} + +func (o TaskDefinitionLinuxParametersPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionLinuxParameters] { + return pulumix.Output[*TaskDefinitionLinuxParameters]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionLinuxParametersPtrOutput) Elem() TaskDefinitionLinuxParametersOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) TaskDefinitionLinuxParameters { + if v != nil { + return *v + } + var ret TaskDefinitionLinuxParameters + return ret + }).(TaskDefinitionLinuxParametersOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) Capabilities() TaskDefinitionKernelCapabilitiesPtrOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) *TaskDefinitionKernelCapabilities { + if v == nil { + return nil + } + return v.Capabilities + }).(TaskDefinitionKernelCapabilitiesPtrOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) Devices() TaskDefinitionDeviceArrayOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) []TaskDefinitionDevice { + if v == nil { + return nil + } + return v.Devices + }).(TaskDefinitionDeviceArrayOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) InitProcessEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) *bool { + if v == nil { + return nil + } + return v.InitProcessEnabled + }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) MaxSwap() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) *int { + if v == nil { + return nil + } + return v.MaxSwap + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) SharedMemorySize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) *int { + if v == nil { + return nil + } + return v.SharedMemorySize + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) Swappiness() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) *int { + if v == nil { + return nil + } + return v.Swappiness + }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionLinuxParametersPtrOutput) Tmpfs() TaskDefinitionTmpfsArrayOutput { + return o.ApplyT(func(v *TaskDefinitionLinuxParameters) []TaskDefinitionTmpfs { + if v == nil { + return nil + } + return v.Tmpfs + }).(TaskDefinitionTmpfsArrayOutput) +} + +type TaskDefinitionLogConfiguration struct { + LogDriver string `pulumi:"logDriver"` + Options interface{} `pulumi:"options"` + SecretOptions []TaskDefinitionSecret `pulumi:"secretOptions"` +} + +// TaskDefinitionLogConfigurationInput is an input type that accepts TaskDefinitionLogConfigurationArgs and TaskDefinitionLogConfigurationOutput values. +// You can construct a concrete instance of `TaskDefinitionLogConfigurationInput` via: +// +// TaskDefinitionLogConfigurationArgs{...} +type TaskDefinitionLogConfigurationInput interface { + pulumi.Input + + ToTaskDefinitionLogConfigurationOutput() TaskDefinitionLogConfigurationOutput + ToTaskDefinitionLogConfigurationOutputWithContext(context.Context) TaskDefinitionLogConfigurationOutput +} + +type TaskDefinitionLogConfigurationArgs struct { + LogDriver pulumi.StringInput `pulumi:"logDriver"` + Options pulumi.Input `pulumi:"options"` + SecretOptions TaskDefinitionSecretArrayInput `pulumi:"secretOptions"` +} + +func (TaskDefinitionLogConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionLogConfiguration)(nil)).Elem() +} + +func (i TaskDefinitionLogConfigurationArgs) ToTaskDefinitionLogConfigurationOutput() TaskDefinitionLogConfigurationOutput { + return i.ToTaskDefinitionLogConfigurationOutputWithContext(context.Background()) +} + +func (i TaskDefinitionLogConfigurationArgs) ToTaskDefinitionLogConfigurationOutputWithContext(ctx context.Context) TaskDefinitionLogConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionLogConfigurationOutput) +} + +func (i TaskDefinitionLogConfigurationArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionLogConfiguration] { + return pulumix.Output[TaskDefinitionLogConfiguration]{ + OutputState: i.ToTaskDefinitionLogConfigurationOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionLogConfigurationArgs) ToTaskDefinitionLogConfigurationPtrOutput() TaskDefinitionLogConfigurationPtrOutput { + return i.ToTaskDefinitionLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionLogConfigurationArgs) ToTaskDefinitionLogConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionLogConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionLogConfigurationOutput).ToTaskDefinitionLogConfigurationPtrOutputWithContext(ctx) +} + +// TaskDefinitionLogConfigurationPtrInput is an input type that accepts TaskDefinitionLogConfigurationArgs, TaskDefinitionLogConfigurationPtr and TaskDefinitionLogConfigurationPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionLogConfigurationPtrInput` via: +// +// TaskDefinitionLogConfigurationArgs{...} +// +// or: +// +// nil +type TaskDefinitionLogConfigurationPtrInput interface { + pulumi.Input + + ToTaskDefinitionLogConfigurationPtrOutput() TaskDefinitionLogConfigurationPtrOutput + ToTaskDefinitionLogConfigurationPtrOutputWithContext(context.Context) TaskDefinitionLogConfigurationPtrOutput +} + +type taskDefinitionLogConfigurationPtrType TaskDefinitionLogConfigurationArgs + +func TaskDefinitionLogConfigurationPtr(v *TaskDefinitionLogConfigurationArgs) TaskDefinitionLogConfigurationPtrInput { + return (*taskDefinitionLogConfigurationPtrType)(v) +} + +func (*taskDefinitionLogConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionLogConfiguration)(nil)).Elem() +} + +func (i *taskDefinitionLogConfigurationPtrType) ToTaskDefinitionLogConfigurationPtrOutput() TaskDefinitionLogConfigurationPtrOutput { + return i.ToTaskDefinitionLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionLogConfigurationPtrType) ToTaskDefinitionLogConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionLogConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionLogConfigurationPtrOutput) +} + +func (i *taskDefinitionLogConfigurationPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionLogConfiguration] { + return pulumix.Output[*TaskDefinitionLogConfiguration]{ + OutputState: i.ToTaskDefinitionLogConfigurationPtrOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionLogConfigurationOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionLogConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionLogConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionLogConfigurationOutput) ToTaskDefinitionLogConfigurationOutput() TaskDefinitionLogConfigurationOutput { + return o +} + +func (o TaskDefinitionLogConfigurationOutput) ToTaskDefinitionLogConfigurationOutputWithContext(ctx context.Context) TaskDefinitionLogConfigurationOutput { + return o +} + +func (o TaskDefinitionLogConfigurationOutput) ToTaskDefinitionLogConfigurationPtrOutput() TaskDefinitionLogConfigurationPtrOutput { + return o.ToTaskDefinitionLogConfigurationPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionLogConfigurationOutput) ToTaskDefinitionLogConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionLogConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionLogConfiguration) *TaskDefinitionLogConfiguration { + return &v + }).(TaskDefinitionLogConfigurationPtrOutput) +} + +func (o TaskDefinitionLogConfigurationOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionLogConfiguration] { + return pulumix.Output[TaskDefinitionLogConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionLogConfigurationOutput) LogDriver() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionLogConfiguration) string { return v.LogDriver }).(pulumi.StringOutput) +} + +func (o TaskDefinitionLogConfigurationOutput) Options() pulumi.AnyOutput { + return o.ApplyT(func(v TaskDefinitionLogConfiguration) interface{} { return v.Options }).(pulumi.AnyOutput) +} + +func (o TaskDefinitionLogConfigurationOutput) SecretOptions() TaskDefinitionSecretArrayOutput { + return o.ApplyT(func(v TaskDefinitionLogConfiguration) []TaskDefinitionSecret { return v.SecretOptions }).(TaskDefinitionSecretArrayOutput) +} + +type TaskDefinitionLogConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionLogConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionLogConfiguration)(nil)).Elem() +} + +func (o TaskDefinitionLogConfigurationPtrOutput) ToTaskDefinitionLogConfigurationPtrOutput() TaskDefinitionLogConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionLogConfigurationPtrOutput) ToTaskDefinitionLogConfigurationPtrOutputWithContext(ctx context.Context) TaskDefinitionLogConfigurationPtrOutput { + return o +} + +func (o TaskDefinitionLogConfigurationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionLogConfiguration] { + return pulumix.Output[*TaskDefinitionLogConfiguration]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionLogConfigurationPtrOutput) Elem() TaskDefinitionLogConfigurationOutput { + return o.ApplyT(func(v *TaskDefinitionLogConfiguration) TaskDefinitionLogConfiguration { + if v != nil { + return *v + } + var ret TaskDefinitionLogConfiguration + return ret + }).(TaskDefinitionLogConfigurationOutput) +} + +func (o TaskDefinitionLogConfigurationPtrOutput) LogDriver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionLogConfiguration) *string { + if v == nil { + return nil + } + return &v.LogDriver + }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionLogConfigurationPtrOutput) Options() pulumi.AnyOutput { + return o.ApplyT(func(v *TaskDefinitionLogConfiguration) interface{} { + if v == nil { + return nil + } + return v.Options + }).(pulumi.AnyOutput) +} + +func (o TaskDefinitionLogConfigurationPtrOutput) SecretOptions() TaskDefinitionSecretArrayOutput { + return o.ApplyT(func(v *TaskDefinitionLogConfiguration) []TaskDefinitionSecret { + if v == nil { + return nil + } + return v.SecretOptions + }).(TaskDefinitionSecretArrayOutput) +} + +type TaskDefinitionMountPoint struct { + ContainerPath *string `pulumi:"containerPath"` + ReadOnly *bool `pulumi:"readOnly"` + SourceVolume *string `pulumi:"sourceVolume"` +} + +// TaskDefinitionMountPointInput is an input type that accepts TaskDefinitionMountPointArgs and TaskDefinitionMountPointOutput values. +// You can construct a concrete instance of `TaskDefinitionMountPointInput` via: +// +// TaskDefinitionMountPointArgs{...} +type TaskDefinitionMountPointInput interface { + pulumi.Input + + ToTaskDefinitionMountPointOutput() TaskDefinitionMountPointOutput + ToTaskDefinitionMountPointOutputWithContext(context.Context) TaskDefinitionMountPointOutput +} + +type TaskDefinitionMountPointArgs struct { + ContainerPath pulumi.StringPtrInput `pulumi:"containerPath"` + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + SourceVolume pulumi.StringPtrInput `pulumi:"sourceVolume"` +} + +func (TaskDefinitionMountPointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionMountPoint)(nil)).Elem() +} + +func (i TaskDefinitionMountPointArgs) ToTaskDefinitionMountPointOutput() TaskDefinitionMountPointOutput { + return i.ToTaskDefinitionMountPointOutputWithContext(context.Background()) +} + +func (i TaskDefinitionMountPointArgs) ToTaskDefinitionMountPointOutputWithContext(ctx context.Context) TaskDefinitionMountPointOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionMountPointOutput) +} + +func (i TaskDefinitionMountPointArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionMountPoint] { + return pulumix.Output[TaskDefinitionMountPoint]{ + OutputState: i.ToTaskDefinitionMountPointOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionMountPointArrayInput is an input type that accepts TaskDefinitionMountPointArray and TaskDefinitionMountPointArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionMountPointArrayInput` via: +// +// TaskDefinitionMountPointArray{ TaskDefinitionMountPointArgs{...} } +type TaskDefinitionMountPointArrayInput interface { + pulumi.Input + + ToTaskDefinitionMountPointArrayOutput() TaskDefinitionMountPointArrayOutput + ToTaskDefinitionMountPointArrayOutputWithContext(context.Context) TaskDefinitionMountPointArrayOutput +} + +type TaskDefinitionMountPointArray []TaskDefinitionMountPointInput + +func (TaskDefinitionMountPointArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionMountPoint)(nil)).Elem() +} + +func (i TaskDefinitionMountPointArray) ToTaskDefinitionMountPointArrayOutput() TaskDefinitionMountPointArrayOutput { + return i.ToTaskDefinitionMountPointArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionMountPointArray) ToTaskDefinitionMountPointArrayOutputWithContext(ctx context.Context) TaskDefinitionMountPointArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionMountPointArrayOutput) +} + +func (i TaskDefinitionMountPointArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionMountPoint] { + return pulumix.Output[[]TaskDefinitionMountPoint]{ + OutputState: i.ToTaskDefinitionMountPointArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionMountPointOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionMountPointOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionMountPoint)(nil)).Elem() +} + +func (o TaskDefinitionMountPointOutput) ToTaskDefinitionMountPointOutput() TaskDefinitionMountPointOutput { + return o +} + +func (o TaskDefinitionMountPointOutput) ToTaskDefinitionMountPointOutputWithContext(ctx context.Context) TaskDefinitionMountPointOutput { + return o +} + +func (o TaskDefinitionMountPointOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionMountPoint] { + return pulumix.Output[TaskDefinitionMountPoint]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionMountPointOutput) ContainerPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionMountPoint) *string { return v.ContainerPath }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionMountPointOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionMountPoint) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionMountPointOutput) SourceVolume() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionMountPoint) *string { return v.SourceVolume }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionMountPointArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionMountPointArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionMountPoint)(nil)).Elem() +} + +func (o TaskDefinitionMountPointArrayOutput) ToTaskDefinitionMountPointArrayOutput() TaskDefinitionMountPointArrayOutput { + return o +} + +func (o TaskDefinitionMountPointArrayOutput) ToTaskDefinitionMountPointArrayOutputWithContext(ctx context.Context) TaskDefinitionMountPointArrayOutput { + return o +} + +func (o TaskDefinitionMountPointArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionMountPoint] { + return pulumix.Output[[]TaskDefinitionMountPoint]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionMountPointArrayOutput) Index(i pulumi.IntInput) TaskDefinitionMountPointOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionMountPoint { + return vs[0].([]TaskDefinitionMountPoint)[vs[1].(int)] + }).(TaskDefinitionMountPointOutput) +} + +type TaskDefinitionPortMapping struct { + AppProtocol *TaskDefinitionPortMappingAppProtocol `pulumi:"appProtocol"` + ContainerPort *int `pulumi:"containerPort"` + ContainerPortRange *string `pulumi:"containerPortRange"` + HostPort *int `pulumi:"hostPort"` + Name *string `pulumi:"name"` + Protocol *string `pulumi:"protocol"` + TargetGroup *lb.TargetGroup `pulumi:"targetGroup"` +} + +// TaskDefinitionPortMappingInput is an input type that accepts TaskDefinitionPortMappingArgs and TaskDefinitionPortMappingOutput values. +// You can construct a concrete instance of `TaskDefinitionPortMappingInput` via: +// +// TaskDefinitionPortMappingArgs{...} +type TaskDefinitionPortMappingInput interface { + pulumi.Input + + ToTaskDefinitionPortMappingOutput() TaskDefinitionPortMappingOutput + ToTaskDefinitionPortMappingOutputWithContext(context.Context) TaskDefinitionPortMappingOutput +} + +type TaskDefinitionPortMappingArgs struct { + AppProtocol TaskDefinitionPortMappingAppProtocolPtrInput `pulumi:"appProtocol"` + ContainerPort pulumi.IntPtrInput `pulumi:"containerPort"` + ContainerPortRange pulumi.StringPtrInput `pulumi:"containerPortRange"` + HostPort pulumi.IntPtrInput `pulumi:"hostPort"` + Name pulumi.StringPtrInput `pulumi:"name"` + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + TargetGroup lb.TargetGroupInput `pulumi:"targetGroup"` +} + +func (TaskDefinitionPortMappingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionPortMapping)(nil)).Elem() +} + +func (i TaskDefinitionPortMappingArgs) ToTaskDefinitionPortMappingOutput() TaskDefinitionPortMappingOutput { + return i.ToTaskDefinitionPortMappingOutputWithContext(context.Background()) +} + +func (i TaskDefinitionPortMappingArgs) ToTaskDefinitionPortMappingOutputWithContext(ctx context.Context) TaskDefinitionPortMappingOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionPortMappingOutput) +} + +func (i TaskDefinitionPortMappingArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionPortMapping] { + return pulumix.Output[TaskDefinitionPortMapping]{ + OutputState: i.ToTaskDefinitionPortMappingOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionPortMappingArrayInput is an input type that accepts TaskDefinitionPortMappingArray and TaskDefinitionPortMappingArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionPortMappingArrayInput` via: +// +// TaskDefinitionPortMappingArray{ TaskDefinitionPortMappingArgs{...} } +type TaskDefinitionPortMappingArrayInput interface { + pulumi.Input + + ToTaskDefinitionPortMappingArrayOutput() TaskDefinitionPortMappingArrayOutput + ToTaskDefinitionPortMappingArrayOutputWithContext(context.Context) TaskDefinitionPortMappingArrayOutput +} + +type TaskDefinitionPortMappingArray []TaskDefinitionPortMappingInput + +func (TaskDefinitionPortMappingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionPortMapping)(nil)).Elem() +} + +func (i TaskDefinitionPortMappingArray) ToTaskDefinitionPortMappingArrayOutput() TaskDefinitionPortMappingArrayOutput { + return i.ToTaskDefinitionPortMappingArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionPortMappingArray) ToTaskDefinitionPortMappingArrayOutputWithContext(ctx context.Context) TaskDefinitionPortMappingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionPortMappingArrayOutput) +} + +func (i TaskDefinitionPortMappingArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionPortMapping] { + return pulumix.Output[[]TaskDefinitionPortMapping]{ + OutputState: i.ToTaskDefinitionPortMappingArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionPortMappingOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionPortMappingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionPortMapping)(nil)).Elem() +} + +func (o TaskDefinitionPortMappingOutput) ToTaskDefinitionPortMappingOutput() TaskDefinitionPortMappingOutput { + return o +} + +func (o TaskDefinitionPortMappingOutput) ToTaskDefinitionPortMappingOutputWithContext(ctx context.Context) TaskDefinitionPortMappingOutput { + return o +} + +func (o TaskDefinitionPortMappingOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionPortMapping] { + return pulumix.Output[TaskDefinitionPortMapping]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionPortMappingOutput) AppProtocol() TaskDefinitionPortMappingAppProtocolPtrOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *TaskDefinitionPortMappingAppProtocol { return v.AppProtocol }).(TaskDefinitionPortMappingAppProtocolPtrOutput) +} + +func (o TaskDefinitionPortMappingOutput) ContainerPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *int { return v.ContainerPort }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionPortMappingOutput) ContainerPortRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *string { return v.ContainerPortRange }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionPortMappingOutput) HostPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *int { return v.HostPort }).(pulumi.IntPtrOutput) +} + +func (o TaskDefinitionPortMappingOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionPortMappingOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionPortMappingOutput) TargetGroup() lb.TargetGroupOutput { + return o.ApplyT(func(v TaskDefinitionPortMapping) *lb.TargetGroup { return v.TargetGroup }).(lb.TargetGroupOutput) +} + +type TaskDefinitionPortMappingArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionPortMappingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionPortMapping)(nil)).Elem() +} + +func (o TaskDefinitionPortMappingArrayOutput) ToTaskDefinitionPortMappingArrayOutput() TaskDefinitionPortMappingArrayOutput { + return o +} + +func (o TaskDefinitionPortMappingArrayOutput) ToTaskDefinitionPortMappingArrayOutputWithContext(ctx context.Context) TaskDefinitionPortMappingArrayOutput { + return o +} + +func (o TaskDefinitionPortMappingArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionPortMapping] { + return pulumix.Output[[]TaskDefinitionPortMapping]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionPortMappingArrayOutput) Index(i pulumi.IntInput) TaskDefinitionPortMappingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionPortMapping { + return vs[0].([]TaskDefinitionPortMapping)[vs[1].(int)] + }).(TaskDefinitionPortMappingOutput) +} + +type TaskDefinitionRepositoryCredentials struct { + CredentialsParameter *string `pulumi:"credentialsParameter"` +} + +// TaskDefinitionRepositoryCredentialsInput is an input type that accepts TaskDefinitionRepositoryCredentialsArgs and TaskDefinitionRepositoryCredentialsOutput values. +// You can construct a concrete instance of `TaskDefinitionRepositoryCredentialsInput` via: +// +// TaskDefinitionRepositoryCredentialsArgs{...} +type TaskDefinitionRepositoryCredentialsInput interface { + pulumi.Input + + ToTaskDefinitionRepositoryCredentialsOutput() TaskDefinitionRepositoryCredentialsOutput + ToTaskDefinitionRepositoryCredentialsOutputWithContext(context.Context) TaskDefinitionRepositoryCredentialsOutput +} + +type TaskDefinitionRepositoryCredentialsArgs struct { + CredentialsParameter pulumi.StringPtrInput `pulumi:"credentialsParameter"` +} + +func (TaskDefinitionRepositoryCredentialsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionRepositoryCredentials)(nil)).Elem() +} + +func (i TaskDefinitionRepositoryCredentialsArgs) ToTaskDefinitionRepositoryCredentialsOutput() TaskDefinitionRepositoryCredentialsOutput { + return i.ToTaskDefinitionRepositoryCredentialsOutputWithContext(context.Background()) +} + +func (i TaskDefinitionRepositoryCredentialsArgs) ToTaskDefinitionRepositoryCredentialsOutputWithContext(ctx context.Context) TaskDefinitionRepositoryCredentialsOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionRepositoryCredentialsOutput) +} + +func (i TaskDefinitionRepositoryCredentialsArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionRepositoryCredentials] { + return pulumix.Output[TaskDefinitionRepositoryCredentials]{ + OutputState: i.ToTaskDefinitionRepositoryCredentialsOutputWithContext(ctx).OutputState, + } +} + +func (i TaskDefinitionRepositoryCredentialsArgs) ToTaskDefinitionRepositoryCredentialsPtrOutput() TaskDefinitionRepositoryCredentialsPtrOutput { + return i.ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(context.Background()) +} + +func (i TaskDefinitionRepositoryCredentialsArgs) ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(ctx context.Context) TaskDefinitionRepositoryCredentialsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionRepositoryCredentialsOutput).ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(ctx) +} + +// TaskDefinitionRepositoryCredentialsPtrInput is an input type that accepts TaskDefinitionRepositoryCredentialsArgs, TaskDefinitionRepositoryCredentialsPtr and TaskDefinitionRepositoryCredentialsPtrOutput values. +// You can construct a concrete instance of `TaskDefinitionRepositoryCredentialsPtrInput` via: +// +// TaskDefinitionRepositoryCredentialsArgs{...} +// +// or: +// +// nil +type TaskDefinitionRepositoryCredentialsPtrInput interface { + pulumi.Input + + ToTaskDefinitionRepositoryCredentialsPtrOutput() TaskDefinitionRepositoryCredentialsPtrOutput + ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(context.Context) TaskDefinitionRepositoryCredentialsPtrOutput +} + +type taskDefinitionRepositoryCredentialsPtrType TaskDefinitionRepositoryCredentialsArgs + +func TaskDefinitionRepositoryCredentialsPtr(v *TaskDefinitionRepositoryCredentialsArgs) TaskDefinitionRepositoryCredentialsPtrInput { + return (*taskDefinitionRepositoryCredentialsPtrType)(v) +} + +func (*taskDefinitionRepositoryCredentialsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionRepositoryCredentials)(nil)).Elem() +} + +func (i *taskDefinitionRepositoryCredentialsPtrType) ToTaskDefinitionRepositoryCredentialsPtrOutput() TaskDefinitionRepositoryCredentialsPtrOutput { + return i.ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(context.Background()) +} + +func (i *taskDefinitionRepositoryCredentialsPtrType) ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(ctx context.Context) TaskDefinitionRepositoryCredentialsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionRepositoryCredentialsPtrOutput) +} + +func (i *taskDefinitionRepositoryCredentialsPtrType) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionRepositoryCredentials] { + return pulumix.Output[*TaskDefinitionRepositoryCredentials]{ + OutputState: i.ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionRepositoryCredentialsOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionRepositoryCredentialsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionRepositoryCredentials)(nil)).Elem() +} + +func (o TaskDefinitionRepositoryCredentialsOutput) ToTaskDefinitionRepositoryCredentialsOutput() TaskDefinitionRepositoryCredentialsOutput { + return o +} + +func (o TaskDefinitionRepositoryCredentialsOutput) ToTaskDefinitionRepositoryCredentialsOutputWithContext(ctx context.Context) TaskDefinitionRepositoryCredentialsOutput { + return o +} + +func (o TaskDefinitionRepositoryCredentialsOutput) ToTaskDefinitionRepositoryCredentialsPtrOutput() TaskDefinitionRepositoryCredentialsPtrOutput { + return o.ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(context.Background()) +} + +func (o TaskDefinitionRepositoryCredentialsOutput) ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(ctx context.Context) TaskDefinitionRepositoryCredentialsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TaskDefinitionRepositoryCredentials) *TaskDefinitionRepositoryCredentials { + return &v + }).(TaskDefinitionRepositoryCredentialsPtrOutput) +} + +func (o TaskDefinitionRepositoryCredentialsOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionRepositoryCredentials] { + return pulumix.Output[TaskDefinitionRepositoryCredentials]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionRepositoryCredentialsOutput) CredentialsParameter() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionRepositoryCredentials) *string { return v.CredentialsParameter }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionRepositoryCredentialsPtrOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionRepositoryCredentialsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TaskDefinitionRepositoryCredentials)(nil)).Elem() +} + +func (o TaskDefinitionRepositoryCredentialsPtrOutput) ToTaskDefinitionRepositoryCredentialsPtrOutput() TaskDefinitionRepositoryCredentialsPtrOutput { + return o +} + +func (o TaskDefinitionRepositoryCredentialsPtrOutput) ToTaskDefinitionRepositoryCredentialsPtrOutputWithContext(ctx context.Context) TaskDefinitionRepositoryCredentialsPtrOutput { + return o +} + +func (o TaskDefinitionRepositoryCredentialsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*TaskDefinitionRepositoryCredentials] { + return pulumix.Output[*TaskDefinitionRepositoryCredentials]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionRepositoryCredentialsPtrOutput) Elem() TaskDefinitionRepositoryCredentialsOutput { + return o.ApplyT(func(v *TaskDefinitionRepositoryCredentials) TaskDefinitionRepositoryCredentials { + if v != nil { + return *v + } + var ret TaskDefinitionRepositoryCredentials + return ret + }).(TaskDefinitionRepositoryCredentialsOutput) +} + +func (o TaskDefinitionRepositoryCredentialsPtrOutput) CredentialsParameter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *TaskDefinitionRepositoryCredentials) *string { + if v == nil { + return nil + } + return v.CredentialsParameter + }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionResourceRequirement struct { + Type string `pulumi:"type"` + Value string `pulumi:"value"` +} + +// TaskDefinitionResourceRequirementInput is an input type that accepts TaskDefinitionResourceRequirementArgs and TaskDefinitionResourceRequirementOutput values. +// You can construct a concrete instance of `TaskDefinitionResourceRequirementInput` via: +// +// TaskDefinitionResourceRequirementArgs{...} +type TaskDefinitionResourceRequirementInput interface { + pulumi.Input + + ToTaskDefinitionResourceRequirementOutput() TaskDefinitionResourceRequirementOutput + ToTaskDefinitionResourceRequirementOutputWithContext(context.Context) TaskDefinitionResourceRequirementOutput +} + +type TaskDefinitionResourceRequirementArgs struct { + Type pulumi.StringInput `pulumi:"type"` + Value pulumi.StringInput `pulumi:"value"` +} + +func (TaskDefinitionResourceRequirementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionResourceRequirement)(nil)).Elem() +} + +func (i TaskDefinitionResourceRequirementArgs) ToTaskDefinitionResourceRequirementOutput() TaskDefinitionResourceRequirementOutput { + return i.ToTaskDefinitionResourceRequirementOutputWithContext(context.Background()) +} + +func (i TaskDefinitionResourceRequirementArgs) ToTaskDefinitionResourceRequirementOutputWithContext(ctx context.Context) TaskDefinitionResourceRequirementOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionResourceRequirementOutput) +} + +func (i TaskDefinitionResourceRequirementArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionResourceRequirement] { + return pulumix.Output[TaskDefinitionResourceRequirement]{ + OutputState: i.ToTaskDefinitionResourceRequirementOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionResourceRequirementArrayInput is an input type that accepts TaskDefinitionResourceRequirementArray and TaskDefinitionResourceRequirementArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionResourceRequirementArrayInput` via: +// +// TaskDefinitionResourceRequirementArray{ TaskDefinitionResourceRequirementArgs{...} } +type TaskDefinitionResourceRequirementArrayInput interface { + pulumi.Input + + ToTaskDefinitionResourceRequirementArrayOutput() TaskDefinitionResourceRequirementArrayOutput + ToTaskDefinitionResourceRequirementArrayOutputWithContext(context.Context) TaskDefinitionResourceRequirementArrayOutput +} + +type TaskDefinitionResourceRequirementArray []TaskDefinitionResourceRequirementInput + +func (TaskDefinitionResourceRequirementArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionResourceRequirement)(nil)).Elem() +} + +func (i TaskDefinitionResourceRequirementArray) ToTaskDefinitionResourceRequirementArrayOutput() TaskDefinitionResourceRequirementArrayOutput { + return i.ToTaskDefinitionResourceRequirementArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionResourceRequirementArray) ToTaskDefinitionResourceRequirementArrayOutputWithContext(ctx context.Context) TaskDefinitionResourceRequirementArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionResourceRequirementArrayOutput) +} + +func (i TaskDefinitionResourceRequirementArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionResourceRequirement] { + return pulumix.Output[[]TaskDefinitionResourceRequirement]{ + OutputState: i.ToTaskDefinitionResourceRequirementArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionResourceRequirementOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionResourceRequirementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionResourceRequirement)(nil)).Elem() +} + +func (o TaskDefinitionResourceRequirementOutput) ToTaskDefinitionResourceRequirementOutput() TaskDefinitionResourceRequirementOutput { + return o +} + +func (o TaskDefinitionResourceRequirementOutput) ToTaskDefinitionResourceRequirementOutputWithContext(ctx context.Context) TaskDefinitionResourceRequirementOutput { + return o +} + +func (o TaskDefinitionResourceRequirementOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionResourceRequirement] { + return pulumix.Output[TaskDefinitionResourceRequirement]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionResourceRequirementOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionResourceRequirement) string { return v.Type }).(pulumi.StringOutput) +} + +func (o TaskDefinitionResourceRequirementOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionResourceRequirement) string { return v.Value }).(pulumi.StringOutput) +} + +type TaskDefinitionResourceRequirementArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionResourceRequirementArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionResourceRequirement)(nil)).Elem() +} + +func (o TaskDefinitionResourceRequirementArrayOutput) ToTaskDefinitionResourceRequirementArrayOutput() TaskDefinitionResourceRequirementArrayOutput { + return o +} + +func (o TaskDefinitionResourceRequirementArrayOutput) ToTaskDefinitionResourceRequirementArrayOutputWithContext(ctx context.Context) TaskDefinitionResourceRequirementArrayOutput { + return o +} + +func (o TaskDefinitionResourceRequirementArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionResourceRequirement] { + return pulumix.Output[[]TaskDefinitionResourceRequirement]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionResourceRequirementArrayOutput) Index(i pulumi.IntInput) TaskDefinitionResourceRequirementOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionResourceRequirement { + return vs[0].([]TaskDefinitionResourceRequirement)[vs[1].(int)] + }).(TaskDefinitionResourceRequirementOutput) +} + +type TaskDefinitionSecret struct { + Name string `pulumi:"name"` + ValueFrom string `pulumi:"valueFrom"` +} + +// TaskDefinitionSecretInput is an input type that accepts TaskDefinitionSecretArgs and TaskDefinitionSecretOutput values. +// You can construct a concrete instance of `TaskDefinitionSecretInput` via: +// +// TaskDefinitionSecretArgs{...} +type TaskDefinitionSecretInput interface { + pulumi.Input + + ToTaskDefinitionSecretOutput() TaskDefinitionSecretOutput + ToTaskDefinitionSecretOutputWithContext(context.Context) TaskDefinitionSecretOutput +} + +type TaskDefinitionSecretArgs struct { + Name pulumi.StringInput `pulumi:"name"` + ValueFrom pulumi.StringInput `pulumi:"valueFrom"` +} + +func (TaskDefinitionSecretArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionSecret)(nil)).Elem() +} + +func (i TaskDefinitionSecretArgs) ToTaskDefinitionSecretOutput() TaskDefinitionSecretOutput { + return i.ToTaskDefinitionSecretOutputWithContext(context.Background()) +} + +func (i TaskDefinitionSecretArgs) ToTaskDefinitionSecretOutputWithContext(ctx context.Context) TaskDefinitionSecretOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionSecretOutput) +} + +func (i TaskDefinitionSecretArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionSecret] { + return pulumix.Output[TaskDefinitionSecret]{ + OutputState: i.ToTaskDefinitionSecretOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionSecretArrayInput is an input type that accepts TaskDefinitionSecretArray and TaskDefinitionSecretArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionSecretArrayInput` via: +// +// TaskDefinitionSecretArray{ TaskDefinitionSecretArgs{...} } +type TaskDefinitionSecretArrayInput interface { + pulumi.Input + + ToTaskDefinitionSecretArrayOutput() TaskDefinitionSecretArrayOutput + ToTaskDefinitionSecretArrayOutputWithContext(context.Context) TaskDefinitionSecretArrayOutput +} + +type TaskDefinitionSecretArray []TaskDefinitionSecretInput + +func (TaskDefinitionSecretArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionSecret)(nil)).Elem() +} + +func (i TaskDefinitionSecretArray) ToTaskDefinitionSecretArrayOutput() TaskDefinitionSecretArrayOutput { + return i.ToTaskDefinitionSecretArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionSecretArray) ToTaskDefinitionSecretArrayOutputWithContext(ctx context.Context) TaskDefinitionSecretArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionSecretArrayOutput) +} + +func (i TaskDefinitionSecretArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionSecret] { + return pulumix.Output[[]TaskDefinitionSecret]{ + OutputState: i.ToTaskDefinitionSecretArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionSecretOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionSecretOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionSecret)(nil)).Elem() +} + +func (o TaskDefinitionSecretOutput) ToTaskDefinitionSecretOutput() TaskDefinitionSecretOutput { + return o +} + +func (o TaskDefinitionSecretOutput) ToTaskDefinitionSecretOutputWithContext(ctx context.Context) TaskDefinitionSecretOutput { + return o +} + +func (o TaskDefinitionSecretOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionSecret] { + return pulumix.Output[TaskDefinitionSecret]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionSecretOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionSecret) string { return v.Name }).(pulumi.StringOutput) +} + +func (o TaskDefinitionSecretOutput) ValueFrom() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionSecret) string { return v.ValueFrom }).(pulumi.StringOutput) +} + +type TaskDefinitionSecretArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionSecretArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionSecret)(nil)).Elem() +} + +func (o TaskDefinitionSecretArrayOutput) ToTaskDefinitionSecretArrayOutput() TaskDefinitionSecretArrayOutput { + return o +} + +func (o TaskDefinitionSecretArrayOutput) ToTaskDefinitionSecretArrayOutputWithContext(ctx context.Context) TaskDefinitionSecretArrayOutput { + return o +} + +func (o TaskDefinitionSecretArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionSecret] { + return pulumix.Output[[]TaskDefinitionSecret]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionSecretArrayOutput) Index(i pulumi.IntInput) TaskDefinitionSecretOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionSecret { + return vs[0].([]TaskDefinitionSecret)[vs[1].(int)] + }).(TaskDefinitionSecretOutput) +} + +type TaskDefinitionSystemControl struct { + Namespace *string `pulumi:"namespace"` + Value *string `pulumi:"value"` +} + +// TaskDefinitionSystemControlInput is an input type that accepts TaskDefinitionSystemControlArgs and TaskDefinitionSystemControlOutput values. +// You can construct a concrete instance of `TaskDefinitionSystemControlInput` via: +// +// TaskDefinitionSystemControlArgs{...} +type TaskDefinitionSystemControlInput interface { + pulumi.Input + + ToTaskDefinitionSystemControlOutput() TaskDefinitionSystemControlOutput + ToTaskDefinitionSystemControlOutputWithContext(context.Context) TaskDefinitionSystemControlOutput +} + +type TaskDefinitionSystemControlArgs struct { + Namespace pulumi.StringPtrInput `pulumi:"namespace"` + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (TaskDefinitionSystemControlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionSystemControl)(nil)).Elem() +} + +func (i TaskDefinitionSystemControlArgs) ToTaskDefinitionSystemControlOutput() TaskDefinitionSystemControlOutput { + return i.ToTaskDefinitionSystemControlOutputWithContext(context.Background()) +} + +func (i TaskDefinitionSystemControlArgs) ToTaskDefinitionSystemControlOutputWithContext(ctx context.Context) TaskDefinitionSystemControlOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionSystemControlOutput) +} + +func (i TaskDefinitionSystemControlArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionSystemControl] { + return pulumix.Output[TaskDefinitionSystemControl]{ + OutputState: i.ToTaskDefinitionSystemControlOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionSystemControlArrayInput is an input type that accepts TaskDefinitionSystemControlArray and TaskDefinitionSystemControlArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionSystemControlArrayInput` via: +// +// TaskDefinitionSystemControlArray{ TaskDefinitionSystemControlArgs{...} } +type TaskDefinitionSystemControlArrayInput interface { + pulumi.Input + + ToTaskDefinitionSystemControlArrayOutput() TaskDefinitionSystemControlArrayOutput + ToTaskDefinitionSystemControlArrayOutputWithContext(context.Context) TaskDefinitionSystemControlArrayOutput +} + +type TaskDefinitionSystemControlArray []TaskDefinitionSystemControlInput + +func (TaskDefinitionSystemControlArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionSystemControl)(nil)).Elem() +} + +func (i TaskDefinitionSystemControlArray) ToTaskDefinitionSystemControlArrayOutput() TaskDefinitionSystemControlArrayOutput { + return i.ToTaskDefinitionSystemControlArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionSystemControlArray) ToTaskDefinitionSystemControlArrayOutputWithContext(ctx context.Context) TaskDefinitionSystemControlArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionSystemControlArrayOutput) +} + +func (i TaskDefinitionSystemControlArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionSystemControl] { + return pulumix.Output[[]TaskDefinitionSystemControl]{ + OutputState: i.ToTaskDefinitionSystemControlArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionSystemControlOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionSystemControlOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionSystemControl)(nil)).Elem() +} + +func (o TaskDefinitionSystemControlOutput) ToTaskDefinitionSystemControlOutput() TaskDefinitionSystemControlOutput { + return o +} + +func (o TaskDefinitionSystemControlOutput) ToTaskDefinitionSystemControlOutputWithContext(ctx context.Context) TaskDefinitionSystemControlOutput { + return o +} + +func (o TaskDefinitionSystemControlOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionSystemControl] { + return pulumix.Output[TaskDefinitionSystemControl]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionSystemControlOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionSystemControl) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionSystemControlOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionSystemControl) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionSystemControlArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionSystemControlArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionSystemControl)(nil)).Elem() +} + +func (o TaskDefinitionSystemControlArrayOutput) ToTaskDefinitionSystemControlArrayOutput() TaskDefinitionSystemControlArrayOutput { + return o +} + +func (o TaskDefinitionSystemControlArrayOutput) ToTaskDefinitionSystemControlArrayOutputWithContext(ctx context.Context) TaskDefinitionSystemControlArrayOutput { + return o +} + +func (o TaskDefinitionSystemControlArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionSystemControl] { + return pulumix.Output[[]TaskDefinitionSystemControl]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionSystemControlArrayOutput) Index(i pulumi.IntInput) TaskDefinitionSystemControlOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionSystemControl { + return vs[0].([]TaskDefinitionSystemControl)[vs[1].(int)] + }).(TaskDefinitionSystemControlOutput) +} + +type TaskDefinitionTmpfs struct { + ContainerPath *string `pulumi:"containerPath"` + MountOptions []string `pulumi:"mountOptions"` + Size int `pulumi:"size"` +} + +// TaskDefinitionTmpfsInput is an input type that accepts TaskDefinitionTmpfsArgs and TaskDefinitionTmpfsOutput values. +// You can construct a concrete instance of `TaskDefinitionTmpfsInput` via: +// +// TaskDefinitionTmpfsArgs{...} +type TaskDefinitionTmpfsInput interface { + pulumi.Input + + ToTaskDefinitionTmpfsOutput() TaskDefinitionTmpfsOutput + ToTaskDefinitionTmpfsOutputWithContext(context.Context) TaskDefinitionTmpfsOutput +} + +type TaskDefinitionTmpfsArgs struct { + ContainerPath pulumi.StringPtrInput `pulumi:"containerPath"` + MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` + Size pulumi.IntInput `pulumi:"size"` +} + +func (TaskDefinitionTmpfsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionTmpfs)(nil)).Elem() +} + +func (i TaskDefinitionTmpfsArgs) ToTaskDefinitionTmpfsOutput() TaskDefinitionTmpfsOutput { + return i.ToTaskDefinitionTmpfsOutputWithContext(context.Background()) +} + +func (i TaskDefinitionTmpfsArgs) ToTaskDefinitionTmpfsOutputWithContext(ctx context.Context) TaskDefinitionTmpfsOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionTmpfsOutput) +} + +func (i TaskDefinitionTmpfsArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionTmpfs] { + return pulumix.Output[TaskDefinitionTmpfs]{ + OutputState: i.ToTaskDefinitionTmpfsOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionTmpfsArrayInput is an input type that accepts TaskDefinitionTmpfsArray and TaskDefinitionTmpfsArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionTmpfsArrayInput` via: +// +// TaskDefinitionTmpfsArray{ TaskDefinitionTmpfsArgs{...} } +type TaskDefinitionTmpfsArrayInput interface { + pulumi.Input + + ToTaskDefinitionTmpfsArrayOutput() TaskDefinitionTmpfsArrayOutput + ToTaskDefinitionTmpfsArrayOutputWithContext(context.Context) TaskDefinitionTmpfsArrayOutput +} + +type TaskDefinitionTmpfsArray []TaskDefinitionTmpfsInput + +func (TaskDefinitionTmpfsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionTmpfs)(nil)).Elem() +} + +func (i TaskDefinitionTmpfsArray) ToTaskDefinitionTmpfsArrayOutput() TaskDefinitionTmpfsArrayOutput { + return i.ToTaskDefinitionTmpfsArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionTmpfsArray) ToTaskDefinitionTmpfsArrayOutputWithContext(ctx context.Context) TaskDefinitionTmpfsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionTmpfsArrayOutput) +} + +func (i TaskDefinitionTmpfsArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionTmpfs] { + return pulumix.Output[[]TaskDefinitionTmpfs]{ + OutputState: i.ToTaskDefinitionTmpfsArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionTmpfsOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionTmpfsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionTmpfs)(nil)).Elem() +} + +func (o TaskDefinitionTmpfsOutput) ToTaskDefinitionTmpfsOutput() TaskDefinitionTmpfsOutput { + return o +} + +func (o TaskDefinitionTmpfsOutput) ToTaskDefinitionTmpfsOutputWithContext(ctx context.Context) TaskDefinitionTmpfsOutput { + return o +} + +func (o TaskDefinitionTmpfsOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionTmpfs] { + return pulumix.Output[TaskDefinitionTmpfs]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionTmpfsOutput) ContainerPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionTmpfs) *string { return v.ContainerPath }).(pulumi.StringPtrOutput) +} + +func (o TaskDefinitionTmpfsOutput) MountOptions() pulumi.StringArrayOutput { + return o.ApplyT(func(v TaskDefinitionTmpfs) []string { return v.MountOptions }).(pulumi.StringArrayOutput) +} + +func (o TaskDefinitionTmpfsOutput) Size() pulumi.IntOutput { + return o.ApplyT(func(v TaskDefinitionTmpfs) int { return v.Size }).(pulumi.IntOutput) +} + +type TaskDefinitionTmpfsArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionTmpfsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionTmpfs)(nil)).Elem() +} + +func (o TaskDefinitionTmpfsArrayOutput) ToTaskDefinitionTmpfsArrayOutput() TaskDefinitionTmpfsArrayOutput { + return o +} + +func (o TaskDefinitionTmpfsArrayOutput) ToTaskDefinitionTmpfsArrayOutputWithContext(ctx context.Context) TaskDefinitionTmpfsArrayOutput { + return o +} + +func (o TaskDefinitionTmpfsArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionTmpfs] { + return pulumix.Output[[]TaskDefinitionTmpfs]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionTmpfsArrayOutput) Index(i pulumi.IntInput) TaskDefinitionTmpfsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionTmpfs { + return vs[0].([]TaskDefinitionTmpfs)[vs[1].(int)] + }).(TaskDefinitionTmpfsOutput) +} + +type TaskDefinitionUlimit struct { + HardLimit int `pulumi:"hardLimit"` + Name string `pulumi:"name"` + SoftLimit int `pulumi:"softLimit"` +} + +// TaskDefinitionUlimitInput is an input type that accepts TaskDefinitionUlimitArgs and TaskDefinitionUlimitOutput values. +// You can construct a concrete instance of `TaskDefinitionUlimitInput` via: +// +// TaskDefinitionUlimitArgs{...} +type TaskDefinitionUlimitInput interface { + pulumi.Input + + ToTaskDefinitionUlimitOutput() TaskDefinitionUlimitOutput + ToTaskDefinitionUlimitOutputWithContext(context.Context) TaskDefinitionUlimitOutput +} + +type TaskDefinitionUlimitArgs struct { + HardLimit pulumi.IntInput `pulumi:"hardLimit"` + Name pulumi.StringInput `pulumi:"name"` + SoftLimit pulumi.IntInput `pulumi:"softLimit"` +} + +func (TaskDefinitionUlimitArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionUlimit)(nil)).Elem() +} + +func (i TaskDefinitionUlimitArgs) ToTaskDefinitionUlimitOutput() TaskDefinitionUlimitOutput { + return i.ToTaskDefinitionUlimitOutputWithContext(context.Background()) +} + +func (i TaskDefinitionUlimitArgs) ToTaskDefinitionUlimitOutputWithContext(ctx context.Context) TaskDefinitionUlimitOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionUlimitOutput) +} + +func (i TaskDefinitionUlimitArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionUlimit] { + return pulumix.Output[TaskDefinitionUlimit]{ + OutputState: i.ToTaskDefinitionUlimitOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionUlimitArrayInput is an input type that accepts TaskDefinitionUlimitArray and TaskDefinitionUlimitArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionUlimitArrayInput` via: +// +// TaskDefinitionUlimitArray{ TaskDefinitionUlimitArgs{...} } +type TaskDefinitionUlimitArrayInput interface { + pulumi.Input + + ToTaskDefinitionUlimitArrayOutput() TaskDefinitionUlimitArrayOutput + ToTaskDefinitionUlimitArrayOutputWithContext(context.Context) TaskDefinitionUlimitArrayOutput +} + +type TaskDefinitionUlimitArray []TaskDefinitionUlimitInput + +func (TaskDefinitionUlimitArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionUlimit)(nil)).Elem() +} + +func (i TaskDefinitionUlimitArray) ToTaskDefinitionUlimitArrayOutput() TaskDefinitionUlimitArrayOutput { + return i.ToTaskDefinitionUlimitArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionUlimitArray) ToTaskDefinitionUlimitArrayOutputWithContext(ctx context.Context) TaskDefinitionUlimitArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionUlimitArrayOutput) +} + +func (i TaskDefinitionUlimitArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionUlimit] { + return pulumix.Output[[]TaskDefinitionUlimit]{ + OutputState: i.ToTaskDefinitionUlimitArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionUlimitOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionUlimitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionUlimit)(nil)).Elem() +} + +func (o TaskDefinitionUlimitOutput) ToTaskDefinitionUlimitOutput() TaskDefinitionUlimitOutput { + return o +} + +func (o TaskDefinitionUlimitOutput) ToTaskDefinitionUlimitOutputWithContext(ctx context.Context) TaskDefinitionUlimitOutput { + return o +} + +func (o TaskDefinitionUlimitOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionUlimit] { + return pulumix.Output[TaskDefinitionUlimit]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionUlimitOutput) HardLimit() pulumi.IntOutput { + return o.ApplyT(func(v TaskDefinitionUlimit) int { return v.HardLimit }).(pulumi.IntOutput) +} + +func (o TaskDefinitionUlimitOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v TaskDefinitionUlimit) string { return v.Name }).(pulumi.StringOutput) +} + +func (o TaskDefinitionUlimitOutput) SoftLimit() pulumi.IntOutput { + return o.ApplyT(func(v TaskDefinitionUlimit) int { return v.SoftLimit }).(pulumi.IntOutput) +} + +type TaskDefinitionUlimitArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionUlimitArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionUlimit)(nil)).Elem() +} + +func (o TaskDefinitionUlimitArrayOutput) ToTaskDefinitionUlimitArrayOutput() TaskDefinitionUlimitArrayOutput { + return o +} + +func (o TaskDefinitionUlimitArrayOutput) ToTaskDefinitionUlimitArrayOutputWithContext(ctx context.Context) TaskDefinitionUlimitArrayOutput { + return o +} + +func (o TaskDefinitionUlimitArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionUlimit] { + return pulumix.Output[[]TaskDefinitionUlimit]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionUlimitArrayOutput) Index(i pulumi.IntInput) TaskDefinitionUlimitOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionUlimit { + return vs[0].([]TaskDefinitionUlimit)[vs[1].(int)] + }).(TaskDefinitionUlimitOutput) +} + +type TaskDefinitionVolumeFrom struct { + ReadOnly *bool `pulumi:"readOnly"` + SourceContainer *string `pulumi:"sourceContainer"` +} + +// TaskDefinitionVolumeFromInput is an input type that accepts TaskDefinitionVolumeFromArgs and TaskDefinitionVolumeFromOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeFromInput` via: +// +// TaskDefinitionVolumeFromArgs{...} +type TaskDefinitionVolumeFromInput interface { + pulumi.Input + + ToTaskDefinitionVolumeFromOutput() TaskDefinitionVolumeFromOutput + ToTaskDefinitionVolumeFromOutputWithContext(context.Context) TaskDefinitionVolumeFromOutput +} + +type TaskDefinitionVolumeFromArgs struct { + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + SourceContainer pulumi.StringPtrInput `pulumi:"sourceContainer"` +} + +func (TaskDefinitionVolumeFromArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeFrom)(nil)).Elem() +} + +func (i TaskDefinitionVolumeFromArgs) ToTaskDefinitionVolumeFromOutput() TaskDefinitionVolumeFromOutput { + return i.ToTaskDefinitionVolumeFromOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeFromArgs) ToTaskDefinitionVolumeFromOutputWithContext(ctx context.Context) TaskDefinitionVolumeFromOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFromOutput) +} + +func (i TaskDefinitionVolumeFromArgs) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionVolumeFrom] { + return pulumix.Output[TaskDefinitionVolumeFrom]{ + OutputState: i.ToTaskDefinitionVolumeFromOutputWithContext(ctx).OutputState, + } +} + +// TaskDefinitionVolumeFromArrayInput is an input type that accepts TaskDefinitionVolumeFromArray and TaskDefinitionVolumeFromArrayOutput values. +// You can construct a concrete instance of `TaskDefinitionVolumeFromArrayInput` via: +// +// TaskDefinitionVolumeFromArray{ TaskDefinitionVolumeFromArgs{...} } +type TaskDefinitionVolumeFromArrayInput interface { + pulumi.Input + + ToTaskDefinitionVolumeFromArrayOutput() TaskDefinitionVolumeFromArrayOutput + ToTaskDefinitionVolumeFromArrayOutputWithContext(context.Context) TaskDefinitionVolumeFromArrayOutput +} + +type TaskDefinitionVolumeFromArray []TaskDefinitionVolumeFromInput + +func (TaskDefinitionVolumeFromArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionVolumeFrom)(nil)).Elem() +} + +func (i TaskDefinitionVolumeFromArray) ToTaskDefinitionVolumeFromArrayOutput() TaskDefinitionVolumeFromArrayOutput { + return i.ToTaskDefinitionVolumeFromArrayOutputWithContext(context.Background()) +} + +func (i TaskDefinitionVolumeFromArray) ToTaskDefinitionVolumeFromArrayOutputWithContext(ctx context.Context) TaskDefinitionVolumeFromArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TaskDefinitionVolumeFromArrayOutput) +} + +func (i TaskDefinitionVolumeFromArray) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionVolumeFrom] { + return pulumix.Output[[]TaskDefinitionVolumeFrom]{ + OutputState: i.ToTaskDefinitionVolumeFromArrayOutputWithContext(ctx).OutputState, + } +} + +type TaskDefinitionVolumeFromOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeFromOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TaskDefinitionVolumeFrom)(nil)).Elem() +} + +func (o TaskDefinitionVolumeFromOutput) ToTaskDefinitionVolumeFromOutput() TaskDefinitionVolumeFromOutput { + return o +} + +func (o TaskDefinitionVolumeFromOutput) ToTaskDefinitionVolumeFromOutputWithContext(ctx context.Context) TaskDefinitionVolumeFromOutput { + return o +} + +func (o TaskDefinitionVolumeFromOutput) ToOutput(ctx context.Context) pulumix.Output[TaskDefinitionVolumeFrom] { + return pulumix.Output[TaskDefinitionVolumeFrom]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionVolumeFromOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFrom) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +func (o TaskDefinitionVolumeFromOutput) SourceContainer() pulumi.StringPtrOutput { + return o.ApplyT(func(v TaskDefinitionVolumeFrom) *string { return v.SourceContainer }).(pulumi.StringPtrOutput) +} + +type TaskDefinitionVolumeFromArrayOutput struct{ *pulumi.OutputState } + +func (TaskDefinitionVolumeFromArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]TaskDefinitionVolumeFrom)(nil)).Elem() +} + +func (o TaskDefinitionVolumeFromArrayOutput) ToTaskDefinitionVolumeFromArrayOutput() TaskDefinitionVolumeFromArrayOutput { + return o +} + +func (o TaskDefinitionVolumeFromArrayOutput) ToTaskDefinitionVolumeFromArrayOutputWithContext(ctx context.Context) TaskDefinitionVolumeFromArrayOutput { + return o +} + +func (o TaskDefinitionVolumeFromArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]TaskDefinitionVolumeFrom] { + return pulumix.Output[[]TaskDefinitionVolumeFrom]{ + OutputState: o.OutputState, + } +} + +func (o TaskDefinitionVolumeFromArrayOutput) Index(i pulumi.IntInput) TaskDefinitionVolumeFromOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) TaskDefinitionVolumeFrom { + return vs[0].([]TaskDefinitionVolumeFrom)[vs[1].(int)] + }).(TaskDefinitionVolumeFromOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EC2ServiceTaskDefinitionInput)(nil)).Elem(), EC2ServiceTaskDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*EC2ServiceTaskDefinitionPtrInput)(nil)).Elem(), EC2ServiceTaskDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FargateServiceTaskDefinitionInput)(nil)).Elem(), FargateServiceTaskDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FargateServiceTaskDefinitionPtrInput)(nil)).Elem(), FargateServiceTaskDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionContainerDefinitionInput)(nil)).Elem(), TaskDefinitionContainerDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionContainerDefinitionPtrInput)(nil)).Elem(), TaskDefinitionContainerDefinitionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionContainerDefinitionMapInput)(nil)).Elem(), TaskDefinitionContainerDefinitionMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionContainerDependencyInput)(nil)).Elem(), TaskDefinitionContainerDependencyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionContainerDependencyArrayInput)(nil)).Elem(), TaskDefinitionContainerDependencyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionDeviceInput)(nil)).Elem(), TaskDefinitionDeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionDeviceArrayInput)(nil)).Elem(), TaskDefinitionDeviceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEnvironmentFileInput)(nil)).Elem(), TaskDefinitionEnvironmentFileArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionEnvironmentFileArrayInput)(nil)).Elem(), TaskDefinitionEnvironmentFileArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFirelensConfigurationInput)(nil)).Elem(), TaskDefinitionFirelensConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionFirelensConfigurationPtrInput)(nil)).Elem(), TaskDefinitionFirelensConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionHealthCheckInput)(nil)).Elem(), TaskDefinitionHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionHealthCheckPtrInput)(nil)).Elem(), TaskDefinitionHealthCheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionHostEntryInput)(nil)).Elem(), TaskDefinitionHostEntryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionHostEntryArrayInput)(nil)).Elem(), TaskDefinitionHostEntryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionKernelCapabilitiesInput)(nil)).Elem(), TaskDefinitionKernelCapabilitiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionKernelCapabilitiesPtrInput)(nil)).Elem(), TaskDefinitionKernelCapabilitiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionKeyValuePairInput)(nil)).Elem(), TaskDefinitionKeyValuePairArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionKeyValuePairArrayInput)(nil)).Elem(), TaskDefinitionKeyValuePairArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionLinuxParametersInput)(nil)).Elem(), TaskDefinitionLinuxParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionLinuxParametersPtrInput)(nil)).Elem(), TaskDefinitionLinuxParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionLogConfigurationInput)(nil)).Elem(), TaskDefinitionLogConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionLogConfigurationPtrInput)(nil)).Elem(), TaskDefinitionLogConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionMountPointInput)(nil)).Elem(), TaskDefinitionMountPointArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionMountPointArrayInput)(nil)).Elem(), TaskDefinitionMountPointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionPortMappingInput)(nil)).Elem(), TaskDefinitionPortMappingArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionPortMappingArrayInput)(nil)).Elem(), TaskDefinitionPortMappingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionRepositoryCredentialsInput)(nil)).Elem(), TaskDefinitionRepositoryCredentialsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionRepositoryCredentialsPtrInput)(nil)).Elem(), TaskDefinitionRepositoryCredentialsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionResourceRequirementInput)(nil)).Elem(), TaskDefinitionResourceRequirementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionResourceRequirementArrayInput)(nil)).Elem(), TaskDefinitionResourceRequirementArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionSecretInput)(nil)).Elem(), TaskDefinitionSecretArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionSecretArrayInput)(nil)).Elem(), TaskDefinitionSecretArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionSystemControlInput)(nil)).Elem(), TaskDefinitionSystemControlArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionSystemControlArrayInput)(nil)).Elem(), TaskDefinitionSystemControlArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionTmpfsInput)(nil)).Elem(), TaskDefinitionTmpfsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionTmpfsArrayInput)(nil)).Elem(), TaskDefinitionTmpfsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionUlimitInput)(nil)).Elem(), TaskDefinitionUlimitArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionUlimitArrayInput)(nil)).Elem(), TaskDefinitionUlimitArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeFromInput)(nil)).Elem(), TaskDefinitionVolumeFromArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TaskDefinitionVolumeFromArrayInput)(nil)).Elem(), TaskDefinitionVolumeFromArray{}) + pulumi.RegisterOutputType(EC2ServiceTaskDefinitionOutput{}) + pulumi.RegisterOutputType(EC2ServiceTaskDefinitionPtrOutput{}) + pulumi.RegisterOutputType(FargateServiceTaskDefinitionOutput{}) + pulumi.RegisterOutputType(FargateServiceTaskDefinitionPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionContainerDefinitionOutput{}) + pulumi.RegisterOutputType(TaskDefinitionContainerDefinitionPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionContainerDefinitionMapOutput{}) + pulumi.RegisterOutputType(TaskDefinitionContainerDependencyOutput{}) + pulumi.RegisterOutputType(TaskDefinitionContainerDependencyArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionDeviceOutput{}) + pulumi.RegisterOutputType(TaskDefinitionDeviceArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionEnvironmentFileOutput{}) + pulumi.RegisterOutputType(TaskDefinitionEnvironmentFileArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionFirelensConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionFirelensConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionHealthCheckOutput{}) + pulumi.RegisterOutputType(TaskDefinitionHealthCheckPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionHostEntryOutput{}) + pulumi.RegisterOutputType(TaskDefinitionHostEntryArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionKernelCapabilitiesOutput{}) + pulumi.RegisterOutputType(TaskDefinitionKernelCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionKeyValuePairOutput{}) + pulumi.RegisterOutputType(TaskDefinitionKeyValuePairArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionLinuxParametersOutput{}) + pulumi.RegisterOutputType(TaskDefinitionLinuxParametersPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionLogConfigurationOutput{}) + pulumi.RegisterOutputType(TaskDefinitionLogConfigurationPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionMountPointOutput{}) + pulumi.RegisterOutputType(TaskDefinitionMountPointArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionPortMappingOutput{}) + pulumi.RegisterOutputType(TaskDefinitionPortMappingArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionRepositoryCredentialsOutput{}) + pulumi.RegisterOutputType(TaskDefinitionRepositoryCredentialsPtrOutput{}) + pulumi.RegisterOutputType(TaskDefinitionResourceRequirementOutput{}) + pulumi.RegisterOutputType(TaskDefinitionResourceRequirementArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionSecretOutput{}) + pulumi.RegisterOutputType(TaskDefinitionSecretArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionSystemControlOutput{}) + pulumi.RegisterOutputType(TaskDefinitionSystemControlArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionTmpfsOutput{}) + pulumi.RegisterOutputType(TaskDefinitionTmpfsArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionUlimitOutput{}) + pulumi.RegisterOutputType(TaskDefinitionUlimitArrayOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeFromOutput{}) + pulumi.RegisterOutputType(TaskDefinitionVolumeFromArrayOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiUtilities.go new file mode 100644 index 000000000..52d63366d --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiUtilities.go @@ -0,0 +1,113 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package internal + +import ( + "fmt" + "os" + "reflect" + "regexp" + "strconv" + "strings" + + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type envParser func(v string) interface{} + +func ParseEnvBool(v string) interface{} { + b, err := strconv.ParseBool(v) + if err != nil { + return nil + } + return b +} + +func ParseEnvInt(v string) interface{} { + i, err := strconv.ParseInt(v, 0, 0) + if err != nil { + return nil + } + return int(i) +} + +func ParseEnvFloat(v string) interface{} { + f, err := strconv.ParseFloat(v, 64) + if err != nil { + return nil + } + return f +} + +func ParseEnvStringArray(v string) interface{} { + var result pulumi.StringArray + for _, item := range strings.Split(v, ";") { + result = append(result, pulumi.String(item)) + } + return result +} + +func GetEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { + for _, v := range vars { + if value, ok := os.LookupEnv(v); ok { + if parser != nil { + return parser(value) + } + return value + } + } + return def +} + +// PkgVersion uses reflection to determine the version of the current package. +// If a version cannot be determined, v1 will be assumed. The second return +// value is always nil. +func PkgVersion() (semver.Version, error) { + // emptyVersion defaults to v0.0.0 + if !SdkVersion.Equals(semver.Version{}) { + return SdkVersion, nil + } + type sentinal struct{} + pkgPath := reflect.TypeOf(sentinal{}).PkgPath() + re := regexp.MustCompile("^.*/pulumi-awsx/sdk(/v\\d+)?") + if match := re.FindStringSubmatch(pkgPath); match != nil { + vStr := match[1] + if len(vStr) == 0 { // If the version capture group was empty, default to v1. + return semver.Version{Major: 1}, nil + } + return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil + } + return semver.Version{Major: 1}, nil +} + +// isZero is a null safe check for if a value is it's types zero value. +func IsZero(v interface{}) bool { + if v == nil { + return true + } + return reflect.ValueOf(v).IsZero() +} + +// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource. +func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { + defaults := []pulumi.ResourceOption{} + + version := SdkVersion + if !version.Equals(semver.Version{}) { + defaults = append(defaults, pulumi.Version(version.String())) + } + return append(defaults, opts...) +} + +// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke. +func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { + defaults := []pulumi.InvokeOption{} + + version := SdkVersion + if !version.Equals(semver.Version{}) { + defaults = append(defaults, pulumi.Version(version.String())) + } + return append(defaults, opts...) +} diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiVersion.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiVersion.go new file mode 100644 index 000000000..b1b5493e4 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal/pulumiVersion.go @@ -0,0 +1,11 @@ +// Code generated by pulumi-gen-awsx DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package internal + +import ( + "github.com/blang/semver" +) + +var SdkVersion semver.Version = semver.Version{} +var pluginDownloadURL string = "" diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/LICENSE b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/container.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/container.go new file mode 100644 index 000000000..432c3f736 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/container.go @@ -0,0 +1,1282 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// +// Manages the lifecycle of a Docker container. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ubuntuRemoteImage, err := docker.NewRemoteImage(ctx, "ubuntuRemoteImage", &docker.RemoteImageArgs{ +// Name: pulumi.String("ubuntu:precise"), +// }) +// if err != nil { +// return err +// } +// _, err = docker.NewContainer(ctx, "ubuntuContainer", &docker.ContainerArgs{ +// Image: ubuntuRemoteImage.ImageId, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ### Example Assuming you created a `container` as follows #!/bin/bash docker run --name foo -p8080:80 -d nginx +// +// prints the container ID +// +// 9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd you provide the definition for the resource as follows terraform resource "docker_container" "foo" { +// +// name +// +// = "foo" +// +// image = "nginx" +// +// ports { +// +// internal = "80" +// +// external = "8080" +// +// } } then the import command is as follows #!/bin/bash +// +// ```sh +// +// $ pulumi import docker:index/container:Container foo 9a550c0f0163d39d77222d3efd58701b625d47676c25c686c95b5b92d1cba6fd +// +// ``` +type Container struct { + pulumi.CustomResourceState + + // If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`. + Attach pulumi.BoolPtrOutput `pulumi:"attach"` + // The network bridge of the container as read from its NetworkSettings. + Bridge pulumi.StringOutput `pulumi:"bridge"` + // Add or drop certrain linux capabilities. + Capabilities ContainerCapabilitiesPtrOutput `pulumi:"capabilities"` + // Cgroup namespace mode to use for the container. Possible values are: `private`, `host`. + CgroupnsMode pulumi.StringPtrOutput `pulumi:"cgroupnsMode"` + // The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be `["/usr/bin/myprogram","-f","baz.con"]`. + Command pulumi.StringArrayOutput `pulumi:"command"` + // The logs of the container if its execution is done (`attach` must be disabled). + ContainerLogs pulumi.StringOutput `pulumi:"containerLogs"` + // The total number of milliseconds to wait for the container to reach status 'running' + ContainerReadRefreshTimeoutMilliseconds pulumi.IntPtrOutput `pulumi:"containerReadRefreshTimeoutMilliseconds"` + // A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`. + CpuSet pulumi.StringPtrOutput `pulumi:"cpuSet"` + // CPU shares (relative weight) for the container. + CpuShares pulumi.IntPtrOutput `pulumi:"cpuShares"` + // If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on successful stop. + DestroyGraceSeconds pulumi.IntPtrOutput `pulumi:"destroyGraceSeconds"` + // Bind devices to the container. + Devices ContainerDeviceArrayOutput `pulumi:"devices"` + // DNS servers to use. + Dns pulumi.StringArrayOutput `pulumi:"dns"` + // DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. + DnsOpts pulumi.StringArrayOutput `pulumi:"dnsOpts"` + // DNS search domains that are used when bare unqualified hostnames are used inside of the container. + DnsSearches pulumi.StringArrayOutput `pulumi:"dnsSearches"` + // Domain name of the container. + Domainname pulumi.StringPtrOutput `pulumi:"domainname"` + // The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be `"/usr/bin/myprogra"]`. + Entrypoints pulumi.StringArrayOutput `pulumi:"entrypoints"` + // Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs pulumi.StringArrayOutput `pulumi:"envs"` + // The exit code of the container if its execution is done (`mustRun` must be disabled). + ExitCode pulumi.IntOutput `pulumi:"exitCode"` + // GPU devices to add to the container. Currently, only the value `all` is supported. Passing any other value will result in unexpected behavior. + Gpus pulumi.StringPtrOutput `pulumi:"gpus"` + // Additional groups for the container user + GroupAdds pulumi.StringArrayOutput `pulumi:"groupAdds"` + // A test to perform to check that the container is healthy + Healthcheck ContainerHealthcheckOutput `pulumi:"healthcheck"` + // Hostname of the container. + Hostname pulumi.StringOutput `pulumi:"hostname"` + // Additional hosts to add to the container. + Hosts ContainerHostArrayOutput `pulumi:"hosts"` + // The ID of the image to back this container. The easiest way to get this value is to use the `RemoteImage` resource as is shown in the example. + Image pulumi.StringOutput `pulumi:"image"` + // Configured whether an init process should be injected for this container. If unset this will default to the `dockerd` defaults. + Init pulumi.BoolOutput `pulumi:"init"` + // IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:` or `host`. + IpcMode pulumi.StringOutput `pulumi:"ipcMode"` + // User-defined key/value metadata + Labels ContainerLabelArrayOutput `pulumi:"labels"` + // The logging driver to use for the container. + LogDriver pulumi.StringOutput `pulumi:"logDriver"` + // Key/value pairs to use as options for the logging driver. + LogOpts pulumi.MapOutput `pulumi:"logOpts"` + // Save the container logs (`attach` must be enabled). Defaults to `false`. + Logs pulumi.BoolPtrOutput `pulumi:"logs"` + // The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'. + MaxRetryCount pulumi.IntPtrOutput `pulumi:"maxRetryCount"` + // The memory limit for the container in MBs. + Memory pulumi.IntPtrOutput `pulumi:"memory"` + // The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `pulumi up` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. + MemorySwap pulumi.IntPtrOutput `pulumi:"memorySwap"` + // Specification for mounts to be added to containers created as part of the service. + Mounts ContainerMountArrayOutput `pulumi:"mounts"` + // If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform + // assumes it is successful. Defaults to `true`. + MustRun pulumi.BoolPtrOutput `pulumi:"mustRun"` + // The name of the container. + Name pulumi.StringOutput `pulumi:"name"` + // The data of the networks the container is connected to. + NetworkDatas ContainerNetworkDataArrayOutput `pulumi:"networkDatas"` + // Network mode of the container. + NetworkMode pulumi.StringPtrOutput `pulumi:"networkMode"` + // The networks the container is attached to + NetworksAdvanced ContainerNetworksAdvancedArrayOutput `pulumi:"networksAdvanced"` + // he PID (Process) Namespace mode for the container. Either `container:` or `host`. + PidMode pulumi.StringPtrOutput `pulumi:"pidMode"` + // Publish a container's port(s) to the host. + Ports ContainerPortArrayOutput `pulumi:"ports"` + // If `true`, the container runs in privileged mode. + Privileged pulumi.BoolPtrOutput `pulumi:"privileged"` + // Publish all ports of the container. + PublishAllPorts pulumi.BoolPtrOutput `pulumi:"publishAllPorts"` + // If `true`, the container will be started as readonly. Defaults to `false`. + ReadOnly pulumi.BoolPtrOutput `pulumi:"readOnly"` + // If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`. + RemoveVolumes pulumi.BoolPtrOutput `pulumi:"removeVolumes"` + // The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`. + Restart pulumi.StringPtrOutput `pulumi:"restart"` + // If `true`, then the container will be automatically removed when it exits. Defaults to `false`. + Rm pulumi.BoolPtrOutput `pulumi:"rm"` + // Runtime to use for the container. + Runtime pulumi.StringOutput `pulumi:"runtime"` + // List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration. + SecurityOpts pulumi.StringArrayOutput `pulumi:"securityOpts"` + // Size of `/dev/shm` in MBs. + ShmSize pulumi.IntOutput `pulumi:"shmSize"` + // If `true`, then the Docker container will be started after creation. If `false`, then the container is only created. Defaults to `true`. + Start pulumi.BoolPtrOutput `pulumi:"start"` + // If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`. + StdinOpen pulumi.BoolPtrOutput `pulumi:"stdinOpen"` + // Signal to stop a container (default `SIGTERM`). + StopSignal pulumi.StringOutput `pulumi:"stopSignal"` + // Timeout (in seconds) to stop a container. + StopTimeout pulumi.IntOutput `pulumi:"stopTimeout"` + // Key/value pairs for the storage driver options, e.g. `size`: `120G` + StorageOpts pulumi.MapOutput `pulumi:"storageOpts"` + // A map of kernel parameters (sysctls) to set in the container. + Sysctls pulumi.MapOutput `pulumi:"sysctls"` + // A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options. + Tmpfs pulumi.MapOutput `pulumi:"tmpfs"` + // If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`. + Tty pulumi.BoolPtrOutput `pulumi:"tty"` + // Ulimit options to add. + Ulimits ContainerUlimitArrayOutput `pulumi:"ulimits"` + // Specifies files to upload to the container before starting it. Only one of `content` or `contentBase64` can be set and at least one of them has to be set. + Uploads ContainerUploadArrayOutput `pulumi:"uploads"` + // User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by name. + User pulumi.StringPtrOutput `pulumi:"user"` + // Sets the usernamespace mode for the container when usernamespace remapping option is enabled. + UsernsMode pulumi.StringPtrOutput `pulumi:"usernsMode"` + // Spec for mounting volumes in the container. + Volumes ContainerVolumeArrayOutput `pulumi:"volumes"` + // If `true`, then the Docker container is waited for being healthy state after creation. If `false`, then the container health state is not checked. Defaults to `false`. + Wait pulumi.BoolPtrOutput `pulumi:"wait"` + // The timeout in seconds to wait the container to be healthy after creation. Defaults to `60`. + WaitTimeout pulumi.IntPtrOutput `pulumi:"waitTimeout"` + // The working directory for commands to run in. + WorkingDir pulumi.StringPtrOutput `pulumi:"workingDir"` +} + +// NewContainer registers a new resource with the given unique name, arguments, and options. +func NewContainer(ctx *pulumi.Context, + name string, args *ContainerArgs, opts ...pulumi.ResourceOption) (*Container, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Image == nil { + return nil, errors.New("invalid value for required argument 'Image'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Container + err := ctx.RegisterResource("docker:index/container:Container", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetContainer gets an existing Container resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetContainer(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ContainerState, opts ...pulumi.ResourceOption) (*Container, error) { + var resource Container + err := ctx.ReadResource("docker:index/container:Container", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Container resources. +type containerState struct { + // If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`. + Attach *bool `pulumi:"attach"` + // The network bridge of the container as read from its NetworkSettings. + Bridge *string `pulumi:"bridge"` + // Add or drop certrain linux capabilities. + Capabilities *ContainerCapabilities `pulumi:"capabilities"` + // Cgroup namespace mode to use for the container. Possible values are: `private`, `host`. + CgroupnsMode *string `pulumi:"cgroupnsMode"` + // The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be `["/usr/bin/myprogram","-f","baz.con"]`. + Command []string `pulumi:"command"` + // The logs of the container if its execution is done (`attach` must be disabled). + ContainerLogs *string `pulumi:"containerLogs"` + // The total number of milliseconds to wait for the container to reach status 'running' + ContainerReadRefreshTimeoutMilliseconds *int `pulumi:"containerReadRefreshTimeoutMilliseconds"` + // A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`. + CpuSet *string `pulumi:"cpuSet"` + // CPU shares (relative weight) for the container. + CpuShares *int `pulumi:"cpuShares"` + // If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on successful stop. + DestroyGraceSeconds *int `pulumi:"destroyGraceSeconds"` + // Bind devices to the container. + Devices []ContainerDevice `pulumi:"devices"` + // DNS servers to use. + Dns []string `pulumi:"dns"` + // DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. + DnsOpts []string `pulumi:"dnsOpts"` + // DNS search domains that are used when bare unqualified hostnames are used inside of the container. + DnsSearches []string `pulumi:"dnsSearches"` + // Domain name of the container. + Domainname *string `pulumi:"domainname"` + // The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be `"/usr/bin/myprogra"]`. + Entrypoints []string `pulumi:"entrypoints"` + // Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs []string `pulumi:"envs"` + // The exit code of the container if its execution is done (`mustRun` must be disabled). + ExitCode *int `pulumi:"exitCode"` + // GPU devices to add to the container. Currently, only the value `all` is supported. Passing any other value will result in unexpected behavior. + Gpus *string `pulumi:"gpus"` + // Additional groups for the container user + GroupAdds []string `pulumi:"groupAdds"` + // A test to perform to check that the container is healthy + Healthcheck *ContainerHealthcheck `pulumi:"healthcheck"` + // Hostname of the container. + Hostname *string `pulumi:"hostname"` + // Additional hosts to add to the container. + Hosts []ContainerHost `pulumi:"hosts"` + // The ID of the image to back this container. The easiest way to get this value is to use the `RemoteImage` resource as is shown in the example. + Image *string `pulumi:"image"` + // Configured whether an init process should be injected for this container. If unset this will default to the `dockerd` defaults. + Init *bool `pulumi:"init"` + // IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:` or `host`. + IpcMode *string `pulumi:"ipcMode"` + // User-defined key/value metadata + Labels []ContainerLabel `pulumi:"labels"` + // The logging driver to use for the container. + LogDriver *string `pulumi:"logDriver"` + // Key/value pairs to use as options for the logging driver. + LogOpts map[string]interface{} `pulumi:"logOpts"` + // Save the container logs (`attach` must be enabled). Defaults to `false`. + Logs *bool `pulumi:"logs"` + // The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'. + MaxRetryCount *int `pulumi:"maxRetryCount"` + // The memory limit for the container in MBs. + Memory *int `pulumi:"memory"` + // The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `pulumi up` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. + MemorySwap *int `pulumi:"memorySwap"` + // Specification for mounts to be added to containers created as part of the service. + Mounts []ContainerMount `pulumi:"mounts"` + // If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform + // assumes it is successful. Defaults to `true`. + MustRun *bool `pulumi:"mustRun"` + // The name of the container. + Name *string `pulumi:"name"` + // The data of the networks the container is connected to. + NetworkDatas []ContainerNetworkData `pulumi:"networkDatas"` + // Network mode of the container. + NetworkMode *string `pulumi:"networkMode"` + // The networks the container is attached to + NetworksAdvanced []ContainerNetworksAdvanced `pulumi:"networksAdvanced"` + // he PID (Process) Namespace mode for the container. Either `container:` or `host`. + PidMode *string `pulumi:"pidMode"` + // Publish a container's port(s) to the host. + Ports []ContainerPort `pulumi:"ports"` + // If `true`, the container runs in privileged mode. + Privileged *bool `pulumi:"privileged"` + // Publish all ports of the container. + PublishAllPorts *bool `pulumi:"publishAllPorts"` + // If `true`, the container will be started as readonly. Defaults to `false`. + ReadOnly *bool `pulumi:"readOnly"` + // If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`. + RemoveVolumes *bool `pulumi:"removeVolumes"` + // The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`. + Restart *string `pulumi:"restart"` + // If `true`, then the container will be automatically removed when it exits. Defaults to `false`. + Rm *bool `pulumi:"rm"` + // Runtime to use for the container. + Runtime *string `pulumi:"runtime"` + // List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration. + SecurityOpts []string `pulumi:"securityOpts"` + // Size of `/dev/shm` in MBs. + ShmSize *int `pulumi:"shmSize"` + // If `true`, then the Docker container will be started after creation. If `false`, then the container is only created. Defaults to `true`. + Start *bool `pulumi:"start"` + // If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`. + StdinOpen *bool `pulumi:"stdinOpen"` + // Signal to stop a container (default `SIGTERM`). + StopSignal *string `pulumi:"stopSignal"` + // Timeout (in seconds) to stop a container. + StopTimeout *int `pulumi:"stopTimeout"` + // Key/value pairs for the storage driver options, e.g. `size`: `120G` + StorageOpts map[string]interface{} `pulumi:"storageOpts"` + // A map of kernel parameters (sysctls) to set in the container. + Sysctls map[string]interface{} `pulumi:"sysctls"` + // A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options. + Tmpfs map[string]interface{} `pulumi:"tmpfs"` + // If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`. + Tty *bool `pulumi:"tty"` + // Ulimit options to add. + Ulimits []ContainerUlimit `pulumi:"ulimits"` + // Specifies files to upload to the container before starting it. Only one of `content` or `contentBase64` can be set and at least one of them has to be set. + Uploads []ContainerUpload `pulumi:"uploads"` + // User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by name. + User *string `pulumi:"user"` + // Sets the usernamespace mode for the container when usernamespace remapping option is enabled. + UsernsMode *string `pulumi:"usernsMode"` + // Spec for mounting volumes in the container. + Volumes []ContainerVolume `pulumi:"volumes"` + // If `true`, then the Docker container is waited for being healthy state after creation. If `false`, then the container health state is not checked. Defaults to `false`. + Wait *bool `pulumi:"wait"` + // The timeout in seconds to wait the container to be healthy after creation. Defaults to `60`. + WaitTimeout *int `pulumi:"waitTimeout"` + // The working directory for commands to run in. + WorkingDir *string `pulumi:"workingDir"` +} + +type ContainerState struct { + // If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`. + Attach pulumi.BoolPtrInput + // The network bridge of the container as read from its NetworkSettings. + Bridge pulumi.StringPtrInput + // Add or drop certrain linux capabilities. + Capabilities ContainerCapabilitiesPtrInput + // Cgroup namespace mode to use for the container. Possible values are: `private`, `host`. + CgroupnsMode pulumi.StringPtrInput + // The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be `["/usr/bin/myprogram","-f","baz.con"]`. + Command pulumi.StringArrayInput + // The logs of the container if its execution is done (`attach` must be disabled). + ContainerLogs pulumi.StringPtrInput + // The total number of milliseconds to wait for the container to reach status 'running' + ContainerReadRefreshTimeoutMilliseconds pulumi.IntPtrInput + // A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`. + CpuSet pulumi.StringPtrInput + // CPU shares (relative weight) for the container. + CpuShares pulumi.IntPtrInput + // If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on successful stop. + DestroyGraceSeconds pulumi.IntPtrInput + // Bind devices to the container. + Devices ContainerDeviceArrayInput + // DNS servers to use. + Dns pulumi.StringArrayInput + // DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. + DnsOpts pulumi.StringArrayInput + // DNS search domains that are used when bare unqualified hostnames are used inside of the container. + DnsSearches pulumi.StringArrayInput + // Domain name of the container. + Domainname pulumi.StringPtrInput + // The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be `"/usr/bin/myprogra"]`. + Entrypoints pulumi.StringArrayInput + // Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs pulumi.StringArrayInput + // The exit code of the container if its execution is done (`mustRun` must be disabled). + ExitCode pulumi.IntPtrInput + // GPU devices to add to the container. Currently, only the value `all` is supported. Passing any other value will result in unexpected behavior. + Gpus pulumi.StringPtrInput + // Additional groups for the container user + GroupAdds pulumi.StringArrayInput + // A test to perform to check that the container is healthy + Healthcheck ContainerHealthcheckPtrInput + // Hostname of the container. + Hostname pulumi.StringPtrInput + // Additional hosts to add to the container. + Hosts ContainerHostArrayInput + // The ID of the image to back this container. The easiest way to get this value is to use the `RemoteImage` resource as is shown in the example. + Image pulumi.StringPtrInput + // Configured whether an init process should be injected for this container. If unset this will default to the `dockerd` defaults. + Init pulumi.BoolPtrInput + // IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:` or `host`. + IpcMode pulumi.StringPtrInput + // User-defined key/value metadata + Labels ContainerLabelArrayInput + // The logging driver to use for the container. + LogDriver pulumi.StringPtrInput + // Key/value pairs to use as options for the logging driver. + LogOpts pulumi.MapInput + // Save the container logs (`attach` must be enabled). Defaults to `false`. + Logs pulumi.BoolPtrInput + // The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'. + MaxRetryCount pulumi.IntPtrInput + // The memory limit for the container in MBs. + Memory pulumi.IntPtrInput + // The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `pulumi up` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. + MemorySwap pulumi.IntPtrInput + // Specification for mounts to be added to containers created as part of the service. + Mounts ContainerMountArrayInput + // If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform + // assumes it is successful. Defaults to `true`. + MustRun pulumi.BoolPtrInput + // The name of the container. + Name pulumi.StringPtrInput + // The data of the networks the container is connected to. + NetworkDatas ContainerNetworkDataArrayInput + // Network mode of the container. + NetworkMode pulumi.StringPtrInput + // The networks the container is attached to + NetworksAdvanced ContainerNetworksAdvancedArrayInput + // he PID (Process) Namespace mode for the container. Either `container:` or `host`. + PidMode pulumi.StringPtrInput + // Publish a container's port(s) to the host. + Ports ContainerPortArrayInput + // If `true`, the container runs in privileged mode. + Privileged pulumi.BoolPtrInput + // Publish all ports of the container. + PublishAllPorts pulumi.BoolPtrInput + // If `true`, the container will be started as readonly. Defaults to `false`. + ReadOnly pulumi.BoolPtrInput + // If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`. + RemoveVolumes pulumi.BoolPtrInput + // The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`. + Restart pulumi.StringPtrInput + // If `true`, then the container will be automatically removed when it exits. Defaults to `false`. + Rm pulumi.BoolPtrInput + // Runtime to use for the container. + Runtime pulumi.StringPtrInput + // List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration. + SecurityOpts pulumi.StringArrayInput + // Size of `/dev/shm` in MBs. + ShmSize pulumi.IntPtrInput + // If `true`, then the Docker container will be started after creation. If `false`, then the container is only created. Defaults to `true`. + Start pulumi.BoolPtrInput + // If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`. + StdinOpen pulumi.BoolPtrInput + // Signal to stop a container (default `SIGTERM`). + StopSignal pulumi.StringPtrInput + // Timeout (in seconds) to stop a container. + StopTimeout pulumi.IntPtrInput + // Key/value pairs for the storage driver options, e.g. `size`: `120G` + StorageOpts pulumi.MapInput + // A map of kernel parameters (sysctls) to set in the container. + Sysctls pulumi.MapInput + // A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options. + Tmpfs pulumi.MapInput + // If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`. + Tty pulumi.BoolPtrInput + // Ulimit options to add. + Ulimits ContainerUlimitArrayInput + // Specifies files to upload to the container before starting it. Only one of `content` or `contentBase64` can be set and at least one of them has to be set. + Uploads ContainerUploadArrayInput + // User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by name. + User pulumi.StringPtrInput + // Sets the usernamespace mode for the container when usernamespace remapping option is enabled. + UsernsMode pulumi.StringPtrInput + // Spec for mounting volumes in the container. + Volumes ContainerVolumeArrayInput + // If `true`, then the Docker container is waited for being healthy state after creation. If `false`, then the container health state is not checked. Defaults to `false`. + Wait pulumi.BoolPtrInput + // The timeout in seconds to wait the container to be healthy after creation. Defaults to `60`. + WaitTimeout pulumi.IntPtrInput + // The working directory for commands to run in. + WorkingDir pulumi.StringPtrInput +} + +func (ContainerState) ElementType() reflect.Type { + return reflect.TypeOf((*containerState)(nil)).Elem() +} + +type containerArgs struct { + // If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`. + Attach *bool `pulumi:"attach"` + // Add or drop certrain linux capabilities. + Capabilities *ContainerCapabilities `pulumi:"capabilities"` + // Cgroup namespace mode to use for the container. Possible values are: `private`, `host`. + CgroupnsMode *string `pulumi:"cgroupnsMode"` + // The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be `["/usr/bin/myprogram","-f","baz.con"]`. + Command []string `pulumi:"command"` + // The total number of milliseconds to wait for the container to reach status 'running' + ContainerReadRefreshTimeoutMilliseconds *int `pulumi:"containerReadRefreshTimeoutMilliseconds"` + // A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`. + CpuSet *string `pulumi:"cpuSet"` + // CPU shares (relative weight) for the container. + CpuShares *int `pulumi:"cpuShares"` + // If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on successful stop. + DestroyGraceSeconds *int `pulumi:"destroyGraceSeconds"` + // Bind devices to the container. + Devices []ContainerDevice `pulumi:"devices"` + // DNS servers to use. + Dns []string `pulumi:"dns"` + // DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. + DnsOpts []string `pulumi:"dnsOpts"` + // DNS search domains that are used when bare unqualified hostnames are used inside of the container. + DnsSearches []string `pulumi:"dnsSearches"` + // Domain name of the container. + Domainname *string `pulumi:"domainname"` + // The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be `"/usr/bin/myprogra"]`. + Entrypoints []string `pulumi:"entrypoints"` + // Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs []string `pulumi:"envs"` + // GPU devices to add to the container. Currently, only the value `all` is supported. Passing any other value will result in unexpected behavior. + Gpus *string `pulumi:"gpus"` + // Additional groups for the container user + GroupAdds []string `pulumi:"groupAdds"` + // A test to perform to check that the container is healthy + Healthcheck *ContainerHealthcheck `pulumi:"healthcheck"` + // Hostname of the container. + Hostname *string `pulumi:"hostname"` + // Additional hosts to add to the container. + Hosts []ContainerHost `pulumi:"hosts"` + // The ID of the image to back this container. The easiest way to get this value is to use the `RemoteImage` resource as is shown in the example. + Image string `pulumi:"image"` + // Configured whether an init process should be injected for this container. If unset this will default to the `dockerd` defaults. + Init *bool `pulumi:"init"` + // IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:` or `host`. + IpcMode *string `pulumi:"ipcMode"` + // User-defined key/value metadata + Labels []ContainerLabel `pulumi:"labels"` + // The logging driver to use for the container. + LogDriver *string `pulumi:"logDriver"` + // Key/value pairs to use as options for the logging driver. + LogOpts map[string]interface{} `pulumi:"logOpts"` + // Save the container logs (`attach` must be enabled). Defaults to `false`. + Logs *bool `pulumi:"logs"` + // The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'. + MaxRetryCount *int `pulumi:"maxRetryCount"` + // The memory limit for the container in MBs. + Memory *int `pulumi:"memory"` + // The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `pulumi up` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. + MemorySwap *int `pulumi:"memorySwap"` + // Specification for mounts to be added to containers created as part of the service. + Mounts []ContainerMount `pulumi:"mounts"` + // If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform + // assumes it is successful. Defaults to `true`. + MustRun *bool `pulumi:"mustRun"` + // The name of the container. + Name *string `pulumi:"name"` + // Network mode of the container. + NetworkMode *string `pulumi:"networkMode"` + // The networks the container is attached to + NetworksAdvanced []ContainerNetworksAdvanced `pulumi:"networksAdvanced"` + // he PID (Process) Namespace mode for the container. Either `container:` or `host`. + PidMode *string `pulumi:"pidMode"` + // Publish a container's port(s) to the host. + Ports []ContainerPort `pulumi:"ports"` + // If `true`, the container runs in privileged mode. + Privileged *bool `pulumi:"privileged"` + // Publish all ports of the container. + PublishAllPorts *bool `pulumi:"publishAllPorts"` + // If `true`, the container will be started as readonly. Defaults to `false`. + ReadOnly *bool `pulumi:"readOnly"` + // If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`. + RemoveVolumes *bool `pulumi:"removeVolumes"` + // The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`. + Restart *string `pulumi:"restart"` + // If `true`, then the container will be automatically removed when it exits. Defaults to `false`. + Rm *bool `pulumi:"rm"` + // Runtime to use for the container. + Runtime *string `pulumi:"runtime"` + // List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration. + SecurityOpts []string `pulumi:"securityOpts"` + // Size of `/dev/shm` in MBs. + ShmSize *int `pulumi:"shmSize"` + // If `true`, then the Docker container will be started after creation. If `false`, then the container is only created. Defaults to `true`. + Start *bool `pulumi:"start"` + // If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`. + StdinOpen *bool `pulumi:"stdinOpen"` + // Signal to stop a container (default `SIGTERM`). + StopSignal *string `pulumi:"stopSignal"` + // Timeout (in seconds) to stop a container. + StopTimeout *int `pulumi:"stopTimeout"` + // Key/value pairs for the storage driver options, e.g. `size`: `120G` + StorageOpts map[string]interface{} `pulumi:"storageOpts"` + // A map of kernel parameters (sysctls) to set in the container. + Sysctls map[string]interface{} `pulumi:"sysctls"` + // A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options. + Tmpfs map[string]interface{} `pulumi:"tmpfs"` + // If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`. + Tty *bool `pulumi:"tty"` + // Ulimit options to add. + Ulimits []ContainerUlimit `pulumi:"ulimits"` + // Specifies files to upload to the container before starting it. Only one of `content` or `contentBase64` can be set and at least one of them has to be set. + Uploads []ContainerUpload `pulumi:"uploads"` + // User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by name. + User *string `pulumi:"user"` + // Sets the usernamespace mode for the container when usernamespace remapping option is enabled. + UsernsMode *string `pulumi:"usernsMode"` + // Spec for mounting volumes in the container. + Volumes []ContainerVolume `pulumi:"volumes"` + // If `true`, then the Docker container is waited for being healthy state after creation. If `false`, then the container health state is not checked. Defaults to `false`. + Wait *bool `pulumi:"wait"` + // The timeout in seconds to wait the container to be healthy after creation. Defaults to `60`. + WaitTimeout *int `pulumi:"waitTimeout"` + // The working directory for commands to run in. + WorkingDir *string `pulumi:"workingDir"` +} + +// The set of arguments for constructing a Container resource. +type ContainerArgs struct { + // If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`. + Attach pulumi.BoolPtrInput + // Add or drop certrain linux capabilities. + Capabilities ContainerCapabilitiesPtrInput + // Cgroup namespace mode to use for the container. Possible values are: `private`, `host`. + CgroupnsMode pulumi.StringPtrInput + // The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be `["/usr/bin/myprogram","-f","baz.con"]`. + Command pulumi.StringArrayInput + // The total number of milliseconds to wait for the container to reach status 'running' + ContainerReadRefreshTimeoutMilliseconds pulumi.IntPtrInput + // A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`. + CpuSet pulumi.StringPtrInput + // CPU shares (relative weight) for the container. + CpuShares pulumi.IntPtrInput + // If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on successful stop. + DestroyGraceSeconds pulumi.IntPtrInput + // Bind devices to the container. + Devices ContainerDeviceArrayInput + // DNS servers to use. + Dns pulumi.StringArrayInput + // DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. + DnsOpts pulumi.StringArrayInput + // DNS search domains that are used when bare unqualified hostnames are used inside of the container. + DnsSearches pulumi.StringArrayInput + // Domain name of the container. + Domainname pulumi.StringPtrInput + // The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be `"/usr/bin/myprogra"]`. + Entrypoints pulumi.StringArrayInput + // Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs pulumi.StringArrayInput + // GPU devices to add to the container. Currently, only the value `all` is supported. Passing any other value will result in unexpected behavior. + Gpus pulumi.StringPtrInput + // Additional groups for the container user + GroupAdds pulumi.StringArrayInput + // A test to perform to check that the container is healthy + Healthcheck ContainerHealthcheckPtrInput + // Hostname of the container. + Hostname pulumi.StringPtrInput + // Additional hosts to add to the container. + Hosts ContainerHostArrayInput + // The ID of the image to back this container. The easiest way to get this value is to use the `RemoteImage` resource as is shown in the example. + Image pulumi.StringInput + // Configured whether an init process should be injected for this container. If unset this will default to the `dockerd` defaults. + Init pulumi.BoolPtrInput + // IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:` or `host`. + IpcMode pulumi.StringPtrInput + // User-defined key/value metadata + Labels ContainerLabelArrayInput + // The logging driver to use for the container. + LogDriver pulumi.StringPtrInput + // Key/value pairs to use as options for the logging driver. + LogOpts pulumi.MapInput + // Save the container logs (`attach` must be enabled). Defaults to `false`. + Logs pulumi.BoolPtrInput + // The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'. + MaxRetryCount pulumi.IntPtrInput + // The memory limit for the container in MBs. + Memory pulumi.IntPtrInput + // The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `pulumi up` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. + MemorySwap pulumi.IntPtrInput + // Specification for mounts to be added to containers created as part of the service. + Mounts ContainerMountArrayInput + // If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform + // assumes it is successful. Defaults to `true`. + MustRun pulumi.BoolPtrInput + // The name of the container. + Name pulumi.StringPtrInput + // Network mode of the container. + NetworkMode pulumi.StringPtrInput + // The networks the container is attached to + NetworksAdvanced ContainerNetworksAdvancedArrayInput + // he PID (Process) Namespace mode for the container. Either `container:` or `host`. + PidMode pulumi.StringPtrInput + // Publish a container's port(s) to the host. + Ports ContainerPortArrayInput + // If `true`, the container runs in privileged mode. + Privileged pulumi.BoolPtrInput + // Publish all ports of the container. + PublishAllPorts pulumi.BoolPtrInput + // If `true`, the container will be started as readonly. Defaults to `false`. + ReadOnly pulumi.BoolPtrInput + // If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`. + RemoveVolumes pulumi.BoolPtrInput + // The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`. + Restart pulumi.StringPtrInput + // If `true`, then the container will be automatically removed when it exits. Defaults to `false`. + Rm pulumi.BoolPtrInput + // Runtime to use for the container. + Runtime pulumi.StringPtrInput + // List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration. + SecurityOpts pulumi.StringArrayInput + // Size of `/dev/shm` in MBs. + ShmSize pulumi.IntPtrInput + // If `true`, then the Docker container will be started after creation. If `false`, then the container is only created. Defaults to `true`. + Start pulumi.BoolPtrInput + // If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`. + StdinOpen pulumi.BoolPtrInput + // Signal to stop a container (default `SIGTERM`). + StopSignal pulumi.StringPtrInput + // Timeout (in seconds) to stop a container. + StopTimeout pulumi.IntPtrInput + // Key/value pairs for the storage driver options, e.g. `size`: `120G` + StorageOpts pulumi.MapInput + // A map of kernel parameters (sysctls) to set in the container. + Sysctls pulumi.MapInput + // A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options. + Tmpfs pulumi.MapInput + // If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`. + Tty pulumi.BoolPtrInput + // Ulimit options to add. + Ulimits ContainerUlimitArrayInput + // Specifies files to upload to the container before starting it. Only one of `content` or `contentBase64` can be set and at least one of them has to be set. + Uploads ContainerUploadArrayInput + // User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by name. + User pulumi.StringPtrInput + // Sets the usernamespace mode for the container when usernamespace remapping option is enabled. + UsernsMode pulumi.StringPtrInput + // Spec for mounting volumes in the container. + Volumes ContainerVolumeArrayInput + // If `true`, then the Docker container is waited for being healthy state after creation. If `false`, then the container health state is not checked. Defaults to `false`. + Wait pulumi.BoolPtrInput + // The timeout in seconds to wait the container to be healthy after creation. Defaults to `60`. + WaitTimeout pulumi.IntPtrInput + // The working directory for commands to run in. + WorkingDir pulumi.StringPtrInput +} + +func (ContainerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*containerArgs)(nil)).Elem() +} + +type ContainerInput interface { + pulumi.Input + + ToContainerOutput() ContainerOutput + ToContainerOutputWithContext(ctx context.Context) ContainerOutput +} + +func (*Container) ElementType() reflect.Type { + return reflect.TypeOf((**Container)(nil)).Elem() +} + +func (i *Container) ToContainerOutput() ContainerOutput { + return i.ToContainerOutputWithContext(context.Background()) +} + +func (i *Container) ToContainerOutputWithContext(ctx context.Context) ContainerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerOutput) +} + +func (i *Container) ToOutput(ctx context.Context) pulumix.Output[*Container] { + return pulumix.Output[*Container]{ + OutputState: i.ToContainerOutputWithContext(ctx).OutputState, + } +} + +// ContainerArrayInput is an input type that accepts ContainerArray and ContainerArrayOutput values. +// You can construct a concrete instance of `ContainerArrayInput` via: +// +// ContainerArray{ ContainerArgs{...} } +type ContainerArrayInput interface { + pulumi.Input + + ToContainerArrayOutput() ContainerArrayOutput + ToContainerArrayOutputWithContext(context.Context) ContainerArrayOutput +} + +type ContainerArray []ContainerInput + +func (ContainerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Container)(nil)).Elem() +} + +func (i ContainerArray) ToContainerArrayOutput() ContainerArrayOutput { + return i.ToContainerArrayOutputWithContext(context.Background()) +} + +func (i ContainerArray) ToContainerArrayOutputWithContext(ctx context.Context) ContainerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerArrayOutput) +} + +func (i ContainerArray) ToOutput(ctx context.Context) pulumix.Output[[]*Container] { + return pulumix.Output[[]*Container]{ + OutputState: i.ToContainerArrayOutputWithContext(ctx).OutputState, + } +} + +// ContainerMapInput is an input type that accepts ContainerMap and ContainerMapOutput values. +// You can construct a concrete instance of `ContainerMapInput` via: +// +// ContainerMap{ "key": ContainerArgs{...} } +type ContainerMapInput interface { + pulumi.Input + + ToContainerMapOutput() ContainerMapOutput + ToContainerMapOutputWithContext(context.Context) ContainerMapOutput +} + +type ContainerMap map[string]ContainerInput + +func (ContainerMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Container)(nil)).Elem() +} + +func (i ContainerMap) ToContainerMapOutput() ContainerMapOutput { + return i.ToContainerMapOutputWithContext(context.Background()) +} + +func (i ContainerMap) ToContainerMapOutputWithContext(ctx context.Context) ContainerMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMapOutput) +} + +func (i ContainerMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Container] { + return pulumix.Output[map[string]*Container]{ + OutputState: i.ToContainerMapOutputWithContext(ctx).OutputState, + } +} + +type ContainerOutput struct{ *pulumi.OutputState } + +func (ContainerOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Container)(nil)).Elem() +} + +func (o ContainerOutput) ToContainerOutput() ContainerOutput { + return o +} + +func (o ContainerOutput) ToContainerOutputWithContext(ctx context.Context) ContainerOutput { + return o +} + +func (o ContainerOutput) ToOutput(ctx context.Context) pulumix.Output[*Container] { + return pulumix.Output[*Container]{ + OutputState: o.OutputState, + } +} + +// If `true` attach to the container after its creation and waits the end of its execution. Defaults to `false`. +func (o ContainerOutput) Attach() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Attach }).(pulumi.BoolPtrOutput) +} + +// The network bridge of the container as read from its NetworkSettings. +func (o ContainerOutput) Bridge() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.Bridge }).(pulumi.StringOutput) +} + +// Add or drop certrain linux capabilities. +func (o ContainerOutput) Capabilities() ContainerCapabilitiesPtrOutput { + return o.ApplyT(func(v *Container) ContainerCapabilitiesPtrOutput { return v.Capabilities }).(ContainerCapabilitiesPtrOutput) +} + +// Cgroup namespace mode to use for the container. Possible values are: `private`, `host`. +func (o ContainerOutput) CgroupnsMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.CgroupnsMode }).(pulumi.StringPtrOutput) +} + +// The command to use to start the container. For example, to run `/usr/bin/myprogram -f baz.conf` set the command to be `["/usr/bin/myprogram","-f","baz.con"]`. +func (o ContainerOutput) Command() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.Command }).(pulumi.StringArrayOutput) +} + +// The logs of the container if its execution is done (`attach` must be disabled). +func (o ContainerOutput) ContainerLogs() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.ContainerLogs }).(pulumi.StringOutput) +} + +// The total number of milliseconds to wait for the container to reach status 'running' +func (o ContainerOutput) ContainerReadRefreshTimeoutMilliseconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.ContainerReadRefreshTimeoutMilliseconds }).(pulumi.IntPtrOutput) +} + +// A comma-separated list or hyphen-separated range of CPUs a container can use, e.g. `0-1`. +func (o ContainerOutput) CpuSet() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.CpuSet }).(pulumi.StringPtrOutput) +} + +// CPU shares (relative weight) for the container. +func (o ContainerOutput) CpuShares() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.CpuShares }).(pulumi.IntPtrOutput) +} + +// If defined will attempt to stop the container before destroying. Container will be destroyed after `n` seconds or on successful stop. +func (o ContainerOutput) DestroyGraceSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.DestroyGraceSeconds }).(pulumi.IntPtrOutput) +} + +// Bind devices to the container. +func (o ContainerOutput) Devices() ContainerDeviceArrayOutput { + return o.ApplyT(func(v *Container) ContainerDeviceArrayOutput { return v.Devices }).(ContainerDeviceArrayOutput) +} + +// DNS servers to use. +func (o ContainerOutput) Dns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.Dns }).(pulumi.StringArrayOutput) +} + +// DNS options used by the DNS provider(s), see `resolv.conf` documentation for valid list of options. +func (o ContainerOutput) DnsOpts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.DnsOpts }).(pulumi.StringArrayOutput) +} + +// DNS search domains that are used when bare unqualified hostnames are used inside of the container. +func (o ContainerOutput) DnsSearches() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.DnsSearches }).(pulumi.StringArrayOutput) +} + +// Domain name of the container. +func (o ContainerOutput) Domainname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.Domainname }).(pulumi.StringPtrOutput) +} + +// The command to use as the Entrypoint for the container. The Entrypoint allows you to configure a container to run as an executable. For example, to run `/usr/bin/myprogram` when starting a container, set the entrypoint to be `"/usr/bin/myprogra"]`. +func (o ContainerOutput) Entrypoints() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.Entrypoints }).(pulumi.StringArrayOutput) +} + +// Environment variables to set in the form of `KEY=VALUE`, e.g. `DEBUG=0` +func (o ContainerOutput) Envs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.Envs }).(pulumi.StringArrayOutput) +} + +// The exit code of the container if its execution is done (`mustRun` must be disabled). +func (o ContainerOutput) ExitCode() pulumi.IntOutput { + return o.ApplyT(func(v *Container) pulumi.IntOutput { return v.ExitCode }).(pulumi.IntOutput) +} + +// GPU devices to add to the container. Currently, only the value `all` is supported. Passing any other value will result in unexpected behavior. +func (o ContainerOutput) Gpus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.Gpus }).(pulumi.StringPtrOutput) +} + +// Additional groups for the container user +func (o ContainerOutput) GroupAdds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.GroupAdds }).(pulumi.StringArrayOutput) +} + +// A test to perform to check that the container is healthy +func (o ContainerOutput) Healthcheck() ContainerHealthcheckOutput { + return o.ApplyT(func(v *Container) ContainerHealthcheckOutput { return v.Healthcheck }).(ContainerHealthcheckOutput) +} + +// Hostname of the container. +func (o ContainerOutput) Hostname() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.Hostname }).(pulumi.StringOutput) +} + +// Additional hosts to add to the container. +func (o ContainerOutput) Hosts() ContainerHostArrayOutput { + return o.ApplyT(func(v *Container) ContainerHostArrayOutput { return v.Hosts }).(ContainerHostArrayOutput) +} + +// The ID of the image to back this container. The easiest way to get this value is to use the `RemoteImage` resource as is shown in the example. +func (o ContainerOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.Image }).(pulumi.StringOutput) +} + +// Configured whether an init process should be injected for this container. If unset this will default to the `dockerd` defaults. +func (o ContainerOutput) Init() pulumi.BoolOutput { + return o.ApplyT(func(v *Container) pulumi.BoolOutput { return v.Init }).(pulumi.BoolOutput) +} + +// IPC sharing mode for the container. Possible values are: `none`, `private`, `shareable`, `container:` or `host`. +func (o ContainerOutput) IpcMode() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.IpcMode }).(pulumi.StringOutput) +} + +// User-defined key/value metadata +func (o ContainerOutput) Labels() ContainerLabelArrayOutput { + return o.ApplyT(func(v *Container) ContainerLabelArrayOutput { return v.Labels }).(ContainerLabelArrayOutput) +} + +// The logging driver to use for the container. +func (o ContainerOutput) LogDriver() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.LogDriver }).(pulumi.StringOutput) +} + +// Key/value pairs to use as options for the logging driver. +func (o ContainerOutput) LogOpts() pulumi.MapOutput { + return o.ApplyT(func(v *Container) pulumi.MapOutput { return v.LogOpts }).(pulumi.MapOutput) +} + +// Save the container logs (`attach` must be enabled). Defaults to `false`. +func (o ContainerOutput) Logs() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Logs }).(pulumi.BoolPtrOutput) +} + +// The maximum amount of times to an attempt a restart when `restart` is set to 'on-failure'. +func (o ContainerOutput) MaxRetryCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.MaxRetryCount }).(pulumi.IntPtrOutput) +} + +// The memory limit for the container in MBs. +func (o ContainerOutput) Memory() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.Memory }).(pulumi.IntPtrOutput) +} + +// The total memory limit (memory + swap) for the container in MBs. This setting may compute to `-1` after `pulumi up` if the target host doesn't support memory swap, when that is the case docker will use a soft limitation. +func (o ContainerOutput) MemorySwap() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.MemorySwap }).(pulumi.IntPtrOutput) +} + +// Specification for mounts to be added to containers created as part of the service. +func (o ContainerOutput) Mounts() ContainerMountArrayOutput { + return o.ApplyT(func(v *Container) ContainerMountArrayOutput { return v.Mounts }).(ContainerMountArrayOutput) +} + +// If `true`, then the Docker container will be kept running. If `false`, then as long as the container exists, Terraform +// assumes it is successful. Defaults to `true`. +func (o ContainerOutput) MustRun() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.MustRun }).(pulumi.BoolPtrOutput) +} + +// The name of the container. +func (o ContainerOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The data of the networks the container is connected to. +func (o ContainerOutput) NetworkDatas() ContainerNetworkDataArrayOutput { + return o.ApplyT(func(v *Container) ContainerNetworkDataArrayOutput { return v.NetworkDatas }).(ContainerNetworkDataArrayOutput) +} + +// Network mode of the container. +func (o ContainerOutput) NetworkMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.NetworkMode }).(pulumi.StringPtrOutput) +} + +// The networks the container is attached to +func (o ContainerOutput) NetworksAdvanced() ContainerNetworksAdvancedArrayOutput { + return o.ApplyT(func(v *Container) ContainerNetworksAdvancedArrayOutput { return v.NetworksAdvanced }).(ContainerNetworksAdvancedArrayOutput) +} + +// he PID (Process) Namespace mode for the container. Either `container:` or `host`. +func (o ContainerOutput) PidMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.PidMode }).(pulumi.StringPtrOutput) +} + +// Publish a container's port(s) to the host. +func (o ContainerOutput) Ports() ContainerPortArrayOutput { + return o.ApplyT(func(v *Container) ContainerPortArrayOutput { return v.Ports }).(ContainerPortArrayOutput) +} + +// If `true`, the container runs in privileged mode. +func (o ContainerOutput) Privileged() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Privileged }).(pulumi.BoolPtrOutput) +} + +// Publish all ports of the container. +func (o ContainerOutput) PublishAllPorts() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.PublishAllPorts }).(pulumi.BoolPtrOutput) +} + +// If `true`, the container will be started as readonly. Defaults to `false`. +func (o ContainerOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +// If `true`, it will remove anonymous volumes associated with the container. Defaults to `true`. +func (o ContainerOutput) RemoveVolumes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.RemoveVolumes }).(pulumi.BoolPtrOutput) +} + +// The restart policy for the container. Must be one of 'no', 'on-failure', 'always', 'unless-stopped'. Defaults to `no`. +func (o ContainerOutput) Restart() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.Restart }).(pulumi.StringPtrOutput) +} + +// If `true`, then the container will be automatically removed when it exits. Defaults to `false`. +func (o ContainerOutput) Rm() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Rm }).(pulumi.BoolPtrOutput) +} + +// Runtime to use for the container. +func (o ContainerOutput) Runtime() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.Runtime }).(pulumi.StringOutput) +} + +// List of string values to customize labels for MLS systems, such as SELinux. See https://docs.docker.com/engine/reference/run/#security-configuration. +func (o ContainerOutput) SecurityOpts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Container) pulumi.StringArrayOutput { return v.SecurityOpts }).(pulumi.StringArrayOutput) +} + +// Size of `/dev/shm` in MBs. +func (o ContainerOutput) ShmSize() pulumi.IntOutput { + return o.ApplyT(func(v *Container) pulumi.IntOutput { return v.ShmSize }).(pulumi.IntOutput) +} + +// If `true`, then the Docker container will be started after creation. If `false`, then the container is only created. Defaults to `true`. +func (o ContainerOutput) Start() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Start }).(pulumi.BoolPtrOutput) +} + +// If `true`, keep STDIN open even if not attached (`docker run -i`). Defaults to `false`. +func (o ContainerOutput) StdinOpen() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.StdinOpen }).(pulumi.BoolPtrOutput) +} + +// Signal to stop a container (default `SIGTERM`). +func (o ContainerOutput) StopSignal() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.StopSignal }).(pulumi.StringOutput) +} + +// Timeout (in seconds) to stop a container. +func (o ContainerOutput) StopTimeout() pulumi.IntOutput { + return o.ApplyT(func(v *Container) pulumi.IntOutput { return v.StopTimeout }).(pulumi.IntOutput) +} + +// Key/value pairs for the storage driver options, e.g. `size`: `120G` +func (o ContainerOutput) StorageOpts() pulumi.MapOutput { + return o.ApplyT(func(v *Container) pulumi.MapOutput { return v.StorageOpts }).(pulumi.MapOutput) +} + +// A map of kernel parameters (sysctls) to set in the container. +func (o ContainerOutput) Sysctls() pulumi.MapOutput { + return o.ApplyT(func(v *Container) pulumi.MapOutput { return v.Sysctls }).(pulumi.MapOutput) +} + +// A map of container directories which should be replaced by `tmpfs mounts`, and their corresponding mount options. +func (o ContainerOutput) Tmpfs() pulumi.MapOutput { + return o.ApplyT(func(v *Container) pulumi.MapOutput { return v.Tmpfs }).(pulumi.MapOutput) +} + +// If `true`, allocate a pseudo-tty (`docker run -t`). Defaults to `false`. +func (o ContainerOutput) Tty() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Tty }).(pulumi.BoolPtrOutput) +} + +// Ulimit options to add. +func (o ContainerOutput) Ulimits() ContainerUlimitArrayOutput { + return o.ApplyT(func(v *Container) ContainerUlimitArrayOutput { return v.Ulimits }).(ContainerUlimitArrayOutput) +} + +// Specifies files to upload to the container before starting it. Only one of `content` or `contentBase64` can be set and at least one of them has to be set. +func (o ContainerOutput) Uploads() ContainerUploadArrayOutput { + return o.ApplyT(func(v *Container) ContainerUploadArrayOutput { return v.Uploads }).(ContainerUploadArrayOutput) +} + +// User used for run the first process. Format is `user` or `user:group` which user and group can be passed literraly or by name. +func (o ContainerOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.User }).(pulumi.StringPtrOutput) +} + +// Sets the usernamespace mode for the container when usernamespace remapping option is enabled. +func (o ContainerOutput) UsernsMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.UsernsMode }).(pulumi.StringPtrOutput) +} + +// Spec for mounting volumes in the container. +func (o ContainerOutput) Volumes() ContainerVolumeArrayOutput { + return o.ApplyT(func(v *Container) ContainerVolumeArrayOutput { return v.Volumes }).(ContainerVolumeArrayOutput) +} + +// If `true`, then the Docker container is waited for being healthy state after creation. If `false`, then the container health state is not checked. Defaults to `false`. +func (o ContainerOutput) Wait() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Container) pulumi.BoolPtrOutput { return v.Wait }).(pulumi.BoolPtrOutput) +} + +// The timeout in seconds to wait the container to be healthy after creation. Defaults to `60`. +func (o ContainerOutput) WaitTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Container) pulumi.IntPtrOutput { return v.WaitTimeout }).(pulumi.IntPtrOutput) +} + +// The working directory for commands to run in. +func (o ContainerOutput) WorkingDir() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.WorkingDir }).(pulumi.StringPtrOutput) +} + +type ContainerArrayOutput struct{ *pulumi.OutputState } + +func (ContainerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Container)(nil)).Elem() +} + +func (o ContainerArrayOutput) ToContainerArrayOutput() ContainerArrayOutput { + return o +} + +func (o ContainerArrayOutput) ToContainerArrayOutputWithContext(ctx context.Context) ContainerArrayOutput { + return o +} + +func (o ContainerArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Container] { + return pulumix.Output[[]*Container]{ + OutputState: o.OutputState, + } +} + +func (o ContainerArrayOutput) Index(i pulumi.IntInput) ContainerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Container { + return vs[0].([]*Container)[vs[1].(int)] + }).(ContainerOutput) +} + +type ContainerMapOutput struct{ *pulumi.OutputState } + +func (ContainerMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Container)(nil)).Elem() +} + +func (o ContainerMapOutput) ToContainerMapOutput() ContainerMapOutput { + return o +} + +func (o ContainerMapOutput) ToContainerMapOutputWithContext(ctx context.Context) ContainerMapOutput { + return o +} + +func (o ContainerMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Container] { + return pulumix.Output[map[string]*Container]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMapOutput) MapIndex(k pulumi.StringInput) ContainerOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Container { + return vs[0].(map[string]*Container)[vs[1].(string)] + }).(ContainerOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ContainerInput)(nil)).Elem(), &Container{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerArrayInput)(nil)).Elem(), ContainerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMapInput)(nil)).Elem(), ContainerMap{}) + pulumi.RegisterOutputType(ContainerOutput{}) + pulumi.RegisterOutputType(ContainerArrayOutput{}) + pulumi.RegisterOutputType(ContainerMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/doc.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/doc.go new file mode 100644 index 000000000..3191ef14a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/doc.go @@ -0,0 +1,2 @@ +// A Pulumi package for interacting with Docker in Pulumi programs +package docker diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getLogs.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getLogs.go new file mode 100644 index 000000000..1f31631c6 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getLogs.go @@ -0,0 +1,181 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// `getLogs` provides logs from specific container +func GetLogs(ctx *pulumi.Context, args *GetLogsArgs, opts ...pulumi.InvokeOption) (*GetLogsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetLogsResult + err := ctx.Invoke("docker:index/getLogs:getLogs", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getLogs. +type GetLogsArgs struct { + Details *bool `pulumi:"details"` + // Discard headers that docker appends to each log entry + DiscardHeaders *bool `pulumi:"discardHeaders"` + Follow *bool `pulumi:"follow"` + // If true populate computed value `logsListString` + LogsListStringEnabled *bool `pulumi:"logsListStringEnabled"` + // The name of the Docker Container + Name string `pulumi:"name"` + ShowStderr *bool `pulumi:"showStderr"` + ShowStdout *bool `pulumi:"showStdout"` + Since *string `pulumi:"since"` + Tail *string `pulumi:"tail"` + Timestamps *bool `pulumi:"timestamps"` + Until *string `pulumi:"until"` +} + +// A collection of values returned by getLogs. +type GetLogsResult struct { + Details *bool `pulumi:"details"` + // Discard headers that docker appends to each log entry + DiscardHeaders *bool `pulumi:"discardHeaders"` + Follow *bool `pulumi:"follow"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // If true populate computed value `logsListString` + LogsListStringEnabled *bool `pulumi:"logsListStringEnabled"` + // List of container logs, each element is a line. + LogsListStrings []string `pulumi:"logsListStrings"` + // The name of the Docker Container + Name string `pulumi:"name"` + ShowStderr *bool `pulumi:"showStderr"` + ShowStdout *bool `pulumi:"showStdout"` + Since *string `pulumi:"since"` + Tail *string `pulumi:"tail"` + Timestamps *bool `pulumi:"timestamps"` + Until *string `pulumi:"until"` +} + +func GetLogsOutput(ctx *pulumi.Context, args GetLogsOutputArgs, opts ...pulumi.InvokeOption) GetLogsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetLogsResult, error) { + args := v.(GetLogsArgs) + r, err := GetLogs(ctx, &args, opts...) + var s GetLogsResult + if r != nil { + s = *r + } + return s, err + }).(GetLogsResultOutput) +} + +// A collection of arguments for invoking getLogs. +type GetLogsOutputArgs struct { + Details pulumi.BoolPtrInput `pulumi:"details"` + // Discard headers that docker appends to each log entry + DiscardHeaders pulumi.BoolPtrInput `pulumi:"discardHeaders"` + Follow pulumi.BoolPtrInput `pulumi:"follow"` + // If true populate computed value `logsListString` + LogsListStringEnabled pulumi.BoolPtrInput `pulumi:"logsListStringEnabled"` + // The name of the Docker Container + Name pulumi.StringInput `pulumi:"name"` + ShowStderr pulumi.BoolPtrInput `pulumi:"showStderr"` + ShowStdout pulumi.BoolPtrInput `pulumi:"showStdout"` + Since pulumi.StringPtrInput `pulumi:"since"` + Tail pulumi.StringPtrInput `pulumi:"tail"` + Timestamps pulumi.BoolPtrInput `pulumi:"timestamps"` + Until pulumi.StringPtrInput `pulumi:"until"` +} + +func (GetLogsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogsArgs)(nil)).Elem() +} + +// A collection of values returned by getLogs. +type GetLogsResultOutput struct{ *pulumi.OutputState } + +func (GetLogsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLogsResult)(nil)).Elem() +} + +func (o GetLogsResultOutput) ToGetLogsResultOutput() GetLogsResultOutput { + return o +} + +func (o GetLogsResultOutput) ToGetLogsResultOutputWithContext(ctx context.Context) GetLogsResultOutput { + return o +} + +func (o GetLogsResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetLogsResult] { + return pulumix.Output[GetLogsResult]{ + OutputState: o.OutputState, + } +} + +func (o GetLogsResultOutput) Details() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.Details }).(pulumi.BoolPtrOutput) +} + +// Discard headers that docker appends to each log entry +func (o GetLogsResultOutput) DiscardHeaders() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.DiscardHeaders }).(pulumi.BoolPtrOutput) +} + +func (o GetLogsResultOutput) Follow() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.Follow }).(pulumi.BoolPtrOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o GetLogsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetLogsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// If true populate computed value `logsListString` +func (o GetLogsResultOutput) LogsListStringEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.LogsListStringEnabled }).(pulumi.BoolPtrOutput) +} + +// List of container logs, each element is a line. +func (o GetLogsResultOutput) LogsListStrings() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLogsResult) []string { return v.LogsListStrings }).(pulumi.StringArrayOutput) +} + +// The name of the Docker Container +func (o GetLogsResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetLogsResult) string { return v.Name }).(pulumi.StringOutput) +} + +func (o GetLogsResultOutput) ShowStderr() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.ShowStderr }).(pulumi.BoolPtrOutput) +} + +func (o GetLogsResultOutput) ShowStdout() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.ShowStdout }).(pulumi.BoolPtrOutput) +} + +func (o GetLogsResultOutput) Since() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogsResult) *string { return v.Since }).(pulumi.StringPtrOutput) +} + +func (o GetLogsResultOutput) Tail() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogsResult) *string { return v.Tail }).(pulumi.StringPtrOutput) +} + +func (o GetLogsResultOutput) Timestamps() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetLogsResult) *bool { return v.Timestamps }).(pulumi.BoolPtrOutput) +} + +func (o GetLogsResultOutput) Until() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLogsResult) *string { return v.Until }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetLogsResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getNetwork.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getNetwork.go new file mode 100644 index 000000000..3dc091747 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getNetwork.go @@ -0,0 +1,157 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// `Network` provides details about a specific Docker Network. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.LookupNetwork(ctx, &docker.LookupNetworkArgs{ +// Name: "main", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupNetwork(ctx *pulumi.Context, args *LookupNetworkArgs, opts ...pulumi.InvokeOption) (*LookupNetworkResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupNetworkResult + err := ctx.Invoke("docker:index/getNetwork:getNetwork", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getNetwork. +type LookupNetworkArgs struct { + // The name of the Docker network. + Name string `pulumi:"name"` +} + +// A collection of values returned by getNetwork. +type LookupNetworkResult struct { + // The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. + Driver string `pulumi:"driver"` + // The ID of this resource. + Id string `pulumi:"id"` + // If `true`, the network is internal. + Internal bool `pulumi:"internal"` + // The IPAM configuration options + IpamConfigs []GetNetworkIpamConfig `pulumi:"ipamConfigs"` + // The name of the Docker network. + Name string `pulumi:"name"` + // Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. + Options map[string]interface{} `pulumi:"options"` + // Scope of the network. One of `swarm`, `global`, or `local`. + Scope string `pulumi:"scope"` +} + +func LookupNetworkOutput(ctx *pulumi.Context, args LookupNetworkOutputArgs, opts ...pulumi.InvokeOption) LookupNetworkResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupNetworkResult, error) { + args := v.(LookupNetworkArgs) + r, err := LookupNetwork(ctx, &args, opts...) + var s LookupNetworkResult + if r != nil { + s = *r + } + return s, err + }).(LookupNetworkResultOutput) +} + +// A collection of arguments for invoking getNetwork. +type LookupNetworkOutputArgs struct { + // The name of the Docker network. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupNetworkOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupNetworkArgs)(nil)).Elem() +} + +// A collection of values returned by getNetwork. +type LookupNetworkResultOutput struct{ *pulumi.OutputState } + +func (LookupNetworkResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupNetworkResult)(nil)).Elem() +} + +func (o LookupNetworkResultOutput) ToLookupNetworkResultOutput() LookupNetworkResultOutput { + return o +} + +func (o LookupNetworkResultOutput) ToLookupNetworkResultOutputWithContext(ctx context.Context) LookupNetworkResultOutput { + return o +} + +func (o LookupNetworkResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupNetworkResult] { + return pulumix.Output[LookupNetworkResult]{ + OutputState: o.OutputState, + } +} + +// The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. +func (o LookupNetworkResultOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkResult) string { return v.Driver }).(pulumi.StringOutput) +} + +// The ID of this resource. +func (o LookupNetworkResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkResult) string { return v.Id }).(pulumi.StringOutput) +} + +// If `true`, the network is internal. +func (o LookupNetworkResultOutput) Internal() pulumi.BoolOutput { + return o.ApplyT(func(v LookupNetworkResult) bool { return v.Internal }).(pulumi.BoolOutput) +} + +// The IPAM configuration options +func (o LookupNetworkResultOutput) IpamConfigs() GetNetworkIpamConfigArrayOutput { + return o.ApplyT(func(v LookupNetworkResult) []GetNetworkIpamConfig { return v.IpamConfigs }).(GetNetworkIpamConfigArrayOutput) +} + +// The name of the Docker network. +func (o LookupNetworkResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkResult) string { return v.Name }).(pulumi.StringOutput) +} + +// Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. +func (o LookupNetworkResultOutput) Options() pulumi.MapOutput { + return o.ApplyT(func(v LookupNetworkResult) map[string]interface{} { return v.Options }).(pulumi.MapOutput) +} + +// Scope of the network. One of `swarm`, `global`, or `local`. +func (o LookupNetworkResultOutput) Scope() pulumi.StringOutput { + return o.ApplyT(func(v LookupNetworkResult) string { return v.Scope }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupNetworkResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getPlugin.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getPlugin.go new file mode 100644 index 000000000..88d915d0b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getPlugin.go @@ -0,0 +1,143 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Reads the local Docker plugin. The plugin must be installed locally. +// +// ## Example Usage +// +// ### With alias +// +// data "Plugin" "byAlias" { +// alias = "sample-volume-plugin:latest" +// } +func LookupPlugin(ctx *pulumi.Context, args *LookupPluginArgs, opts ...pulumi.InvokeOption) (*LookupPluginResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPluginResult + err := ctx.Invoke("docker:index/getPlugin:getPlugin", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getPlugin. +type LookupPluginArgs struct { + // The alias of the Docker plugin. If the tag is omitted, `:latest` is complemented to the attribute value. + Alias *string `pulumi:"alias"` + // The ID of the plugin, which has precedence over the `alias` of both are given + Id *string `pulumi:"id"` +} + +// A collection of values returned by getPlugin. +type LookupPluginResult struct { + // The alias of the Docker plugin. If the tag is omitted, `:latest` is complemented to the attribute value. + Alias *string `pulumi:"alias"` + // If `true` the plugin is enabled + Enabled bool `pulumi:"enabled"` + // The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs []string `pulumi:"envs"` + // If true, grant all permissions necessary to run the plugin + GrantAllPermissions bool `pulumi:"grantAllPermissions"` + // The ID of the plugin, which has precedence over the `alias` of both are given + Id *string `pulumi:"id"` + // The plugin name. If the tag is omitted, `:latest` is complemented to the attribute value. + Name string `pulumi:"name"` + // The Docker Plugin Reference + PluginReference string `pulumi:"pluginReference"` +} + +func LookupPluginOutput(ctx *pulumi.Context, args LookupPluginOutputArgs, opts ...pulumi.InvokeOption) LookupPluginResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPluginResult, error) { + args := v.(LookupPluginArgs) + r, err := LookupPlugin(ctx, &args, opts...) + var s LookupPluginResult + if r != nil { + s = *r + } + return s, err + }).(LookupPluginResultOutput) +} + +// A collection of arguments for invoking getPlugin. +type LookupPluginOutputArgs struct { + // The alias of the Docker plugin. If the tag is omitted, `:latest` is complemented to the attribute value. + Alias pulumi.StringPtrInput `pulumi:"alias"` + // The ID of the plugin, which has precedence over the `alias` of both are given + Id pulumi.StringPtrInput `pulumi:"id"` +} + +func (LookupPluginOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPluginArgs)(nil)).Elem() +} + +// A collection of values returned by getPlugin. +type LookupPluginResultOutput struct{ *pulumi.OutputState } + +func (LookupPluginResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPluginResult)(nil)).Elem() +} + +func (o LookupPluginResultOutput) ToLookupPluginResultOutput() LookupPluginResultOutput { + return o +} + +func (o LookupPluginResultOutput) ToLookupPluginResultOutputWithContext(ctx context.Context) LookupPluginResultOutput { + return o +} + +func (o LookupPluginResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupPluginResult] { + return pulumix.Output[LookupPluginResult]{ + OutputState: o.OutputState, + } +} + +// The alias of the Docker plugin. If the tag is omitted, `:latest` is complemented to the attribute value. +func (o LookupPluginResultOutput) Alias() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPluginResult) *string { return v.Alias }).(pulumi.StringPtrOutput) +} + +// If `true` the plugin is enabled +func (o LookupPluginResultOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v LookupPluginResult) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` +func (o LookupPluginResultOutput) Envs() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupPluginResult) []string { return v.Envs }).(pulumi.StringArrayOutput) +} + +// If true, grant all permissions necessary to run the plugin +func (o LookupPluginResultOutput) GrantAllPermissions() pulumi.BoolOutput { + return o.ApplyT(func(v LookupPluginResult) bool { return v.GrantAllPermissions }).(pulumi.BoolOutput) +} + +// The ID of the plugin, which has precedence over the `alias` of both are given +func (o LookupPluginResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPluginResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The plugin name. If the tag is omitted, `:latest` is complemented to the attribute value. +func (o LookupPluginResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupPluginResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The Docker Plugin Reference +func (o LookupPluginResultOutput) PluginReference() pulumi.StringOutput { + return o.ApplyT(func(v LookupPluginResult) string { return v.PluginReference }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPluginResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRegistryImage.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRegistryImage.go new file mode 100644 index 000000000..c20670b96 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRegistryImage.go @@ -0,0 +1,149 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Reads the image metadata from a Docker Registry. Used in conjunction with the RemoteImage resource to keep an image up to date on the latest available version of the tag. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ubuntuRegistryImage, err := docker.LookupRegistryImage(ctx, &docker.LookupRegistryImageArgs{ +// Name: "ubuntu:precise", +// }, nil) +// if err != nil { +// return err +// } +// _, err = docker.NewRemoteImage(ctx, "ubuntuRemoteImage", &docker.RemoteImageArgs{ +// Name: *pulumi.String(ubuntuRegistryImage.Name), +// PullTriggers: pulumi.StringArray{ +// *pulumi.String(ubuntuRegistryImage.Sha256Digest), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupRegistryImage(ctx *pulumi.Context, args *LookupRegistryImageArgs, opts ...pulumi.InvokeOption) (*LookupRegistryImageResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupRegistryImageResult + err := ctx.Invoke("docker:index/getRegistryImage:getRegistryImage", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getRegistryImage. +type LookupRegistryImageArgs struct { + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify *bool `pulumi:"insecureSkipVerify"` + // The name of the Docker image, including any tags. e.g. `alpine:latest` + Name string `pulumi:"name"` +} + +// A collection of values returned by getRegistryImage. +type LookupRegistryImageResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify *bool `pulumi:"insecureSkipVerify"` + // The name of the Docker image, including any tags. e.g. `alpine:latest` + Name string `pulumi:"name"` + // The content digest of the image, as stored in the registry. + Sha256Digest string `pulumi:"sha256Digest"` +} + +func LookupRegistryImageOutput(ctx *pulumi.Context, args LookupRegistryImageOutputArgs, opts ...pulumi.InvokeOption) LookupRegistryImageResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupRegistryImageResult, error) { + args := v.(LookupRegistryImageArgs) + r, err := LookupRegistryImage(ctx, &args, opts...) + var s LookupRegistryImageResult + if r != nil { + s = *r + } + return s, err + }).(LookupRegistryImageResultOutput) +} + +// A collection of arguments for invoking getRegistryImage. +type LookupRegistryImageOutputArgs struct { + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify pulumi.BoolPtrInput `pulumi:"insecureSkipVerify"` + // The name of the Docker image, including any tags. e.g. `alpine:latest` + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupRegistryImageOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRegistryImageArgs)(nil)).Elem() +} + +// A collection of values returned by getRegistryImage. +type LookupRegistryImageResultOutput struct{ *pulumi.OutputState } + +func (LookupRegistryImageResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRegistryImageResult)(nil)).Elem() +} + +func (o LookupRegistryImageResultOutput) ToLookupRegistryImageResultOutput() LookupRegistryImageResultOutput { + return o +} + +func (o LookupRegistryImageResultOutput) ToLookupRegistryImageResultOutputWithContext(ctx context.Context) LookupRegistryImageResultOutput { + return o +} + +func (o LookupRegistryImageResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupRegistryImageResult] { + return pulumix.Output[LookupRegistryImageResult]{ + OutputState: o.OutputState, + } +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupRegistryImageResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupRegistryImageResult) string { return v.Id }).(pulumi.StringOutput) +} + +// If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` +func (o LookupRegistryImageResultOutput) InsecureSkipVerify() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupRegistryImageResult) *bool { return v.InsecureSkipVerify }).(pulumi.BoolPtrOutput) +} + +// The name of the Docker image, including any tags. e.g. `alpine:latest` +func (o LookupRegistryImageResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupRegistryImageResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The content digest of the image, as stored in the registry. +func (o LookupRegistryImageResultOutput) Sha256Digest() pulumi.StringOutput { + return o.ApplyT(func(v LookupRegistryImageResult) string { return v.Sha256Digest }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupRegistryImageResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRemoteImage.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRemoteImage.go new file mode 100644 index 000000000..58607d363 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/getRemoteImage.go @@ -0,0 +1,147 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// `RemoteImage` provides details about a specific Docker Image which need to be presend on the Docker Host +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.LookupRemoteImage(ctx, &docker.LookupRemoteImageArgs{ +// Name: "nginx", +// }, nil) +// if err != nil { +// return err +// } +// _, err = docker.LookupRemoteImage(ctx, &docker.LookupRemoteImageArgs{ +// Name: "nginx:1.17.6", +// }, nil) +// if err != nil { +// return err +// } +// _, err = docker.LookupRemoteImage(ctx, &docker.LookupRemoteImageArgs{ +// Name: "nginx@sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2", +// }, nil) +// if err != nil { +// return err +// } +// _, err = docker.LookupRemoteImage(ctx, &docker.LookupRemoteImageArgs{ +// Name: "nginx:1.19.1@sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupRemoteImage(ctx *pulumi.Context, args *LookupRemoteImageArgs, opts ...pulumi.InvokeOption) (*LookupRemoteImageResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupRemoteImageResult + err := ctx.Invoke("docker:index/getRemoteImage:getRemoteImage", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getRemoteImage. +type LookupRemoteImageArgs struct { + // The name of the Docker image, including any tags or SHA256 repo digests. + Name string `pulumi:"name"` +} + +// A collection of values returned by getRemoteImage. +type LookupRemoteImageResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // The name of the Docker image, including any tags or SHA256 repo digests. + Name string `pulumi:"name"` + // The image sha256 digest in the form of `repo[:tag]@sha256:`. It may be empty in the edge case where the local image was pulled from a repo, tagged locally, and then referred to in the data source by that local name/tag. + RepoDigest string `pulumi:"repoDigest"` +} + +func LookupRemoteImageOutput(ctx *pulumi.Context, args LookupRemoteImageOutputArgs, opts ...pulumi.InvokeOption) LookupRemoteImageResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupRemoteImageResult, error) { + args := v.(LookupRemoteImageArgs) + r, err := LookupRemoteImage(ctx, &args, opts...) + var s LookupRemoteImageResult + if r != nil { + s = *r + } + return s, err + }).(LookupRemoteImageResultOutput) +} + +// A collection of arguments for invoking getRemoteImage. +type LookupRemoteImageOutputArgs struct { + // The name of the Docker image, including any tags or SHA256 repo digests. + Name pulumi.StringInput `pulumi:"name"` +} + +func (LookupRemoteImageOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRemoteImageArgs)(nil)).Elem() +} + +// A collection of values returned by getRemoteImage. +type LookupRemoteImageResultOutput struct{ *pulumi.OutputState } + +func (LookupRemoteImageResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupRemoteImageResult)(nil)).Elem() +} + +func (o LookupRemoteImageResultOutput) ToLookupRemoteImageResultOutput() LookupRemoteImageResultOutput { + return o +} + +func (o LookupRemoteImageResultOutput) ToLookupRemoteImageResultOutputWithContext(ctx context.Context) LookupRemoteImageResultOutput { + return o +} + +func (o LookupRemoteImageResultOutput) ToOutput(ctx context.Context) pulumix.Output[LookupRemoteImageResult] { + return pulumix.Output[LookupRemoteImageResult]{ + OutputState: o.OutputState, + } +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupRemoteImageResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupRemoteImageResult) string { return v.Id }).(pulumi.StringOutput) +} + +// The name of the Docker image, including any tags or SHA256 repo digests. +func (o LookupRemoteImageResultOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v LookupRemoteImageResult) string { return v.Name }).(pulumi.StringOutput) +} + +// The image sha256 digest in the form of `repo[:tag]@sha256:`. It may be empty in the edge case where the local image was pulled from a repo, tagged locally, and then referred to in the data source by that local name/tag. +func (o LookupRemoteImageResultOutput) RepoDigest() pulumi.StringOutput { + return o.ApplyT(func(v LookupRemoteImageResult) string { return v.RepoDigest }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupRemoteImageResultOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/image.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/image.go new file mode 100644 index 000000000..0e1dfb0b1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/image.go @@ -0,0 +1,474 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// `Image` builds a Docker image and pushes it Docker and OCI compatible registries. +// This resource enables running Docker builds as part of a Pulumi deployment. +// +// Note: This resource does not delete tags, locally or remotely, when destroyed. +// +// ## Image name +// +// The Image resource uses `imageName` to refer to a fully qualified Docker image name, by the format `repository:tag`. +// Note that this does not include any digest information and thus will not cause any updates when passed to dependencies, +// even when using `latest` tag. To trigger such updates, e.g. when referencing pushed images in container orchestration +// and management resources, please use the `repoDigest` Output instead, which is of the format +// `repository@:` and unique per build/push. +// Note that `repoDigest` is not available for local Images. For a local Image not pushed to a registry, you may want to +// give `imageName` a unique tag per pulumi update. +// +// ## Cross-platform builds +// +// The Image resource supports cross-platform builds when the [Docker engine has cross-platform support enabled via emulators](https://docs.docker.com/build/building/multi-platform/#building-multi-platform-images). +// The Image resource currently supports providing only a single operating system and architecture in the `platform` field, e.g.: `linux/amd64`. +// To enable this support, you may need to install the emulators in the environment running your Pulumi program. +// +// If you are using Linux, you may be using Docker Engine or Docker Desktop for Linux, depending on how you have installed Docker. The [FAQ for Docker Desktop for Linux](https://docs.docker.com/desktop/faqs/linuxfaqs/#context) describes the differences and how to select which Docker context is in use. +// +// * For local development using Docker Desktop, this is enabled by default. +// * For systems using Docker Engine, install the QEMU binaries and register them with using the docker image from [github.com/tonistiigi/binfmt](https://github.com/tonistiigi/binfmt): +// * In a GitHub Actions workflow, the [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) can be used instead by adding this step to your workflow file. Example workflow usage: +// +// ## Example Usage +// ### A Docker image build +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// demoImage, err := docker.NewImage(ctx, "demo-image", &docker.ImageArgs{ +// Build: &docker.DockerBuildArgs{ +// Args: pulumi.StringMap{ +// "platform": pulumi.String("linux/amd64"), +// }, +// Context: pulumi.String("."), +// Dockerfile: pulumi.String("Dockerfile"), +// }, +// ImageName: pulumi.String("username/image:tag1"), +// SkipPush: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// ctx.Export("imageName", demoImage.ImageName) +// return nil +// }) +// } +// +// ``` +// ### A Docker image build and push +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// demoPushImage, err := docker.NewImage(ctx, "demo-push-image", &docker.ImageArgs{ +// Build: &docker.DockerBuildArgs{ +// Context: pulumi.String("."), +// Dockerfile: pulumi.String("Dockerfile"), +// }, +// ImageName: pulumi.String("docker.io/username/push-image:tag1"), +// }) +// if err != nil { +// return err +// } +// ctx.Export("imageName", demoPushImage.ImageName) +// ctx.Export("repoDigest", demoPushImage.RepoDigest) +// return nil +// }) +// } +// +// ``` +// ### Docker image build using caching with AWS Elastic Container Registry +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ecr" +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ecrRepository, err := ecr.NewRepository(ctx, "ecr-repository", &ecr.RepositoryArgs{ +// Name: pulumi.String("docker-repository"), +// }) +// if err != nil { +// return err +// } +// authToken := ecr.GetAuthorizationTokenOutput(ctx, ecr.GetAuthorizationTokenOutputArgs{ +// RegistryId: ecrRepository.RegistryId, +// }, nil) +// myAppImage, err := docker.NewImage(ctx, "my-app-image", &docker.ImageArgs{ +// Build: &docker.DockerBuildArgs{ +// Args: pulumi.StringMap{ +// "BUILDKIT_INLINE_CACHE": pulumi.String("1"), +// }, +// CacheFrom: &docker.CacheFromArgs{ +// Images: pulumi.StringArray{ +// ecrRepository.RepositoryUrl.ApplyT(func(repositoryUrl string) (string, error) { +// return fmt.Sprintf("%v:latest", repositoryUrl), nil +// }).(pulumi.StringOutput), +// }, +// }, +// Context: pulumi.String("app/"), +// Dockerfile: pulumi.String("Dockerfile"), +// }, +// ImageName: ecrRepository.RepositoryUrl.ApplyT(func(repositoryUrl string) (string, error) { +// return fmt.Sprintf("%v:latest", repositoryUrl), nil +// }).(pulumi.StringOutput), +// Registry: &docker.RegistryArgs{ +// Password: pulumi.ToSecret(authToken.ApplyT(func(authToken ecr.GetAuthorizationTokenResult) (*string, error) { +// return &authToken.Password, nil +// }).(pulumi.StringPtrOutput)).(*pulumi.StringOutput), +// Server: ecrRepository.RepositoryUrl, +// }, +// }) +// if err != nil { +// return err +// } +// ctx.Export("imageName", myAppImage.ImageName) +// return nil +// }) +// } +// +// ``` +type Image struct { + pulumi.CustomResourceState + + // The fully qualified image name that was pushed to the registry. + BaseImageName pulumi.StringOutput `pulumi:"baseImageName"` + // The path to the build context to use. + Context pulumi.StringOutput `pulumi:"context"` + // The location of the Dockerfile relative to the docker build context. + Dockerfile pulumi.StringOutput `pulumi:"dockerfile"` + // The fully qualified image name + ImageName pulumi.StringOutput `pulumi:"imageName"` + // The name of the registry server hosting the image. + RegistryServer pulumi.StringOutput `pulumi:"registryServer"` + // **For pushed images:** + // The manifest digest of an image pushed to a registry, of the format repository@:, e.g. `username/demo-image@sha256:a6ae6dd8d39c5bb02320e41abf00cd4cb35905fec540e37d306c878be8d38bd3`. + // This reference is unique per image build and push. + // Only available for images pushed to a registry. + // Use when passing a reference to a pushed image to container management resources. + // + // **Local-only images**For local images, this field is the image ID of the built local image, of the format :, e.g `sha256:826a130323165bb0ccb0374ae774f885c067a951b51a6ee133577f4e5dbc4119` + RepoDigest pulumi.StringOutput `pulumi:"repoDigest"` +} + +// NewImage registers a new resource with the given unique name, arguments, and options. +func NewImage(ctx *pulumi.Context, + name string, args *ImageArgs, opts ...pulumi.ResourceOption) (*Image, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ImageName == nil { + return nil, errors.New("invalid value for required argument 'ImageName'") + } + if args.Build != nil { + args.Build = args.Build.ToDockerBuildPtrOutput().ApplyT(func(v *DockerBuild) *DockerBuild { return v.Defaults() }).(DockerBuildPtrOutput) + } + if args.SkipPush == nil { + args.SkipPush = pulumi.BoolPtr(false) + } + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("docker:image:Image"), + }, + }) + opts = append(opts, aliases) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Image + err := ctx.RegisterResource("docker:index/image:Image", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetImage gets an existing Image resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetImage(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ImageState, opts ...pulumi.ResourceOption) (*Image, error) { + var resource Image + err := ctx.ReadResource("docker:index/image:Image", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Image resources. +type imageState struct { +} + +type ImageState struct { +} + +func (ImageState) ElementType() reflect.Type { + return reflect.TypeOf((*imageState)(nil)).Elem() +} + +type imageArgs struct { + // The Docker build context + Build *DockerBuild `pulumi:"build"` + // The image name, of the format repository[:tag], e.g. `docker.io/username/demo-image:v1`. + // This reference is not unique to each build and push.For the unique manifest SHA of a pushed docker image, or the local image ID, please use `repoDigest`. + ImageName string `pulumi:"imageName"` + // The registry to push the image to + Registry *Registry `pulumi:"registry"` + // A flag to skip a registry push. + SkipPush *bool `pulumi:"skipPush"` +} + +// The set of arguments for constructing a Image resource. +type ImageArgs struct { + // The Docker build context + Build DockerBuildPtrInput + // The image name, of the format repository[:tag], e.g. `docker.io/username/demo-image:v1`. + // This reference is not unique to each build and push.For the unique manifest SHA of a pushed docker image, or the local image ID, please use `repoDigest`. + ImageName pulumi.StringInput + // The registry to push the image to + Registry RegistryPtrInput + // A flag to skip a registry push. + SkipPush pulumi.BoolPtrInput +} + +func (ImageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*imageArgs)(nil)).Elem() +} + +type ImageInput interface { + pulumi.Input + + ToImageOutput() ImageOutput + ToImageOutputWithContext(ctx context.Context) ImageOutput +} + +func (*Image) ElementType() reflect.Type { + return reflect.TypeOf((**Image)(nil)).Elem() +} + +func (i *Image) ToImageOutput() ImageOutput { + return i.ToImageOutputWithContext(context.Background()) +} + +func (i *Image) ToImageOutputWithContext(ctx context.Context) ImageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageOutput) +} + +func (i *Image) ToOutput(ctx context.Context) pulumix.Output[*Image] { + return pulumix.Output[*Image]{ + OutputState: i.ToImageOutputWithContext(ctx).OutputState, + } +} + +// ImageArrayInput is an input type that accepts ImageArray and ImageArrayOutput values. +// You can construct a concrete instance of `ImageArrayInput` via: +// +// ImageArray{ ImageArgs{...} } +type ImageArrayInput interface { + pulumi.Input + + ToImageArrayOutput() ImageArrayOutput + ToImageArrayOutputWithContext(context.Context) ImageArrayOutput +} + +type ImageArray []ImageInput + +func (ImageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Image)(nil)).Elem() +} + +func (i ImageArray) ToImageArrayOutput() ImageArrayOutput { + return i.ToImageArrayOutputWithContext(context.Background()) +} + +func (i ImageArray) ToImageArrayOutputWithContext(ctx context.Context) ImageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageArrayOutput) +} + +func (i ImageArray) ToOutput(ctx context.Context) pulumix.Output[[]*Image] { + return pulumix.Output[[]*Image]{ + OutputState: i.ToImageArrayOutputWithContext(ctx).OutputState, + } +} + +// ImageMapInput is an input type that accepts ImageMap and ImageMapOutput values. +// You can construct a concrete instance of `ImageMapInput` via: +// +// ImageMap{ "key": ImageArgs{...} } +type ImageMapInput interface { + pulumi.Input + + ToImageMapOutput() ImageMapOutput + ToImageMapOutputWithContext(context.Context) ImageMapOutput +} + +type ImageMap map[string]ImageInput + +func (ImageMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Image)(nil)).Elem() +} + +func (i ImageMap) ToImageMapOutput() ImageMapOutput { + return i.ToImageMapOutputWithContext(context.Background()) +} + +func (i ImageMap) ToImageMapOutputWithContext(ctx context.Context) ImageMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageMapOutput) +} + +func (i ImageMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Image] { + return pulumix.Output[map[string]*Image]{ + OutputState: i.ToImageMapOutputWithContext(ctx).OutputState, + } +} + +type ImageOutput struct{ *pulumi.OutputState } + +func (ImageOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Image)(nil)).Elem() +} + +func (o ImageOutput) ToImageOutput() ImageOutput { + return o +} + +func (o ImageOutput) ToImageOutputWithContext(ctx context.Context) ImageOutput { + return o +} + +func (o ImageOutput) ToOutput(ctx context.Context) pulumix.Output[*Image] { + return pulumix.Output[*Image]{ + OutputState: o.OutputState, + } +} + +// The fully qualified image name that was pushed to the registry. +func (o ImageOutput) BaseImageName() pulumi.StringOutput { + return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.BaseImageName }).(pulumi.StringOutput) +} + +// The path to the build context to use. +func (o ImageOutput) Context() pulumi.StringOutput { + return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.Context }).(pulumi.StringOutput) +} + +// The location of the Dockerfile relative to the docker build context. +func (o ImageOutput) Dockerfile() pulumi.StringOutput { + return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.Dockerfile }).(pulumi.StringOutput) +} + +// The fully qualified image name +func (o ImageOutput) ImageName() pulumi.StringOutput { + return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.ImageName }).(pulumi.StringOutput) +} + +// The name of the registry server hosting the image. +func (o ImageOutput) RegistryServer() pulumi.StringOutput { + return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.RegistryServer }).(pulumi.StringOutput) +} + +// **For pushed images:** +// The manifest digest of an image pushed to a registry, of the format repository@:, e.g. `username/demo-image@sha256:a6ae6dd8d39c5bb02320e41abf00cd4cb35905fec540e37d306c878be8d38bd3`. +// This reference is unique per image build and push. +// Only available for images pushed to a registry. +// Use when passing a reference to a pushed image to container management resources. +// +// **Local-only images**For local images, this field is the image ID of the built local image, of the format :, e.g `sha256:826a130323165bb0ccb0374ae774f885c067a951b51a6ee133577f4e5dbc4119` +func (o ImageOutput) RepoDigest() pulumi.StringOutput { + return o.ApplyT(func(v *Image) pulumi.StringOutput { return v.RepoDigest }).(pulumi.StringOutput) +} + +type ImageArrayOutput struct{ *pulumi.OutputState } + +func (ImageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Image)(nil)).Elem() +} + +func (o ImageArrayOutput) ToImageArrayOutput() ImageArrayOutput { + return o +} + +func (o ImageArrayOutput) ToImageArrayOutputWithContext(ctx context.Context) ImageArrayOutput { + return o +} + +func (o ImageArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Image] { + return pulumix.Output[[]*Image]{ + OutputState: o.OutputState, + } +} + +func (o ImageArrayOutput) Index(i pulumi.IntInput) ImageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Image { + return vs[0].([]*Image)[vs[1].(int)] + }).(ImageOutput) +} + +type ImageMapOutput struct{ *pulumi.OutputState } + +func (ImageMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Image)(nil)).Elem() +} + +func (o ImageMapOutput) ToImageMapOutput() ImageMapOutput { + return o +} + +func (o ImageMapOutput) ToImageMapOutputWithContext(ctx context.Context) ImageMapOutput { + return o +} + +func (o ImageMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Image] { + return pulumix.Output[map[string]*Image]{ + OutputState: o.OutputState, + } +} + +func (o ImageMapOutput) MapIndex(k pulumi.StringInput) ImageOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Image { + return vs[0].(map[string]*Image)[vs[1].(string)] + }).(ImageOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ImageInput)(nil)).Elem(), &Image{}) + pulumi.RegisterInputType(reflect.TypeOf((*ImageArrayInput)(nil)).Elem(), ImageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ImageMapInput)(nil)).Elem(), ImageMap{}) + pulumi.RegisterOutputType(ImageOutput{}) + pulumi.RegisterOutputType(ImageArrayOutput{}) + pulumi.RegisterOutputType(ImageMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/init.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/init.go new file mode 100644 index 000000000..585c74841 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/init.go @@ -0,0 +1,136 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "docker:index/container:Container": + r = &Container{} + case "docker:index/image:Image": + r = &Image{} + case "docker:index/network:Network": + r = &Network{} + case "docker:index/plugin:Plugin": + r = &Plugin{} + case "docker:index/registryImage:RegistryImage": + r = &RegistryImage{} + case "docker:index/remoteImage:RemoteImage": + r = &RemoteImage{} + case "docker:index/secret:Secret": + r = &Secret{} + case "docker:index/service:Service": + r = &Service{} + case "docker:index/serviceConfig:ServiceConfig": + r = &ServiceConfig{} + case "docker:index/tag:Tag": + r = &Tag{} + case "docker:index/volume:Volume": + r = &Volume{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +type pkg struct { + version semver.Version +} + +func (p *pkg) Version() semver.Version { + return p.version +} + +func (p *pkg) ConstructProvider(ctx *pulumi.Context, name, typ, urn string) (pulumi.ProviderResource, error) { + if typ != "pulumi:providers:docker" { + return nil, fmt.Errorf("unknown provider type: %s", typ) + } + + r := &Provider{} + err := ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return r, err +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "docker", + "index/container", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/image", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/network", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/plugin", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/registryImage", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/remoteImage", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/secret", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/service", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/serviceConfig", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/tag", + &module{version}, + ) + pulumi.RegisterResourceModule( + "docker", + "index/volume", + &module{version}, + ) + pulumi.RegisterResourcePackage( + "docker", + &pkg{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiUtilities.go new file mode 100644 index 000000000..aa4653801 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiUtilities.go @@ -0,0 +1,113 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package internal + +import ( + "fmt" + "os" + "reflect" + "regexp" + "strconv" + "strings" + + "github.com/blang/semver" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type envParser func(v string) interface{} + +func ParseEnvBool(v string) interface{} { + b, err := strconv.ParseBool(v) + if err != nil { + return nil + } + return b +} + +func ParseEnvInt(v string) interface{} { + i, err := strconv.ParseInt(v, 0, 0) + if err != nil { + return nil + } + return int(i) +} + +func ParseEnvFloat(v string) interface{} { + f, err := strconv.ParseFloat(v, 64) + if err != nil { + return nil + } + return f +} + +func ParseEnvStringArray(v string) interface{} { + var result pulumi.StringArray + for _, item := range strings.Split(v, ";") { + result = append(result, pulumi.String(item)) + } + return result +} + +func GetEnvOrDefault(def interface{}, parser envParser, vars ...string) interface{} { + for _, v := range vars { + if value, ok := os.LookupEnv(v); ok { + if parser != nil { + return parser(value) + } + return value + } + } + return def +} + +// PkgVersion uses reflection to determine the version of the current package. +// If a version cannot be determined, v1 will be assumed. The second return +// value is always nil. +func PkgVersion() (semver.Version, error) { + // emptyVersion defaults to v0.0.0 + if !SdkVersion.Equals(semver.Version{}) { + return SdkVersion, nil + } + type sentinal struct{} + pkgPath := reflect.TypeOf(sentinal{}).PkgPath() + re := regexp.MustCompile("^.*/pulumi-docker/sdk(/v\\d+)?") + if match := re.FindStringSubmatch(pkgPath); match != nil { + vStr := match[1] + if len(vStr) == 0 { // If the version capture group was empty, default to v1. + return semver.Version{Major: 1}, nil + } + return semver.MustParse(fmt.Sprintf("%s.0.0", vStr[2:])), nil + } + return semver.Version{Major: 1}, nil +} + +// isZero is a null safe check for if a value is it's types zero value. +func IsZero(v interface{}) bool { + if v == nil { + return true + } + return reflect.ValueOf(v).IsZero() +} + +// PkgResourceDefaultOpts provides package level defaults to pulumi.OptionResource. +func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { + defaults := []pulumi.ResourceOption{} + + version := SdkVersion + if !version.Equals(semver.Version{}) { + defaults = append(defaults, pulumi.Version(version.String())) + } + return append(defaults, opts...) +} + +// PkgInvokeDefaultOpts provides package level defaults to pulumi.OptionInvoke. +func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { + defaults := []pulumi.InvokeOption{} + + version := SdkVersion + if !version.Equals(semver.Version{}) { + defaults = append(defaults, pulumi.Version(version.String())) + } + return append(defaults, opts...) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiVersion.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiVersion.go new file mode 100644 index 000000000..d59168766 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal/pulumiVersion.go @@ -0,0 +1,11 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package internal + +import ( + "github.com/blang/semver" +) + +var SdkVersion semver.Version = semver.Version{} +var pluginDownloadURL string = "" diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/network.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/network.go new file mode 100644 index 000000000..e2519e641 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/network.go @@ -0,0 +1,465 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// +// `Network` provides a docker network resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.NewNetwork(ctx, "privateNetwork", nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ### Example Assuming you created a `network` as follows #!/bin/bash docker network create foo prints the long ID 87b57a9b91ecab2db2a6dbf38df74c67d7c7108cbe479d6576574ec2cd8c2d73 you provide the definition for the resource as follows terraform resource "docker_network" "foo" { +// +// name = "foo" } then the import command is as follows #!/bin/bash +// +// ```sh +// +// $ pulumi import docker:index/network:Network foo 87b57a9b91ecab2db2a6dbf38df74c67d7c7108cbe479d6576574ec2cd8c2d73 +// +// ``` +type Network struct { + pulumi.CustomResourceState + + // Enable manual container attachment to the network. + Attachable pulumi.BoolPtrOutput `pulumi:"attachable"` + // Requests daemon to check for networks with same name. + CheckDuplicate pulumi.BoolPtrOutput `pulumi:"checkDuplicate"` + // The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. + Driver pulumi.StringOutput `pulumi:"driver"` + // Create swarm routing-mesh network. Defaults to `false`. + Ingress pulumi.BoolPtrOutput `pulumi:"ingress"` + // Whether the network is internal. + Internal pulumi.BoolOutput `pulumi:"internal"` + // The IPAM configuration options + IpamConfigs NetworkIpamConfigArrayOutput `pulumi:"ipamConfigs"` + // Driver used by the custom IP scheme of the network. Defaults to `default` + IpamDriver pulumi.StringPtrOutput `pulumi:"ipamDriver"` + // Provide explicit options to the IPAM driver. Valid options vary with `ipamDriver` and refer to that driver's documentation for more details. + IpamOptions pulumi.MapOutput `pulumi:"ipamOptions"` + // Enable IPv6 networking. Defaults to `false`. + Ipv6 pulumi.BoolPtrOutput `pulumi:"ipv6"` + // User-defined key/value metadata + Labels NetworkLabelArrayOutput `pulumi:"labels"` + // The name of the Docker network. + Name pulumi.StringOutput `pulumi:"name"` + // Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. + Options pulumi.MapOutput `pulumi:"options"` + // Scope of the network. One of `swarm`, `global`, or `local`. + Scope pulumi.StringOutput `pulumi:"scope"` +} + +// NewNetwork registers a new resource with the given unique name, arguments, and options. +func NewNetwork(ctx *pulumi.Context, + name string, args *NetworkArgs, opts ...pulumi.ResourceOption) (*Network, error) { + if args == nil { + args = &NetworkArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Network + err := ctx.RegisterResource("docker:index/network:Network", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetNetwork gets an existing Network resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetNetwork(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *NetworkState, opts ...pulumi.ResourceOption) (*Network, error) { + var resource Network + err := ctx.ReadResource("docker:index/network:Network", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Network resources. +type networkState struct { + // Enable manual container attachment to the network. + Attachable *bool `pulumi:"attachable"` + // Requests daemon to check for networks with same name. + CheckDuplicate *bool `pulumi:"checkDuplicate"` + // The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. + Driver *string `pulumi:"driver"` + // Create swarm routing-mesh network. Defaults to `false`. + Ingress *bool `pulumi:"ingress"` + // Whether the network is internal. + Internal *bool `pulumi:"internal"` + // The IPAM configuration options + IpamConfigs []NetworkIpamConfig `pulumi:"ipamConfigs"` + // Driver used by the custom IP scheme of the network. Defaults to `default` + IpamDriver *string `pulumi:"ipamDriver"` + // Provide explicit options to the IPAM driver. Valid options vary with `ipamDriver` and refer to that driver's documentation for more details. + IpamOptions map[string]interface{} `pulumi:"ipamOptions"` + // Enable IPv6 networking. Defaults to `false`. + Ipv6 *bool `pulumi:"ipv6"` + // User-defined key/value metadata + Labels []NetworkLabel `pulumi:"labels"` + // The name of the Docker network. + Name *string `pulumi:"name"` + // Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. + Options map[string]interface{} `pulumi:"options"` + // Scope of the network. One of `swarm`, `global`, or `local`. + Scope *string `pulumi:"scope"` +} + +type NetworkState struct { + // Enable manual container attachment to the network. + Attachable pulumi.BoolPtrInput + // Requests daemon to check for networks with same name. + CheckDuplicate pulumi.BoolPtrInput + // The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. + Driver pulumi.StringPtrInput + // Create swarm routing-mesh network. Defaults to `false`. + Ingress pulumi.BoolPtrInput + // Whether the network is internal. + Internal pulumi.BoolPtrInput + // The IPAM configuration options + IpamConfigs NetworkIpamConfigArrayInput + // Driver used by the custom IP scheme of the network. Defaults to `default` + IpamDriver pulumi.StringPtrInput + // Provide explicit options to the IPAM driver. Valid options vary with `ipamDriver` and refer to that driver's documentation for more details. + IpamOptions pulumi.MapInput + // Enable IPv6 networking. Defaults to `false`. + Ipv6 pulumi.BoolPtrInput + // User-defined key/value metadata + Labels NetworkLabelArrayInput + // The name of the Docker network. + Name pulumi.StringPtrInput + // Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. + Options pulumi.MapInput + // Scope of the network. One of `swarm`, `global`, or `local`. + Scope pulumi.StringPtrInput +} + +func (NetworkState) ElementType() reflect.Type { + return reflect.TypeOf((*networkState)(nil)).Elem() +} + +type networkArgs struct { + // Enable manual container attachment to the network. + Attachable *bool `pulumi:"attachable"` + // Requests daemon to check for networks with same name. + CheckDuplicate *bool `pulumi:"checkDuplicate"` + // The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. + Driver *string `pulumi:"driver"` + // Create swarm routing-mesh network. Defaults to `false`. + Ingress *bool `pulumi:"ingress"` + // Whether the network is internal. + Internal *bool `pulumi:"internal"` + // The IPAM configuration options + IpamConfigs []NetworkIpamConfig `pulumi:"ipamConfigs"` + // Driver used by the custom IP scheme of the network. Defaults to `default` + IpamDriver *string `pulumi:"ipamDriver"` + // Provide explicit options to the IPAM driver. Valid options vary with `ipamDriver` and refer to that driver's documentation for more details. + IpamOptions map[string]interface{} `pulumi:"ipamOptions"` + // Enable IPv6 networking. Defaults to `false`. + Ipv6 *bool `pulumi:"ipv6"` + // User-defined key/value metadata + Labels []NetworkLabel `pulumi:"labels"` + // The name of the Docker network. + Name *string `pulumi:"name"` + // Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. + Options map[string]interface{} `pulumi:"options"` +} + +// The set of arguments for constructing a Network resource. +type NetworkArgs struct { + // Enable manual container attachment to the network. + Attachable pulumi.BoolPtrInput + // Requests daemon to check for networks with same name. + CheckDuplicate pulumi.BoolPtrInput + // The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. + Driver pulumi.StringPtrInput + // Create swarm routing-mesh network. Defaults to `false`. + Ingress pulumi.BoolPtrInput + // Whether the network is internal. + Internal pulumi.BoolPtrInput + // The IPAM configuration options + IpamConfigs NetworkIpamConfigArrayInput + // Driver used by the custom IP scheme of the network. Defaults to `default` + IpamDriver pulumi.StringPtrInput + // Provide explicit options to the IPAM driver. Valid options vary with `ipamDriver` and refer to that driver's documentation for more details. + IpamOptions pulumi.MapInput + // Enable IPv6 networking. Defaults to `false`. + Ipv6 pulumi.BoolPtrInput + // User-defined key/value metadata + Labels NetworkLabelArrayInput + // The name of the Docker network. + Name pulumi.StringPtrInput + // Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. + Options pulumi.MapInput +} + +func (NetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*networkArgs)(nil)).Elem() +} + +type NetworkInput interface { + pulumi.Input + + ToNetworkOutput() NetworkOutput + ToNetworkOutputWithContext(ctx context.Context) NetworkOutput +} + +func (*Network) ElementType() reflect.Type { + return reflect.TypeOf((**Network)(nil)).Elem() +} + +func (i *Network) ToNetworkOutput() NetworkOutput { + return i.ToNetworkOutputWithContext(context.Background()) +} + +func (i *Network) ToNetworkOutputWithContext(ctx context.Context) NetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkOutput) +} + +func (i *Network) ToOutput(ctx context.Context) pulumix.Output[*Network] { + return pulumix.Output[*Network]{ + OutputState: i.ToNetworkOutputWithContext(ctx).OutputState, + } +} + +// NetworkArrayInput is an input type that accepts NetworkArray and NetworkArrayOutput values. +// You can construct a concrete instance of `NetworkArrayInput` via: +// +// NetworkArray{ NetworkArgs{...} } +type NetworkArrayInput interface { + pulumi.Input + + ToNetworkArrayOutput() NetworkArrayOutput + ToNetworkArrayOutputWithContext(context.Context) NetworkArrayOutput +} + +type NetworkArray []NetworkInput + +func (NetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Network)(nil)).Elem() +} + +func (i NetworkArray) ToNetworkArrayOutput() NetworkArrayOutput { + return i.ToNetworkArrayOutputWithContext(context.Background()) +} + +func (i NetworkArray) ToNetworkArrayOutputWithContext(ctx context.Context) NetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkArrayOutput) +} + +func (i NetworkArray) ToOutput(ctx context.Context) pulumix.Output[[]*Network] { + return pulumix.Output[[]*Network]{ + OutputState: i.ToNetworkArrayOutputWithContext(ctx).OutputState, + } +} + +// NetworkMapInput is an input type that accepts NetworkMap and NetworkMapOutput values. +// You can construct a concrete instance of `NetworkMapInput` via: +// +// NetworkMap{ "key": NetworkArgs{...} } +type NetworkMapInput interface { + pulumi.Input + + ToNetworkMapOutput() NetworkMapOutput + ToNetworkMapOutputWithContext(context.Context) NetworkMapOutput +} + +type NetworkMap map[string]NetworkInput + +func (NetworkMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Network)(nil)).Elem() +} + +func (i NetworkMap) ToNetworkMapOutput() NetworkMapOutput { + return i.ToNetworkMapOutputWithContext(context.Background()) +} + +func (i NetworkMap) ToNetworkMapOutputWithContext(ctx context.Context) NetworkMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkMapOutput) +} + +func (i NetworkMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Network] { + return pulumix.Output[map[string]*Network]{ + OutputState: i.ToNetworkMapOutputWithContext(ctx).OutputState, + } +} + +type NetworkOutput struct{ *pulumi.OutputState } + +func (NetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Network)(nil)).Elem() +} + +func (o NetworkOutput) ToNetworkOutput() NetworkOutput { + return o +} + +func (o NetworkOutput) ToNetworkOutputWithContext(ctx context.Context) NetworkOutput { + return o +} + +func (o NetworkOutput) ToOutput(ctx context.Context) pulumix.Output[*Network] { + return pulumix.Output[*Network]{ + OutputState: o.OutputState, + } +} + +// Enable manual container attachment to the network. +func (o NetworkOutput) Attachable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Network) pulumi.BoolPtrOutput { return v.Attachable }).(pulumi.BoolPtrOutput) +} + +// Requests daemon to check for networks with same name. +func (o NetworkOutput) CheckDuplicate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Network) pulumi.BoolPtrOutput { return v.CheckDuplicate }).(pulumi.BoolPtrOutput) +} + +// The driver of the Docker network. Possible values are `bridge`, `host`, `overlay`, `macvlan`. See [network docs](https://docs.docker.com/network/#network-drivers) for more details. +func (o NetworkOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Driver }).(pulumi.StringOutput) +} + +// Create swarm routing-mesh network. Defaults to `false`. +func (o NetworkOutput) Ingress() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Network) pulumi.BoolPtrOutput { return v.Ingress }).(pulumi.BoolPtrOutput) +} + +// Whether the network is internal. +func (o NetworkOutput) Internal() pulumi.BoolOutput { + return o.ApplyT(func(v *Network) pulumi.BoolOutput { return v.Internal }).(pulumi.BoolOutput) +} + +// The IPAM configuration options +func (o NetworkOutput) IpamConfigs() NetworkIpamConfigArrayOutput { + return o.ApplyT(func(v *Network) NetworkIpamConfigArrayOutput { return v.IpamConfigs }).(NetworkIpamConfigArrayOutput) +} + +// Driver used by the custom IP scheme of the network. Defaults to `default` +func (o NetworkOutput) IpamDriver() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Network) pulumi.StringPtrOutput { return v.IpamDriver }).(pulumi.StringPtrOutput) +} + +// Provide explicit options to the IPAM driver. Valid options vary with `ipamDriver` and refer to that driver's documentation for more details. +func (o NetworkOutput) IpamOptions() pulumi.MapOutput { + return o.ApplyT(func(v *Network) pulumi.MapOutput { return v.IpamOptions }).(pulumi.MapOutput) +} + +// Enable IPv6 networking. Defaults to `false`. +func (o NetworkOutput) Ipv6() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Network) pulumi.BoolPtrOutput { return v.Ipv6 }).(pulumi.BoolPtrOutput) +} + +// User-defined key/value metadata +func (o NetworkOutput) Labels() NetworkLabelArrayOutput { + return o.ApplyT(func(v *Network) NetworkLabelArrayOutput { return v.Labels }).(NetworkLabelArrayOutput) +} + +// The name of the Docker network. +func (o NetworkOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Only available with bridge networks. See [bridge options docs](https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options) for more details. +func (o NetworkOutput) Options() pulumi.MapOutput { + return o.ApplyT(func(v *Network) pulumi.MapOutput { return v.Options }).(pulumi.MapOutput) +} + +// Scope of the network. One of `swarm`, `global`, or `local`. +func (o NetworkOutput) Scope() pulumi.StringOutput { + return o.ApplyT(func(v *Network) pulumi.StringOutput { return v.Scope }).(pulumi.StringOutput) +} + +type NetworkArrayOutput struct{ *pulumi.OutputState } + +func (NetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Network)(nil)).Elem() +} + +func (o NetworkArrayOutput) ToNetworkArrayOutput() NetworkArrayOutput { + return o +} + +func (o NetworkArrayOutput) ToNetworkArrayOutputWithContext(ctx context.Context) NetworkArrayOutput { + return o +} + +func (o NetworkArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Network] { + return pulumix.Output[[]*Network]{ + OutputState: o.OutputState, + } +} + +func (o NetworkArrayOutput) Index(i pulumi.IntInput) NetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Network { + return vs[0].([]*Network)[vs[1].(int)] + }).(NetworkOutput) +} + +type NetworkMapOutput struct{ *pulumi.OutputState } + +func (NetworkMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Network)(nil)).Elem() +} + +func (o NetworkMapOutput) ToNetworkMapOutput() NetworkMapOutput { + return o +} + +func (o NetworkMapOutput) ToNetworkMapOutputWithContext(ctx context.Context) NetworkMapOutput { + return o +} + +func (o NetworkMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Network] { + return pulumix.Output[map[string]*Network]{ + OutputState: o.OutputState, + } +} + +func (o NetworkMapOutput) MapIndex(k pulumi.StringInput) NetworkOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Network { + return vs[0].(map[string]*Network)[vs[1].(string)] + }).(NetworkOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*NetworkInput)(nil)).Elem(), &Network{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkArrayInput)(nil)).Elem(), NetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkMapInput)(nil)).Elem(), NetworkMap{}) + pulumi.RegisterOutputType(NetworkOutput{}) + pulumi.RegisterOutputType(NetworkArrayOutput{}) + pulumi.RegisterOutputType(NetworkMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/plugin.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/plugin.go new file mode 100644 index 000000000..41f466c99 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/plugin.go @@ -0,0 +1,428 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// +// Manages the lifecycle of a Docker plugin. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.NewPlugin(ctx, "sample-volume-plugin", &docker.PluginArgs{ +// Alias: pulumi.String("sample-volume-plugin"), +// EnableTimeout: pulumi.Int(60), +// Enabled: pulumi.Bool(false), +// Envs: pulumi.StringArray{ +// pulumi.String("DEBUG=1"), +// }, +// ForceDestroy: pulumi.Bool(true), +// ForceDisable: pulumi.Bool(true), +// GrantAllPermissions: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// #!/bin/bash +// +// ```sh +// +// $ pulumi import docker:index/plugin:Plugin sample-volume-plugin "$(docker plugin inspect -f {{.ID}} tiborvass/sample-volume-plugin:latest)" +// +// ``` +type Plugin struct { + pulumi.CustomResourceState + + // Docker Plugin alias + Alias pulumi.StringOutput `pulumi:"alias"` + // HTTP client timeout to enable the plugin + EnableTimeout pulumi.IntPtrOutput `pulumi:"enableTimeout"` + // If `true` the plugin is enabled. Defaults to `true` + Enabled pulumi.BoolPtrOutput `pulumi:"enabled"` + // The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs pulumi.StringArrayOutput `pulumi:"envs"` + // If true, then the plugin is destroyed forcibly + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + // If true, then the plugin is disabled forcibly + ForceDisable pulumi.BoolPtrOutput `pulumi:"forceDisable"` + // If true, grant all permissions necessary to run the plugin + GrantAllPermissions pulumi.BoolPtrOutput `pulumi:"grantAllPermissions"` + // Grant specific permissions only + GrantPermissions PluginGrantPermissionArrayOutput `pulumi:"grantPermissions"` + // Docker Plugin name + Name pulumi.StringOutput `pulumi:"name"` + // Docker Plugin Reference + PluginReference pulumi.StringOutput `pulumi:"pluginReference"` +} + +// NewPlugin registers a new resource with the given unique name, arguments, and options. +func NewPlugin(ctx *pulumi.Context, + name string, args *PluginArgs, opts ...pulumi.ResourceOption) (*Plugin, error) { + if args == nil { + args = &PluginArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Plugin + err := ctx.RegisterResource("docker:index/plugin:Plugin", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPlugin gets an existing Plugin resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPlugin(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PluginState, opts ...pulumi.ResourceOption) (*Plugin, error) { + var resource Plugin + err := ctx.ReadResource("docker:index/plugin:Plugin", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Plugin resources. +type pluginState struct { + // Docker Plugin alias + Alias *string `pulumi:"alias"` + // HTTP client timeout to enable the plugin + EnableTimeout *int `pulumi:"enableTimeout"` + // If `true` the plugin is enabled. Defaults to `true` + Enabled *bool `pulumi:"enabled"` + // The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs []string `pulumi:"envs"` + // If true, then the plugin is destroyed forcibly + ForceDestroy *bool `pulumi:"forceDestroy"` + // If true, then the plugin is disabled forcibly + ForceDisable *bool `pulumi:"forceDisable"` + // If true, grant all permissions necessary to run the plugin + GrantAllPermissions *bool `pulumi:"grantAllPermissions"` + // Grant specific permissions only + GrantPermissions []PluginGrantPermission `pulumi:"grantPermissions"` + // Docker Plugin name + Name *string `pulumi:"name"` + // Docker Plugin Reference + PluginReference *string `pulumi:"pluginReference"` +} + +type PluginState struct { + // Docker Plugin alias + Alias pulumi.StringPtrInput + // HTTP client timeout to enable the plugin + EnableTimeout pulumi.IntPtrInput + // If `true` the plugin is enabled. Defaults to `true` + Enabled pulumi.BoolPtrInput + // The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs pulumi.StringArrayInput + // If true, then the plugin is destroyed forcibly + ForceDestroy pulumi.BoolPtrInput + // If true, then the plugin is disabled forcibly + ForceDisable pulumi.BoolPtrInput + // If true, grant all permissions necessary to run the plugin + GrantAllPermissions pulumi.BoolPtrInput + // Grant specific permissions only + GrantPermissions PluginGrantPermissionArrayInput + // Docker Plugin name + Name pulumi.StringPtrInput + // Docker Plugin Reference + PluginReference pulumi.StringPtrInput +} + +func (PluginState) ElementType() reflect.Type { + return reflect.TypeOf((*pluginState)(nil)).Elem() +} + +type pluginArgs struct { + // Docker Plugin alias + Alias *string `pulumi:"alias"` + // HTTP client timeout to enable the plugin + EnableTimeout *int `pulumi:"enableTimeout"` + // If `true` the plugin is enabled. Defaults to `true` + Enabled *bool `pulumi:"enabled"` + // The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs []string `pulumi:"envs"` + // If true, then the plugin is destroyed forcibly + ForceDestroy *bool `pulumi:"forceDestroy"` + // If true, then the plugin is disabled forcibly + ForceDisable *bool `pulumi:"forceDisable"` + // If true, grant all permissions necessary to run the plugin + GrantAllPermissions *bool `pulumi:"grantAllPermissions"` + // Grant specific permissions only + GrantPermissions []PluginGrantPermission `pulumi:"grantPermissions"` + // Docker Plugin name + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a Plugin resource. +type PluginArgs struct { + // Docker Plugin alias + Alias pulumi.StringPtrInput + // HTTP client timeout to enable the plugin + EnableTimeout pulumi.IntPtrInput + // If `true` the plugin is enabled. Defaults to `true` + Enabled pulumi.BoolPtrInput + // The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` + Envs pulumi.StringArrayInput + // If true, then the plugin is destroyed forcibly + ForceDestroy pulumi.BoolPtrInput + // If true, then the plugin is disabled forcibly + ForceDisable pulumi.BoolPtrInput + // If true, grant all permissions necessary to run the plugin + GrantAllPermissions pulumi.BoolPtrInput + // Grant specific permissions only + GrantPermissions PluginGrantPermissionArrayInput + // Docker Plugin name + Name pulumi.StringPtrInput +} + +func (PluginArgs) ElementType() reflect.Type { + return reflect.TypeOf((*pluginArgs)(nil)).Elem() +} + +type PluginInput interface { + pulumi.Input + + ToPluginOutput() PluginOutput + ToPluginOutputWithContext(ctx context.Context) PluginOutput +} + +func (*Plugin) ElementType() reflect.Type { + return reflect.TypeOf((**Plugin)(nil)).Elem() +} + +func (i *Plugin) ToPluginOutput() PluginOutput { + return i.ToPluginOutputWithContext(context.Background()) +} + +func (i *Plugin) ToPluginOutputWithContext(ctx context.Context) PluginOutput { + return pulumi.ToOutputWithContext(ctx, i).(PluginOutput) +} + +func (i *Plugin) ToOutput(ctx context.Context) pulumix.Output[*Plugin] { + return pulumix.Output[*Plugin]{ + OutputState: i.ToPluginOutputWithContext(ctx).OutputState, + } +} + +// PluginArrayInput is an input type that accepts PluginArray and PluginArrayOutput values. +// You can construct a concrete instance of `PluginArrayInput` via: +// +// PluginArray{ PluginArgs{...} } +type PluginArrayInput interface { + pulumi.Input + + ToPluginArrayOutput() PluginArrayOutput + ToPluginArrayOutputWithContext(context.Context) PluginArrayOutput +} + +type PluginArray []PluginInput + +func (PluginArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Plugin)(nil)).Elem() +} + +func (i PluginArray) ToPluginArrayOutput() PluginArrayOutput { + return i.ToPluginArrayOutputWithContext(context.Background()) +} + +func (i PluginArray) ToPluginArrayOutputWithContext(ctx context.Context) PluginArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PluginArrayOutput) +} + +func (i PluginArray) ToOutput(ctx context.Context) pulumix.Output[[]*Plugin] { + return pulumix.Output[[]*Plugin]{ + OutputState: i.ToPluginArrayOutputWithContext(ctx).OutputState, + } +} + +// PluginMapInput is an input type that accepts PluginMap and PluginMapOutput values. +// You can construct a concrete instance of `PluginMapInput` via: +// +// PluginMap{ "key": PluginArgs{...} } +type PluginMapInput interface { + pulumi.Input + + ToPluginMapOutput() PluginMapOutput + ToPluginMapOutputWithContext(context.Context) PluginMapOutput +} + +type PluginMap map[string]PluginInput + +func (PluginMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Plugin)(nil)).Elem() +} + +func (i PluginMap) ToPluginMapOutput() PluginMapOutput { + return i.ToPluginMapOutputWithContext(context.Background()) +} + +func (i PluginMap) ToPluginMapOutputWithContext(ctx context.Context) PluginMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PluginMapOutput) +} + +func (i PluginMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Plugin] { + return pulumix.Output[map[string]*Plugin]{ + OutputState: i.ToPluginMapOutputWithContext(ctx).OutputState, + } +} + +type PluginOutput struct{ *pulumi.OutputState } + +func (PluginOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Plugin)(nil)).Elem() +} + +func (o PluginOutput) ToPluginOutput() PluginOutput { + return o +} + +func (o PluginOutput) ToPluginOutputWithContext(ctx context.Context) PluginOutput { + return o +} + +func (o PluginOutput) ToOutput(ctx context.Context) pulumix.Output[*Plugin] { + return pulumix.Output[*Plugin]{ + OutputState: o.OutputState, + } +} + +// Docker Plugin alias +func (o PluginOutput) Alias() pulumi.StringOutput { + return o.ApplyT(func(v *Plugin) pulumi.StringOutput { return v.Alias }).(pulumi.StringOutput) +} + +// HTTP client timeout to enable the plugin +func (o PluginOutput) EnableTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Plugin) pulumi.IntPtrOutput { return v.EnableTimeout }).(pulumi.IntPtrOutput) +} + +// If `true` the plugin is enabled. Defaults to `true` +func (o PluginOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Plugin) pulumi.BoolPtrOutput { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// The environment variables in the form of `KEY=VALUE`, e.g. `DEBUG=0` +func (o PluginOutput) Envs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Plugin) pulumi.StringArrayOutput { return v.Envs }).(pulumi.StringArrayOutput) +} + +// If true, then the plugin is destroyed forcibly +func (o PluginOutput) ForceDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Plugin) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput) +} + +// If true, then the plugin is disabled forcibly +func (o PluginOutput) ForceDisable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Plugin) pulumi.BoolPtrOutput { return v.ForceDisable }).(pulumi.BoolPtrOutput) +} + +// If true, grant all permissions necessary to run the plugin +func (o PluginOutput) GrantAllPermissions() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Plugin) pulumi.BoolPtrOutput { return v.GrantAllPermissions }).(pulumi.BoolPtrOutput) +} + +// Grant specific permissions only +func (o PluginOutput) GrantPermissions() PluginGrantPermissionArrayOutput { + return o.ApplyT(func(v *Plugin) PluginGrantPermissionArrayOutput { return v.GrantPermissions }).(PluginGrantPermissionArrayOutput) +} + +// Docker Plugin name +func (o PluginOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Plugin) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Docker Plugin Reference +func (o PluginOutput) PluginReference() pulumi.StringOutput { + return o.ApplyT(func(v *Plugin) pulumi.StringOutput { return v.PluginReference }).(pulumi.StringOutput) +} + +type PluginArrayOutput struct{ *pulumi.OutputState } + +func (PluginArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Plugin)(nil)).Elem() +} + +func (o PluginArrayOutput) ToPluginArrayOutput() PluginArrayOutput { + return o +} + +func (o PluginArrayOutput) ToPluginArrayOutputWithContext(ctx context.Context) PluginArrayOutput { + return o +} + +func (o PluginArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Plugin] { + return pulumix.Output[[]*Plugin]{ + OutputState: o.OutputState, + } +} + +func (o PluginArrayOutput) Index(i pulumi.IntInput) PluginOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Plugin { + return vs[0].([]*Plugin)[vs[1].(int)] + }).(PluginOutput) +} + +type PluginMapOutput struct{ *pulumi.OutputState } + +func (PluginMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Plugin)(nil)).Elem() +} + +func (o PluginMapOutput) ToPluginMapOutput() PluginMapOutput { + return o +} + +func (o PluginMapOutput) ToPluginMapOutputWithContext(ctx context.Context) PluginMapOutput { + return o +} + +func (o PluginMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Plugin] { + return pulumix.Output[map[string]*Plugin]{ + OutputState: o.OutputState, + } +} + +func (o PluginMapOutput) MapIndex(k pulumi.StringInput) PluginOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Plugin { + return vs[0].(map[string]*Plugin)[vs[1].(string)] + }).(PluginOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PluginInput)(nil)).Elem(), &Plugin{}) + pulumi.RegisterInputType(reflect.TypeOf((*PluginArrayInput)(nil)).Elem(), PluginArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PluginMapInput)(nil)).Elem(), PluginMap{}) + pulumi.RegisterOutputType(PluginOutput{}) + pulumi.RegisterOutputType(PluginArrayOutput{}) + pulumi.RegisterOutputType(PluginMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/provider.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/provider.go new file mode 100644 index 000000000..f04786df7 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/provider.go @@ -0,0 +1,165 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// The provider type for the docker package. By default, resources use package-wide configuration +// settings, however an explicit `Provider` instance may be created and passed during resource +// construction to achieve fine-grained programmatic control over provider settings. See the +// [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information. +type Provider struct { + pulumi.ProviderResourceState + + // PEM-encoded content of Docker host CA certificate + CaMaterial pulumi.StringPtrOutput `pulumi:"caMaterial"` + // PEM-encoded content of Docker client certificate + CertMaterial pulumi.StringPtrOutput `pulumi:"certMaterial"` + // Path to directory with Docker TLS config + CertPath pulumi.StringPtrOutput `pulumi:"certPath"` + // The Docker daemon address + Host pulumi.StringPtrOutput `pulumi:"host"` + // PEM-encoded content of Docker client private key + KeyMaterial pulumi.StringPtrOutput `pulumi:"keyMaterial"` +} + +// NewProvider registers a new resource with the given unique name, arguments, and options. +func NewProvider(ctx *pulumi.Context, + name string, args *ProviderArgs, opts ...pulumi.ResourceOption) (*Provider, error) { + if args == nil { + args = &ProviderArgs{} + } + + if args.Host == nil { + if d := internal.GetEnvOrDefault(nil, nil, "DOCKER_HOST"); d != nil { + args.Host = pulumi.StringPtr(d.(string)) + } + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Provider + err := ctx.RegisterResource("pulumi:providers:docker", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +type providerArgs struct { + // PEM-encoded content of Docker host CA certificate + CaMaterial *string `pulumi:"caMaterial"` + // PEM-encoded content of Docker client certificate + CertMaterial *string `pulumi:"certMaterial"` + // Path to directory with Docker TLS config + CertPath *string `pulumi:"certPath"` + // The Docker daemon address + Host *string `pulumi:"host"` + // PEM-encoded content of Docker client private key + KeyMaterial *string `pulumi:"keyMaterial"` + RegistryAuth []ProviderRegistryAuth `pulumi:"registryAuth"` + // Additional SSH option flags to be appended when using `ssh://` protocol + SshOpts []string `pulumi:"sshOpts"` +} + +// The set of arguments for constructing a Provider resource. +type ProviderArgs struct { + // PEM-encoded content of Docker host CA certificate + CaMaterial pulumi.StringPtrInput + // PEM-encoded content of Docker client certificate + CertMaterial pulumi.StringPtrInput + // Path to directory with Docker TLS config + CertPath pulumi.StringPtrInput + // The Docker daemon address + Host pulumi.StringPtrInput + // PEM-encoded content of Docker client private key + KeyMaterial pulumi.StringPtrInput + RegistryAuth ProviderRegistryAuthArrayInput + // Additional SSH option flags to be appended when using `ssh://` protocol + SshOpts pulumi.StringArrayInput +} + +func (ProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*providerArgs)(nil)).Elem() +} + +type ProviderInput interface { + pulumi.Input + + ToProviderOutput() ProviderOutput + ToProviderOutputWithContext(ctx context.Context) ProviderOutput +} + +func (*Provider) ElementType() reflect.Type { + return reflect.TypeOf((**Provider)(nil)).Elem() +} + +func (i *Provider) ToProviderOutput() ProviderOutput { + return i.ToProviderOutputWithContext(context.Background()) +} + +func (i *Provider) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderOutput) +} + +func (i *Provider) ToOutput(ctx context.Context) pulumix.Output[*Provider] { + return pulumix.Output[*Provider]{ + OutputState: i.ToProviderOutputWithContext(ctx).OutputState, + } +} + +type ProviderOutput struct{ *pulumi.OutputState } + +func (ProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Provider)(nil)).Elem() +} + +func (o ProviderOutput) ToProviderOutput() ProviderOutput { + return o +} + +func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) ProviderOutput { + return o +} + +func (o ProviderOutput) ToOutput(ctx context.Context) pulumix.Output[*Provider] { + return pulumix.Output[*Provider]{ + OutputState: o.OutputState, + } +} + +// PEM-encoded content of Docker host CA certificate +func (o ProviderOutput) CaMaterial() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.CaMaterial }).(pulumi.StringPtrOutput) +} + +// PEM-encoded content of Docker client certificate +func (o ProviderOutput) CertMaterial() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.CertMaterial }).(pulumi.StringPtrOutput) +} + +// Path to directory with Docker TLS config +func (o ProviderOutput) CertPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.CertPath }).(pulumi.StringPtrOutput) +} + +// The Docker daemon address +func (o ProviderOutput) Host() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.Host }).(pulumi.StringPtrOutput) +} + +// PEM-encoded content of Docker client private key +func (o ProviderOutput) KeyMaterial() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.KeyMaterial }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{}) + pulumi.RegisterOutputType(ProviderOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumi-plugin.json new file mode 100644 index 000000000..cf18e9129 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumi-plugin.json @@ -0,0 +1,4 @@ +{ + "resource": true, + "name": "docker" +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiEnums.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiEnums.go new file mode 100644 index 000000000..48381fca9 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiEnums.go @@ -0,0 +1,204 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// The version of the Docker builder. +type BuilderVersion string + +const ( + // The first generation builder for Docker Daemon + BuilderVersionBuilderV1 = BuilderVersion("BuilderV1") + // The builder based on moby/buildkit project + BuilderVersionBuilderBuildKit = BuilderVersion("BuilderBuildKit") +) + +func (BuilderVersion) ElementType() reflect.Type { + return reflect.TypeOf((*BuilderVersion)(nil)).Elem() +} + +func (e BuilderVersion) ToBuilderVersionOutput() BuilderVersionOutput { + return pulumi.ToOutput(e).(BuilderVersionOutput) +} + +func (e BuilderVersion) ToBuilderVersionOutputWithContext(ctx context.Context) BuilderVersionOutput { + return pulumi.ToOutputWithContext(ctx, e).(BuilderVersionOutput) +} + +func (e BuilderVersion) ToBuilderVersionPtrOutput() BuilderVersionPtrOutput { + return e.ToBuilderVersionPtrOutputWithContext(context.Background()) +} + +func (e BuilderVersion) ToBuilderVersionPtrOutputWithContext(ctx context.Context) BuilderVersionPtrOutput { + return BuilderVersion(e).ToBuilderVersionOutputWithContext(ctx).ToBuilderVersionPtrOutputWithContext(ctx) +} + +func (e BuilderVersion) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e BuilderVersion) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e BuilderVersion) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e BuilderVersion) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type BuilderVersionOutput struct{ *pulumi.OutputState } + +func (BuilderVersionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BuilderVersion)(nil)).Elem() +} + +func (o BuilderVersionOutput) ToBuilderVersionOutput() BuilderVersionOutput { + return o +} + +func (o BuilderVersionOutput) ToBuilderVersionOutputWithContext(ctx context.Context) BuilderVersionOutput { + return o +} + +func (o BuilderVersionOutput) ToBuilderVersionPtrOutput() BuilderVersionPtrOutput { + return o.ToBuilderVersionPtrOutputWithContext(context.Background()) +} + +func (o BuilderVersionOutput) ToBuilderVersionPtrOutputWithContext(ctx context.Context) BuilderVersionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BuilderVersion) *BuilderVersion { + return &v + }).(BuilderVersionPtrOutput) +} + +func (o BuilderVersionOutput) ToOutput(ctx context.Context) pulumix.Output[BuilderVersion] { + return pulumix.Output[BuilderVersion]{ + OutputState: o.OutputState, + } +} + +func (o BuilderVersionOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o BuilderVersionOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e BuilderVersion) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o BuilderVersionOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o BuilderVersionOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e BuilderVersion) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type BuilderVersionPtrOutput struct{ *pulumi.OutputState } + +func (BuilderVersionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BuilderVersion)(nil)).Elem() +} + +func (o BuilderVersionPtrOutput) ToBuilderVersionPtrOutput() BuilderVersionPtrOutput { + return o +} + +func (o BuilderVersionPtrOutput) ToBuilderVersionPtrOutputWithContext(ctx context.Context) BuilderVersionPtrOutput { + return o +} + +func (o BuilderVersionPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*BuilderVersion] { + return pulumix.Output[*BuilderVersion]{ + OutputState: o.OutputState, + } +} + +func (o BuilderVersionPtrOutput) Elem() BuilderVersionOutput { + return o.ApplyT(func(v *BuilderVersion) BuilderVersion { + if v != nil { + return *v + } + var ret BuilderVersion + return ret + }).(BuilderVersionOutput) +} + +func (o BuilderVersionPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o BuilderVersionPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *BuilderVersion) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// BuilderVersionInput is an input type that accepts BuilderVersionArgs and BuilderVersionOutput values. +// You can construct a concrete instance of `BuilderVersionInput` via: +// +// BuilderVersionArgs{...} +type BuilderVersionInput interface { + pulumi.Input + + ToBuilderVersionOutput() BuilderVersionOutput + ToBuilderVersionOutputWithContext(context.Context) BuilderVersionOutput +} + +var builderVersionPtrType = reflect.TypeOf((**BuilderVersion)(nil)).Elem() + +type BuilderVersionPtrInput interface { + pulumi.Input + + ToBuilderVersionPtrOutput() BuilderVersionPtrOutput + ToBuilderVersionPtrOutputWithContext(context.Context) BuilderVersionPtrOutput +} + +type builderVersionPtr string + +func BuilderVersionPtr(v string) BuilderVersionPtrInput { + return (*builderVersionPtr)(&v) +} + +func (*builderVersionPtr) ElementType() reflect.Type { + return builderVersionPtrType +} + +func (in *builderVersionPtr) ToBuilderVersionPtrOutput() BuilderVersionPtrOutput { + return pulumi.ToOutput(in).(BuilderVersionPtrOutput) +} + +func (in *builderVersionPtr) ToBuilderVersionPtrOutputWithContext(ctx context.Context) BuilderVersionPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(BuilderVersionPtrOutput) +} + +func (in *builderVersionPtr) ToOutput(ctx context.Context) pulumix.Output[*BuilderVersion] { + return pulumix.Output[*BuilderVersion]{ + OutputState: in.ToBuilderVersionPtrOutputWithContext(ctx).OutputState, + } +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BuilderVersionInput)(nil)).Elem(), BuilderVersion("BuilderV1")) + pulumi.RegisterInputType(reflect.TypeOf((*BuilderVersionPtrInput)(nil)).Elem(), BuilderVersion("BuilderV1")) + pulumi.RegisterOutputType(BuilderVersionOutput{}) + pulumi.RegisterOutputType(BuilderVersionPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiTypes.go new file mode 100644 index 000000000..de130d3f0 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/pulumiTypes.go @@ -0,0 +1,11891 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +var _ = internal.GetEnvOrDefault + +type ContainerCapabilities struct { + // List of linux capabilities to add. + Adds []string `pulumi:"adds"` + // List of linux capabilities to drop. + Drops []string `pulumi:"drops"` +} + +// ContainerCapabilitiesInput is an input type that accepts ContainerCapabilitiesArgs and ContainerCapabilitiesOutput values. +// You can construct a concrete instance of `ContainerCapabilitiesInput` via: +// +// ContainerCapabilitiesArgs{...} +type ContainerCapabilitiesInput interface { + pulumi.Input + + ToContainerCapabilitiesOutput() ContainerCapabilitiesOutput + ToContainerCapabilitiesOutputWithContext(context.Context) ContainerCapabilitiesOutput +} + +type ContainerCapabilitiesArgs struct { + // List of linux capabilities to add. + Adds pulumi.StringArrayInput `pulumi:"adds"` + // List of linux capabilities to drop. + Drops pulumi.StringArrayInput `pulumi:"drops"` +} + +func (ContainerCapabilitiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerCapabilities)(nil)).Elem() +} + +func (i ContainerCapabilitiesArgs) ToContainerCapabilitiesOutput() ContainerCapabilitiesOutput { + return i.ToContainerCapabilitiesOutputWithContext(context.Background()) +} + +func (i ContainerCapabilitiesArgs) ToContainerCapabilitiesOutputWithContext(ctx context.Context) ContainerCapabilitiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerCapabilitiesOutput) +} + +func (i ContainerCapabilitiesArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerCapabilities] { + return pulumix.Output[ContainerCapabilities]{ + OutputState: i.ToContainerCapabilitiesOutputWithContext(ctx).OutputState, + } +} + +func (i ContainerCapabilitiesArgs) ToContainerCapabilitiesPtrOutput() ContainerCapabilitiesPtrOutput { + return i.ToContainerCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i ContainerCapabilitiesArgs) ToContainerCapabilitiesPtrOutputWithContext(ctx context.Context) ContainerCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerCapabilitiesOutput).ToContainerCapabilitiesPtrOutputWithContext(ctx) +} + +// ContainerCapabilitiesPtrInput is an input type that accepts ContainerCapabilitiesArgs, ContainerCapabilitiesPtr and ContainerCapabilitiesPtrOutput values. +// You can construct a concrete instance of `ContainerCapabilitiesPtrInput` via: +// +// ContainerCapabilitiesArgs{...} +// +// or: +// +// nil +type ContainerCapabilitiesPtrInput interface { + pulumi.Input + + ToContainerCapabilitiesPtrOutput() ContainerCapabilitiesPtrOutput + ToContainerCapabilitiesPtrOutputWithContext(context.Context) ContainerCapabilitiesPtrOutput +} + +type containerCapabilitiesPtrType ContainerCapabilitiesArgs + +func ContainerCapabilitiesPtr(v *ContainerCapabilitiesArgs) ContainerCapabilitiesPtrInput { + return (*containerCapabilitiesPtrType)(v) +} + +func (*containerCapabilitiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerCapabilities)(nil)).Elem() +} + +func (i *containerCapabilitiesPtrType) ToContainerCapabilitiesPtrOutput() ContainerCapabilitiesPtrOutput { + return i.ToContainerCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (i *containerCapabilitiesPtrType) ToContainerCapabilitiesPtrOutputWithContext(ctx context.Context) ContainerCapabilitiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerCapabilitiesPtrOutput) +} + +func (i *containerCapabilitiesPtrType) ToOutput(ctx context.Context) pulumix.Output[*ContainerCapabilities] { + return pulumix.Output[*ContainerCapabilities]{ + OutputState: i.ToContainerCapabilitiesPtrOutputWithContext(ctx).OutputState, + } +} + +type ContainerCapabilitiesOutput struct{ *pulumi.OutputState } + +func (ContainerCapabilitiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerCapabilities)(nil)).Elem() +} + +func (o ContainerCapabilitiesOutput) ToContainerCapabilitiesOutput() ContainerCapabilitiesOutput { + return o +} + +func (o ContainerCapabilitiesOutput) ToContainerCapabilitiesOutputWithContext(ctx context.Context) ContainerCapabilitiesOutput { + return o +} + +func (o ContainerCapabilitiesOutput) ToContainerCapabilitiesPtrOutput() ContainerCapabilitiesPtrOutput { + return o.ToContainerCapabilitiesPtrOutputWithContext(context.Background()) +} + +func (o ContainerCapabilitiesOutput) ToContainerCapabilitiesPtrOutputWithContext(ctx context.Context) ContainerCapabilitiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerCapabilities) *ContainerCapabilities { + return &v + }).(ContainerCapabilitiesPtrOutput) +} + +func (o ContainerCapabilitiesOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerCapabilities] { + return pulumix.Output[ContainerCapabilities]{ + OutputState: o.OutputState, + } +} + +// List of linux capabilities to add. +func (o ContainerCapabilitiesOutput) Adds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ContainerCapabilities) []string { return v.Adds }).(pulumi.StringArrayOutput) +} + +// List of linux capabilities to drop. +func (o ContainerCapabilitiesOutput) Drops() pulumi.StringArrayOutput { + return o.ApplyT(func(v ContainerCapabilities) []string { return v.Drops }).(pulumi.StringArrayOutput) +} + +type ContainerCapabilitiesPtrOutput struct{ *pulumi.OutputState } + +func (ContainerCapabilitiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerCapabilities)(nil)).Elem() +} + +func (o ContainerCapabilitiesPtrOutput) ToContainerCapabilitiesPtrOutput() ContainerCapabilitiesPtrOutput { + return o +} + +func (o ContainerCapabilitiesPtrOutput) ToContainerCapabilitiesPtrOutputWithContext(ctx context.Context) ContainerCapabilitiesPtrOutput { + return o +} + +func (o ContainerCapabilitiesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ContainerCapabilities] { + return pulumix.Output[*ContainerCapabilities]{ + OutputState: o.OutputState, + } +} + +func (o ContainerCapabilitiesPtrOutput) Elem() ContainerCapabilitiesOutput { + return o.ApplyT(func(v *ContainerCapabilities) ContainerCapabilities { + if v != nil { + return *v + } + var ret ContainerCapabilities + return ret + }).(ContainerCapabilitiesOutput) +} + +// List of linux capabilities to add. +func (o ContainerCapabilitiesPtrOutput) Adds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ContainerCapabilities) []string { + if v == nil { + return nil + } + return v.Adds + }).(pulumi.StringArrayOutput) +} + +// List of linux capabilities to drop. +func (o ContainerCapabilitiesPtrOutput) Drops() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ContainerCapabilities) []string { + if v == nil { + return nil + } + return v.Drops + }).(pulumi.StringArrayOutput) +} + +type ContainerDevice struct { + // The path in the container where the device will be bound. + ContainerPath *string `pulumi:"containerPath"` + // The path on the host where the device is located. + HostPath string `pulumi:"hostPath"` + // The cgroup permissions given to the container to access the device. Defaults to `rwm`. + Permissions *string `pulumi:"permissions"` +} + +// ContainerDeviceInput is an input type that accepts ContainerDeviceArgs and ContainerDeviceOutput values. +// You can construct a concrete instance of `ContainerDeviceInput` via: +// +// ContainerDeviceArgs{...} +type ContainerDeviceInput interface { + pulumi.Input + + ToContainerDeviceOutput() ContainerDeviceOutput + ToContainerDeviceOutputWithContext(context.Context) ContainerDeviceOutput +} + +type ContainerDeviceArgs struct { + // The path in the container where the device will be bound. + ContainerPath pulumi.StringPtrInput `pulumi:"containerPath"` + // The path on the host where the device is located. + HostPath pulumi.StringInput `pulumi:"hostPath"` + // The cgroup permissions given to the container to access the device. Defaults to `rwm`. + Permissions pulumi.StringPtrInput `pulumi:"permissions"` +} + +func (ContainerDeviceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerDevice)(nil)).Elem() +} + +func (i ContainerDeviceArgs) ToContainerDeviceOutput() ContainerDeviceOutput { + return i.ToContainerDeviceOutputWithContext(context.Background()) +} + +func (i ContainerDeviceArgs) ToContainerDeviceOutputWithContext(ctx context.Context) ContainerDeviceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerDeviceOutput) +} + +func (i ContainerDeviceArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerDevice] { + return pulumix.Output[ContainerDevice]{ + OutputState: i.ToContainerDeviceOutputWithContext(ctx).OutputState, + } +} + +// ContainerDeviceArrayInput is an input type that accepts ContainerDeviceArray and ContainerDeviceArrayOutput values. +// You can construct a concrete instance of `ContainerDeviceArrayInput` via: +// +// ContainerDeviceArray{ ContainerDeviceArgs{...} } +type ContainerDeviceArrayInput interface { + pulumi.Input + + ToContainerDeviceArrayOutput() ContainerDeviceArrayOutput + ToContainerDeviceArrayOutputWithContext(context.Context) ContainerDeviceArrayOutput +} + +type ContainerDeviceArray []ContainerDeviceInput + +func (ContainerDeviceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerDevice)(nil)).Elem() +} + +func (i ContainerDeviceArray) ToContainerDeviceArrayOutput() ContainerDeviceArrayOutput { + return i.ToContainerDeviceArrayOutputWithContext(context.Background()) +} + +func (i ContainerDeviceArray) ToContainerDeviceArrayOutputWithContext(ctx context.Context) ContainerDeviceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerDeviceArrayOutput) +} + +func (i ContainerDeviceArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerDevice] { + return pulumix.Output[[]ContainerDevice]{ + OutputState: i.ToContainerDeviceArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerDeviceOutput struct{ *pulumi.OutputState } + +func (ContainerDeviceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerDevice)(nil)).Elem() +} + +func (o ContainerDeviceOutput) ToContainerDeviceOutput() ContainerDeviceOutput { + return o +} + +func (o ContainerDeviceOutput) ToContainerDeviceOutputWithContext(ctx context.Context) ContainerDeviceOutput { + return o +} + +func (o ContainerDeviceOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerDevice] { + return pulumix.Output[ContainerDevice]{ + OutputState: o.OutputState, + } +} + +// The path in the container where the device will be bound. +func (o ContainerDeviceOutput) ContainerPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerDevice) *string { return v.ContainerPath }).(pulumi.StringPtrOutput) +} + +// The path on the host where the device is located. +func (o ContainerDeviceOutput) HostPath() pulumi.StringOutput { + return o.ApplyT(func(v ContainerDevice) string { return v.HostPath }).(pulumi.StringOutput) +} + +// The cgroup permissions given to the container to access the device. Defaults to `rwm`. +func (o ContainerDeviceOutput) Permissions() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerDevice) *string { return v.Permissions }).(pulumi.StringPtrOutput) +} + +type ContainerDeviceArrayOutput struct{ *pulumi.OutputState } + +func (ContainerDeviceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerDevice)(nil)).Elem() +} + +func (o ContainerDeviceArrayOutput) ToContainerDeviceArrayOutput() ContainerDeviceArrayOutput { + return o +} + +func (o ContainerDeviceArrayOutput) ToContainerDeviceArrayOutputWithContext(ctx context.Context) ContainerDeviceArrayOutput { + return o +} + +func (o ContainerDeviceArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerDevice] { + return pulumix.Output[[]ContainerDevice]{ + OutputState: o.OutputState, + } +} + +func (o ContainerDeviceArrayOutput) Index(i pulumi.IntInput) ContainerDeviceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerDevice { + return vs[0].([]ContainerDevice)[vs[1].(int)] + }).(ContainerDeviceOutput) +} + +type ContainerHealthcheck struct { + // Time between running the check (ms|s|m|h). Defaults to `0s`. + Interval *string `pulumi:"interval"` + // Consecutive failures needed to report unhealthy. Defaults to `0`. + Retries *int `pulumi:"retries"` + // Start period for the container to initialize before counting retries towards unstable (ms|s|m|h). Defaults to `0s`. + StartPeriod *string `pulumi:"startPeriod"` + // Command to run to check health. For example, to run `curl -f localhost/health` set the command to be `["CMD", "curl", "-f", "localhost/health"]`. + Tests []string `pulumi:"tests"` + // Maximum time to allow one check to run (ms|s|m|h). Defaults to `0s`. + Timeout *string `pulumi:"timeout"` +} + +// ContainerHealthcheckInput is an input type that accepts ContainerHealthcheckArgs and ContainerHealthcheckOutput values. +// You can construct a concrete instance of `ContainerHealthcheckInput` via: +// +// ContainerHealthcheckArgs{...} +type ContainerHealthcheckInput interface { + pulumi.Input + + ToContainerHealthcheckOutput() ContainerHealthcheckOutput + ToContainerHealthcheckOutputWithContext(context.Context) ContainerHealthcheckOutput +} + +type ContainerHealthcheckArgs struct { + // Time between running the check (ms|s|m|h). Defaults to `0s`. + Interval pulumi.StringPtrInput `pulumi:"interval"` + // Consecutive failures needed to report unhealthy. Defaults to `0`. + Retries pulumi.IntPtrInput `pulumi:"retries"` + // Start period for the container to initialize before counting retries towards unstable (ms|s|m|h). Defaults to `0s`. + StartPeriod pulumi.StringPtrInput `pulumi:"startPeriod"` + // Command to run to check health. For example, to run `curl -f localhost/health` set the command to be `["CMD", "curl", "-f", "localhost/health"]`. + Tests pulumi.StringArrayInput `pulumi:"tests"` + // Maximum time to allow one check to run (ms|s|m|h). Defaults to `0s`. + Timeout pulumi.StringPtrInput `pulumi:"timeout"` +} + +func (ContainerHealthcheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerHealthcheck)(nil)).Elem() +} + +func (i ContainerHealthcheckArgs) ToContainerHealthcheckOutput() ContainerHealthcheckOutput { + return i.ToContainerHealthcheckOutputWithContext(context.Background()) +} + +func (i ContainerHealthcheckArgs) ToContainerHealthcheckOutputWithContext(ctx context.Context) ContainerHealthcheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerHealthcheckOutput) +} + +func (i ContainerHealthcheckArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerHealthcheck] { + return pulumix.Output[ContainerHealthcheck]{ + OutputState: i.ToContainerHealthcheckOutputWithContext(ctx).OutputState, + } +} + +func (i ContainerHealthcheckArgs) ToContainerHealthcheckPtrOutput() ContainerHealthcheckPtrOutput { + return i.ToContainerHealthcheckPtrOutputWithContext(context.Background()) +} + +func (i ContainerHealthcheckArgs) ToContainerHealthcheckPtrOutputWithContext(ctx context.Context) ContainerHealthcheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerHealthcheckOutput).ToContainerHealthcheckPtrOutputWithContext(ctx) +} + +// ContainerHealthcheckPtrInput is an input type that accepts ContainerHealthcheckArgs, ContainerHealthcheckPtr and ContainerHealthcheckPtrOutput values. +// You can construct a concrete instance of `ContainerHealthcheckPtrInput` via: +// +// ContainerHealthcheckArgs{...} +// +// or: +// +// nil +type ContainerHealthcheckPtrInput interface { + pulumi.Input + + ToContainerHealthcheckPtrOutput() ContainerHealthcheckPtrOutput + ToContainerHealthcheckPtrOutputWithContext(context.Context) ContainerHealthcheckPtrOutput +} + +type containerHealthcheckPtrType ContainerHealthcheckArgs + +func ContainerHealthcheckPtr(v *ContainerHealthcheckArgs) ContainerHealthcheckPtrInput { + return (*containerHealthcheckPtrType)(v) +} + +func (*containerHealthcheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerHealthcheck)(nil)).Elem() +} + +func (i *containerHealthcheckPtrType) ToContainerHealthcheckPtrOutput() ContainerHealthcheckPtrOutput { + return i.ToContainerHealthcheckPtrOutputWithContext(context.Background()) +} + +func (i *containerHealthcheckPtrType) ToContainerHealthcheckPtrOutputWithContext(ctx context.Context) ContainerHealthcheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerHealthcheckPtrOutput) +} + +func (i *containerHealthcheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*ContainerHealthcheck] { + return pulumix.Output[*ContainerHealthcheck]{ + OutputState: i.ToContainerHealthcheckPtrOutputWithContext(ctx).OutputState, + } +} + +type ContainerHealthcheckOutput struct{ *pulumi.OutputState } + +func (ContainerHealthcheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerHealthcheck)(nil)).Elem() +} + +func (o ContainerHealthcheckOutput) ToContainerHealthcheckOutput() ContainerHealthcheckOutput { + return o +} + +func (o ContainerHealthcheckOutput) ToContainerHealthcheckOutputWithContext(ctx context.Context) ContainerHealthcheckOutput { + return o +} + +func (o ContainerHealthcheckOutput) ToContainerHealthcheckPtrOutput() ContainerHealthcheckPtrOutput { + return o.ToContainerHealthcheckPtrOutputWithContext(context.Background()) +} + +func (o ContainerHealthcheckOutput) ToContainerHealthcheckPtrOutputWithContext(ctx context.Context) ContainerHealthcheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerHealthcheck) *ContainerHealthcheck { + return &v + }).(ContainerHealthcheckPtrOutput) +} + +func (o ContainerHealthcheckOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerHealthcheck] { + return pulumix.Output[ContainerHealthcheck]{ + OutputState: o.OutputState, + } +} + +// Time between running the check (ms|s|m|h). Defaults to `0s`. +func (o ContainerHealthcheckOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerHealthcheck) *string { return v.Interval }).(pulumi.StringPtrOutput) +} + +// Consecutive failures needed to report unhealthy. Defaults to `0`. +func (o ContainerHealthcheckOutput) Retries() pulumi.IntPtrOutput { + return o.ApplyT(func(v ContainerHealthcheck) *int { return v.Retries }).(pulumi.IntPtrOutput) +} + +// Start period for the container to initialize before counting retries towards unstable (ms|s|m|h). Defaults to `0s`. +func (o ContainerHealthcheckOutput) StartPeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerHealthcheck) *string { return v.StartPeriod }).(pulumi.StringPtrOutput) +} + +// Command to run to check health. For example, to run `curl -f localhost/health` set the command to be `["CMD", "curl", "-f", "localhost/health"]`. +func (o ContainerHealthcheckOutput) Tests() pulumi.StringArrayOutput { + return o.ApplyT(func(v ContainerHealthcheck) []string { return v.Tests }).(pulumi.StringArrayOutput) +} + +// Maximum time to allow one check to run (ms|s|m|h). Defaults to `0s`. +func (o ContainerHealthcheckOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerHealthcheck) *string { return v.Timeout }).(pulumi.StringPtrOutput) +} + +type ContainerHealthcheckPtrOutput struct{ *pulumi.OutputState } + +func (ContainerHealthcheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerHealthcheck)(nil)).Elem() +} + +func (o ContainerHealthcheckPtrOutput) ToContainerHealthcheckPtrOutput() ContainerHealthcheckPtrOutput { + return o +} + +func (o ContainerHealthcheckPtrOutput) ToContainerHealthcheckPtrOutputWithContext(ctx context.Context) ContainerHealthcheckPtrOutput { + return o +} + +func (o ContainerHealthcheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ContainerHealthcheck] { + return pulumix.Output[*ContainerHealthcheck]{ + OutputState: o.OutputState, + } +} + +func (o ContainerHealthcheckPtrOutput) Elem() ContainerHealthcheckOutput { + return o.ApplyT(func(v *ContainerHealthcheck) ContainerHealthcheck { + if v != nil { + return *v + } + var ret ContainerHealthcheck + return ret + }).(ContainerHealthcheckOutput) +} + +// Time between running the check (ms|s|m|h). Defaults to `0s`. +func (o ContainerHealthcheckPtrOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerHealthcheck) *string { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.StringPtrOutput) +} + +// Consecutive failures needed to report unhealthy. Defaults to `0`. +func (o ContainerHealthcheckPtrOutput) Retries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ContainerHealthcheck) *int { + if v == nil { + return nil + } + return v.Retries + }).(pulumi.IntPtrOutput) +} + +// Start period for the container to initialize before counting retries towards unstable (ms|s|m|h). Defaults to `0s`. +func (o ContainerHealthcheckPtrOutput) StartPeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerHealthcheck) *string { + if v == nil { + return nil + } + return v.StartPeriod + }).(pulumi.StringPtrOutput) +} + +// Command to run to check health. For example, to run `curl -f localhost/health` set the command to be `["CMD", "curl", "-f", "localhost/health"]`. +func (o ContainerHealthcheckPtrOutput) Tests() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ContainerHealthcheck) []string { + if v == nil { + return nil + } + return v.Tests + }).(pulumi.StringArrayOutput) +} + +// Maximum time to allow one check to run (ms|s|m|h). Defaults to `0s`. +func (o ContainerHealthcheckPtrOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerHealthcheck) *string { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.StringPtrOutput) +} + +type ContainerHost struct { + // Hostname to add + Host string `pulumi:"host"` + // IP address this hostname should resolve to. + Ip string `pulumi:"ip"` +} + +// ContainerHostInput is an input type that accepts ContainerHostArgs and ContainerHostOutput values. +// You can construct a concrete instance of `ContainerHostInput` via: +// +// ContainerHostArgs{...} +type ContainerHostInput interface { + pulumi.Input + + ToContainerHostOutput() ContainerHostOutput + ToContainerHostOutputWithContext(context.Context) ContainerHostOutput +} + +type ContainerHostArgs struct { + // Hostname to add + Host pulumi.StringInput `pulumi:"host"` + // IP address this hostname should resolve to. + Ip pulumi.StringInput `pulumi:"ip"` +} + +func (ContainerHostArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerHost)(nil)).Elem() +} + +func (i ContainerHostArgs) ToContainerHostOutput() ContainerHostOutput { + return i.ToContainerHostOutputWithContext(context.Background()) +} + +func (i ContainerHostArgs) ToContainerHostOutputWithContext(ctx context.Context) ContainerHostOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerHostOutput) +} + +func (i ContainerHostArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerHost] { + return pulumix.Output[ContainerHost]{ + OutputState: i.ToContainerHostOutputWithContext(ctx).OutputState, + } +} + +// ContainerHostArrayInput is an input type that accepts ContainerHostArray and ContainerHostArrayOutput values. +// You can construct a concrete instance of `ContainerHostArrayInput` via: +// +// ContainerHostArray{ ContainerHostArgs{...} } +type ContainerHostArrayInput interface { + pulumi.Input + + ToContainerHostArrayOutput() ContainerHostArrayOutput + ToContainerHostArrayOutputWithContext(context.Context) ContainerHostArrayOutput +} + +type ContainerHostArray []ContainerHostInput + +func (ContainerHostArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerHost)(nil)).Elem() +} + +func (i ContainerHostArray) ToContainerHostArrayOutput() ContainerHostArrayOutput { + return i.ToContainerHostArrayOutputWithContext(context.Background()) +} + +func (i ContainerHostArray) ToContainerHostArrayOutputWithContext(ctx context.Context) ContainerHostArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerHostArrayOutput) +} + +func (i ContainerHostArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerHost] { + return pulumix.Output[[]ContainerHost]{ + OutputState: i.ToContainerHostArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerHostOutput struct{ *pulumi.OutputState } + +func (ContainerHostOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerHost)(nil)).Elem() +} + +func (o ContainerHostOutput) ToContainerHostOutput() ContainerHostOutput { + return o +} + +func (o ContainerHostOutput) ToContainerHostOutputWithContext(ctx context.Context) ContainerHostOutput { + return o +} + +func (o ContainerHostOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerHost] { + return pulumix.Output[ContainerHost]{ + OutputState: o.OutputState, + } +} + +// Hostname to add +func (o ContainerHostOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v ContainerHost) string { return v.Host }).(pulumi.StringOutput) +} + +// IP address this hostname should resolve to. +func (o ContainerHostOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v ContainerHost) string { return v.Ip }).(pulumi.StringOutput) +} + +type ContainerHostArrayOutput struct{ *pulumi.OutputState } + +func (ContainerHostArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerHost)(nil)).Elem() +} + +func (o ContainerHostArrayOutput) ToContainerHostArrayOutput() ContainerHostArrayOutput { + return o +} + +func (o ContainerHostArrayOutput) ToContainerHostArrayOutputWithContext(ctx context.Context) ContainerHostArrayOutput { + return o +} + +func (o ContainerHostArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerHost] { + return pulumix.Output[[]ContainerHost]{ + OutputState: o.OutputState, + } +} + +func (o ContainerHostArrayOutput) Index(i pulumi.IntInput) ContainerHostOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerHost { + return vs[0].([]ContainerHost)[vs[1].(int)] + }).(ContainerHostOutput) +} + +type ContainerLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// ContainerLabelInput is an input type that accepts ContainerLabelArgs and ContainerLabelOutput values. +// You can construct a concrete instance of `ContainerLabelInput` via: +// +// ContainerLabelArgs{...} +type ContainerLabelInput interface { + pulumi.Input + + ToContainerLabelOutput() ContainerLabelOutput + ToContainerLabelOutputWithContext(context.Context) ContainerLabelOutput +} + +type ContainerLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (ContainerLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerLabel)(nil)).Elem() +} + +func (i ContainerLabelArgs) ToContainerLabelOutput() ContainerLabelOutput { + return i.ToContainerLabelOutputWithContext(context.Background()) +} + +func (i ContainerLabelArgs) ToContainerLabelOutputWithContext(ctx context.Context) ContainerLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerLabelOutput) +} + +func (i ContainerLabelArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerLabel] { + return pulumix.Output[ContainerLabel]{ + OutputState: i.ToContainerLabelOutputWithContext(ctx).OutputState, + } +} + +// ContainerLabelArrayInput is an input type that accepts ContainerLabelArray and ContainerLabelArrayOutput values. +// You can construct a concrete instance of `ContainerLabelArrayInput` via: +// +// ContainerLabelArray{ ContainerLabelArgs{...} } +type ContainerLabelArrayInput interface { + pulumi.Input + + ToContainerLabelArrayOutput() ContainerLabelArrayOutput + ToContainerLabelArrayOutputWithContext(context.Context) ContainerLabelArrayOutput +} + +type ContainerLabelArray []ContainerLabelInput + +func (ContainerLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerLabel)(nil)).Elem() +} + +func (i ContainerLabelArray) ToContainerLabelArrayOutput() ContainerLabelArrayOutput { + return i.ToContainerLabelArrayOutputWithContext(context.Background()) +} + +func (i ContainerLabelArray) ToContainerLabelArrayOutputWithContext(ctx context.Context) ContainerLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerLabelArrayOutput) +} + +func (i ContainerLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerLabel] { + return pulumix.Output[[]ContainerLabel]{ + OutputState: i.ToContainerLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerLabelOutput struct{ *pulumi.OutputState } + +func (ContainerLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerLabel)(nil)).Elem() +} + +func (o ContainerLabelOutput) ToContainerLabelOutput() ContainerLabelOutput { + return o +} + +func (o ContainerLabelOutput) ToContainerLabelOutputWithContext(ctx context.Context) ContainerLabelOutput { + return o +} + +func (o ContainerLabelOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerLabel] { + return pulumix.Output[ContainerLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o ContainerLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ContainerLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o ContainerLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ContainerLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type ContainerLabelArrayOutput struct{ *pulumi.OutputState } + +func (ContainerLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerLabel)(nil)).Elem() +} + +func (o ContainerLabelArrayOutput) ToContainerLabelArrayOutput() ContainerLabelArrayOutput { + return o +} + +func (o ContainerLabelArrayOutput) ToContainerLabelArrayOutputWithContext(ctx context.Context) ContainerLabelArrayOutput { + return o +} + +func (o ContainerLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerLabel] { + return pulumix.Output[[]ContainerLabel]{ + OutputState: o.OutputState, + } +} + +func (o ContainerLabelArrayOutput) Index(i pulumi.IntInput) ContainerLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerLabel { + return vs[0].([]ContainerLabel)[vs[1].(int)] + }).(ContainerLabelOutput) +} + +type ContainerMount struct { + // Optional configuration for the bind type. + BindOptions *ContainerMountBindOptions `pulumi:"bindOptions"` + // Whether the mount should be read-only. + ReadOnly *bool `pulumi:"readOnly"` + // Mount source (e.g. a volume name, a host path). + Source *string `pulumi:"source"` + // Container path + Target string `pulumi:"target"` + // Optional configuration for the tmpfs type. + TmpfsOptions *ContainerMountTmpfsOptions `pulumi:"tmpfsOptions"` + // The mount type + Type string `pulumi:"type"` + // Optional configuration for the volume type. + VolumeOptions *ContainerMountVolumeOptions `pulumi:"volumeOptions"` +} + +// ContainerMountInput is an input type that accepts ContainerMountArgs and ContainerMountOutput values. +// You can construct a concrete instance of `ContainerMountInput` via: +// +// ContainerMountArgs{...} +type ContainerMountInput interface { + pulumi.Input + + ToContainerMountOutput() ContainerMountOutput + ToContainerMountOutputWithContext(context.Context) ContainerMountOutput +} + +type ContainerMountArgs struct { + // Optional configuration for the bind type. + BindOptions ContainerMountBindOptionsPtrInput `pulumi:"bindOptions"` + // Whether the mount should be read-only. + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + // Mount source (e.g. a volume name, a host path). + Source pulumi.StringPtrInput `pulumi:"source"` + // Container path + Target pulumi.StringInput `pulumi:"target"` + // Optional configuration for the tmpfs type. + TmpfsOptions ContainerMountTmpfsOptionsPtrInput `pulumi:"tmpfsOptions"` + // The mount type + Type pulumi.StringInput `pulumi:"type"` + // Optional configuration for the volume type. + VolumeOptions ContainerMountVolumeOptionsPtrInput `pulumi:"volumeOptions"` +} + +func (ContainerMountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMount)(nil)).Elem() +} + +func (i ContainerMountArgs) ToContainerMountOutput() ContainerMountOutput { + return i.ToContainerMountOutputWithContext(context.Background()) +} + +func (i ContainerMountArgs) ToContainerMountOutputWithContext(ctx context.Context) ContainerMountOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountOutput) +} + +func (i ContainerMountArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerMount] { + return pulumix.Output[ContainerMount]{ + OutputState: i.ToContainerMountOutputWithContext(ctx).OutputState, + } +} + +// ContainerMountArrayInput is an input type that accepts ContainerMountArray and ContainerMountArrayOutput values. +// You can construct a concrete instance of `ContainerMountArrayInput` via: +// +// ContainerMountArray{ ContainerMountArgs{...} } +type ContainerMountArrayInput interface { + pulumi.Input + + ToContainerMountArrayOutput() ContainerMountArrayOutput + ToContainerMountArrayOutputWithContext(context.Context) ContainerMountArrayOutput +} + +type ContainerMountArray []ContainerMountInput + +func (ContainerMountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerMount)(nil)).Elem() +} + +func (i ContainerMountArray) ToContainerMountArrayOutput() ContainerMountArrayOutput { + return i.ToContainerMountArrayOutputWithContext(context.Background()) +} + +func (i ContainerMountArray) ToContainerMountArrayOutputWithContext(ctx context.Context) ContainerMountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountArrayOutput) +} + +func (i ContainerMountArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerMount] { + return pulumix.Output[[]ContainerMount]{ + OutputState: i.ToContainerMountArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerMountOutput struct{ *pulumi.OutputState } + +func (ContainerMountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMount)(nil)).Elem() +} + +func (o ContainerMountOutput) ToContainerMountOutput() ContainerMountOutput { + return o +} + +func (o ContainerMountOutput) ToContainerMountOutputWithContext(ctx context.Context) ContainerMountOutput { + return o +} + +func (o ContainerMountOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerMount] { + return pulumix.Output[ContainerMount]{ + OutputState: o.OutputState, + } +} + +// Optional configuration for the bind type. +func (o ContainerMountOutput) BindOptions() ContainerMountBindOptionsPtrOutput { + return o.ApplyT(func(v ContainerMount) *ContainerMountBindOptions { return v.BindOptions }).(ContainerMountBindOptionsPtrOutput) +} + +// Whether the mount should be read-only. +func (o ContainerMountOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ContainerMount) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +// Mount source (e.g. a volume name, a host path). +func (o ContainerMountOutput) Source() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerMount) *string { return v.Source }).(pulumi.StringPtrOutput) +} + +// Container path +func (o ContainerMountOutput) Target() pulumi.StringOutput { + return o.ApplyT(func(v ContainerMount) string { return v.Target }).(pulumi.StringOutput) +} + +// Optional configuration for the tmpfs type. +func (o ContainerMountOutput) TmpfsOptions() ContainerMountTmpfsOptionsPtrOutput { + return o.ApplyT(func(v ContainerMount) *ContainerMountTmpfsOptions { return v.TmpfsOptions }).(ContainerMountTmpfsOptionsPtrOutput) +} + +// The mount type +func (o ContainerMountOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ContainerMount) string { return v.Type }).(pulumi.StringOutput) +} + +// Optional configuration for the volume type. +func (o ContainerMountOutput) VolumeOptions() ContainerMountVolumeOptionsPtrOutput { + return o.ApplyT(func(v ContainerMount) *ContainerMountVolumeOptions { return v.VolumeOptions }).(ContainerMountVolumeOptionsPtrOutput) +} + +type ContainerMountArrayOutput struct{ *pulumi.OutputState } + +func (ContainerMountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerMount)(nil)).Elem() +} + +func (o ContainerMountArrayOutput) ToContainerMountArrayOutput() ContainerMountArrayOutput { + return o +} + +func (o ContainerMountArrayOutput) ToContainerMountArrayOutputWithContext(ctx context.Context) ContainerMountArrayOutput { + return o +} + +func (o ContainerMountArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerMount] { + return pulumix.Output[[]ContainerMount]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountArrayOutput) Index(i pulumi.IntInput) ContainerMountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerMount { + return vs[0].([]ContainerMount)[vs[1].(int)] + }).(ContainerMountOutput) +} + +type ContainerMountBindOptions struct { + Propagation *string `pulumi:"propagation"` +} + +// ContainerMountBindOptionsInput is an input type that accepts ContainerMountBindOptionsArgs and ContainerMountBindOptionsOutput values. +// You can construct a concrete instance of `ContainerMountBindOptionsInput` via: +// +// ContainerMountBindOptionsArgs{...} +type ContainerMountBindOptionsInput interface { + pulumi.Input + + ToContainerMountBindOptionsOutput() ContainerMountBindOptionsOutput + ToContainerMountBindOptionsOutputWithContext(context.Context) ContainerMountBindOptionsOutput +} + +type ContainerMountBindOptionsArgs struct { + Propagation pulumi.StringPtrInput `pulumi:"propagation"` +} + +func (ContainerMountBindOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountBindOptions)(nil)).Elem() +} + +func (i ContainerMountBindOptionsArgs) ToContainerMountBindOptionsOutput() ContainerMountBindOptionsOutput { + return i.ToContainerMountBindOptionsOutputWithContext(context.Background()) +} + +func (i ContainerMountBindOptionsArgs) ToContainerMountBindOptionsOutputWithContext(ctx context.Context) ContainerMountBindOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountBindOptionsOutput) +} + +func (i ContainerMountBindOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerMountBindOptions] { + return pulumix.Output[ContainerMountBindOptions]{ + OutputState: i.ToContainerMountBindOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i ContainerMountBindOptionsArgs) ToContainerMountBindOptionsPtrOutput() ContainerMountBindOptionsPtrOutput { + return i.ToContainerMountBindOptionsPtrOutputWithContext(context.Background()) +} + +func (i ContainerMountBindOptionsArgs) ToContainerMountBindOptionsPtrOutputWithContext(ctx context.Context) ContainerMountBindOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountBindOptionsOutput).ToContainerMountBindOptionsPtrOutputWithContext(ctx) +} + +// ContainerMountBindOptionsPtrInput is an input type that accepts ContainerMountBindOptionsArgs, ContainerMountBindOptionsPtr and ContainerMountBindOptionsPtrOutput values. +// You can construct a concrete instance of `ContainerMountBindOptionsPtrInput` via: +// +// ContainerMountBindOptionsArgs{...} +// +// or: +// +// nil +type ContainerMountBindOptionsPtrInput interface { + pulumi.Input + + ToContainerMountBindOptionsPtrOutput() ContainerMountBindOptionsPtrOutput + ToContainerMountBindOptionsPtrOutputWithContext(context.Context) ContainerMountBindOptionsPtrOutput +} + +type containerMountBindOptionsPtrType ContainerMountBindOptionsArgs + +func ContainerMountBindOptionsPtr(v *ContainerMountBindOptionsArgs) ContainerMountBindOptionsPtrInput { + return (*containerMountBindOptionsPtrType)(v) +} + +func (*containerMountBindOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerMountBindOptions)(nil)).Elem() +} + +func (i *containerMountBindOptionsPtrType) ToContainerMountBindOptionsPtrOutput() ContainerMountBindOptionsPtrOutput { + return i.ToContainerMountBindOptionsPtrOutputWithContext(context.Background()) +} + +func (i *containerMountBindOptionsPtrType) ToContainerMountBindOptionsPtrOutputWithContext(ctx context.Context) ContainerMountBindOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountBindOptionsPtrOutput) +} + +func (i *containerMountBindOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ContainerMountBindOptions] { + return pulumix.Output[*ContainerMountBindOptions]{ + OutputState: i.ToContainerMountBindOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type ContainerMountBindOptionsOutput struct{ *pulumi.OutputState } + +func (ContainerMountBindOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountBindOptions)(nil)).Elem() +} + +func (o ContainerMountBindOptionsOutput) ToContainerMountBindOptionsOutput() ContainerMountBindOptionsOutput { + return o +} + +func (o ContainerMountBindOptionsOutput) ToContainerMountBindOptionsOutputWithContext(ctx context.Context) ContainerMountBindOptionsOutput { + return o +} + +func (o ContainerMountBindOptionsOutput) ToContainerMountBindOptionsPtrOutput() ContainerMountBindOptionsPtrOutput { + return o.ToContainerMountBindOptionsPtrOutputWithContext(context.Background()) +} + +func (o ContainerMountBindOptionsOutput) ToContainerMountBindOptionsPtrOutputWithContext(ctx context.Context) ContainerMountBindOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerMountBindOptions) *ContainerMountBindOptions { + return &v + }).(ContainerMountBindOptionsPtrOutput) +} + +func (o ContainerMountBindOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerMountBindOptions] { + return pulumix.Output[ContainerMountBindOptions]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountBindOptionsOutput) Propagation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerMountBindOptions) *string { return v.Propagation }).(pulumi.StringPtrOutput) +} + +type ContainerMountBindOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ContainerMountBindOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerMountBindOptions)(nil)).Elem() +} + +func (o ContainerMountBindOptionsPtrOutput) ToContainerMountBindOptionsPtrOutput() ContainerMountBindOptionsPtrOutput { + return o +} + +func (o ContainerMountBindOptionsPtrOutput) ToContainerMountBindOptionsPtrOutputWithContext(ctx context.Context) ContainerMountBindOptionsPtrOutput { + return o +} + +func (o ContainerMountBindOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ContainerMountBindOptions] { + return pulumix.Output[*ContainerMountBindOptions]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountBindOptionsPtrOutput) Elem() ContainerMountBindOptionsOutput { + return o.ApplyT(func(v *ContainerMountBindOptions) ContainerMountBindOptions { + if v != nil { + return *v + } + var ret ContainerMountBindOptions + return ret + }).(ContainerMountBindOptionsOutput) +} + +func (o ContainerMountBindOptionsPtrOutput) Propagation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerMountBindOptions) *string { + if v == nil { + return nil + } + return v.Propagation + }).(pulumi.StringPtrOutput) +} + +type ContainerMountTmpfsOptions struct { + Mode *int `pulumi:"mode"` + SizeBytes *int `pulumi:"sizeBytes"` +} + +// ContainerMountTmpfsOptionsInput is an input type that accepts ContainerMountTmpfsOptionsArgs and ContainerMountTmpfsOptionsOutput values. +// You can construct a concrete instance of `ContainerMountTmpfsOptionsInput` via: +// +// ContainerMountTmpfsOptionsArgs{...} +type ContainerMountTmpfsOptionsInput interface { + pulumi.Input + + ToContainerMountTmpfsOptionsOutput() ContainerMountTmpfsOptionsOutput + ToContainerMountTmpfsOptionsOutputWithContext(context.Context) ContainerMountTmpfsOptionsOutput +} + +type ContainerMountTmpfsOptionsArgs struct { + Mode pulumi.IntPtrInput `pulumi:"mode"` + SizeBytes pulumi.IntPtrInput `pulumi:"sizeBytes"` +} + +func (ContainerMountTmpfsOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountTmpfsOptions)(nil)).Elem() +} + +func (i ContainerMountTmpfsOptionsArgs) ToContainerMountTmpfsOptionsOutput() ContainerMountTmpfsOptionsOutput { + return i.ToContainerMountTmpfsOptionsOutputWithContext(context.Background()) +} + +func (i ContainerMountTmpfsOptionsArgs) ToContainerMountTmpfsOptionsOutputWithContext(ctx context.Context) ContainerMountTmpfsOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountTmpfsOptionsOutput) +} + +func (i ContainerMountTmpfsOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerMountTmpfsOptions] { + return pulumix.Output[ContainerMountTmpfsOptions]{ + OutputState: i.ToContainerMountTmpfsOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i ContainerMountTmpfsOptionsArgs) ToContainerMountTmpfsOptionsPtrOutput() ContainerMountTmpfsOptionsPtrOutput { + return i.ToContainerMountTmpfsOptionsPtrOutputWithContext(context.Background()) +} + +func (i ContainerMountTmpfsOptionsArgs) ToContainerMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ContainerMountTmpfsOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountTmpfsOptionsOutput).ToContainerMountTmpfsOptionsPtrOutputWithContext(ctx) +} + +// ContainerMountTmpfsOptionsPtrInput is an input type that accepts ContainerMountTmpfsOptionsArgs, ContainerMountTmpfsOptionsPtr and ContainerMountTmpfsOptionsPtrOutput values. +// You can construct a concrete instance of `ContainerMountTmpfsOptionsPtrInput` via: +// +// ContainerMountTmpfsOptionsArgs{...} +// +// or: +// +// nil +type ContainerMountTmpfsOptionsPtrInput interface { + pulumi.Input + + ToContainerMountTmpfsOptionsPtrOutput() ContainerMountTmpfsOptionsPtrOutput + ToContainerMountTmpfsOptionsPtrOutputWithContext(context.Context) ContainerMountTmpfsOptionsPtrOutput +} + +type containerMountTmpfsOptionsPtrType ContainerMountTmpfsOptionsArgs + +func ContainerMountTmpfsOptionsPtr(v *ContainerMountTmpfsOptionsArgs) ContainerMountTmpfsOptionsPtrInput { + return (*containerMountTmpfsOptionsPtrType)(v) +} + +func (*containerMountTmpfsOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerMountTmpfsOptions)(nil)).Elem() +} + +func (i *containerMountTmpfsOptionsPtrType) ToContainerMountTmpfsOptionsPtrOutput() ContainerMountTmpfsOptionsPtrOutput { + return i.ToContainerMountTmpfsOptionsPtrOutputWithContext(context.Background()) +} + +func (i *containerMountTmpfsOptionsPtrType) ToContainerMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ContainerMountTmpfsOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountTmpfsOptionsPtrOutput) +} + +func (i *containerMountTmpfsOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ContainerMountTmpfsOptions] { + return pulumix.Output[*ContainerMountTmpfsOptions]{ + OutputState: i.ToContainerMountTmpfsOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type ContainerMountTmpfsOptionsOutput struct{ *pulumi.OutputState } + +func (ContainerMountTmpfsOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountTmpfsOptions)(nil)).Elem() +} + +func (o ContainerMountTmpfsOptionsOutput) ToContainerMountTmpfsOptionsOutput() ContainerMountTmpfsOptionsOutput { + return o +} + +func (o ContainerMountTmpfsOptionsOutput) ToContainerMountTmpfsOptionsOutputWithContext(ctx context.Context) ContainerMountTmpfsOptionsOutput { + return o +} + +func (o ContainerMountTmpfsOptionsOutput) ToContainerMountTmpfsOptionsPtrOutput() ContainerMountTmpfsOptionsPtrOutput { + return o.ToContainerMountTmpfsOptionsPtrOutputWithContext(context.Background()) +} + +func (o ContainerMountTmpfsOptionsOutput) ToContainerMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ContainerMountTmpfsOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerMountTmpfsOptions) *ContainerMountTmpfsOptions { + return &v + }).(ContainerMountTmpfsOptionsPtrOutput) +} + +func (o ContainerMountTmpfsOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerMountTmpfsOptions] { + return pulumix.Output[ContainerMountTmpfsOptions]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountTmpfsOptionsOutput) Mode() pulumi.IntPtrOutput { + return o.ApplyT(func(v ContainerMountTmpfsOptions) *int { return v.Mode }).(pulumi.IntPtrOutput) +} + +func (o ContainerMountTmpfsOptionsOutput) SizeBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v ContainerMountTmpfsOptions) *int { return v.SizeBytes }).(pulumi.IntPtrOutput) +} + +type ContainerMountTmpfsOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ContainerMountTmpfsOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerMountTmpfsOptions)(nil)).Elem() +} + +func (o ContainerMountTmpfsOptionsPtrOutput) ToContainerMountTmpfsOptionsPtrOutput() ContainerMountTmpfsOptionsPtrOutput { + return o +} + +func (o ContainerMountTmpfsOptionsPtrOutput) ToContainerMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ContainerMountTmpfsOptionsPtrOutput { + return o +} + +func (o ContainerMountTmpfsOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ContainerMountTmpfsOptions] { + return pulumix.Output[*ContainerMountTmpfsOptions]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountTmpfsOptionsPtrOutput) Elem() ContainerMountTmpfsOptionsOutput { + return o.ApplyT(func(v *ContainerMountTmpfsOptions) ContainerMountTmpfsOptions { + if v != nil { + return *v + } + var ret ContainerMountTmpfsOptions + return ret + }).(ContainerMountTmpfsOptionsOutput) +} + +func (o ContainerMountTmpfsOptionsPtrOutput) Mode() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ContainerMountTmpfsOptions) *int { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.IntPtrOutput) +} + +func (o ContainerMountTmpfsOptionsPtrOutput) SizeBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ContainerMountTmpfsOptions) *int { + if v == nil { + return nil + } + return v.SizeBytes + }).(pulumi.IntPtrOutput) +} + +type ContainerMountVolumeOptions struct { + DriverName *string `pulumi:"driverName"` + DriverOptions map[string]string `pulumi:"driverOptions"` + // User-defined key/value metadata + Labels []ContainerMountVolumeOptionsLabel `pulumi:"labels"` + NoCopy *bool `pulumi:"noCopy"` +} + +// ContainerMountVolumeOptionsInput is an input type that accepts ContainerMountVolumeOptionsArgs and ContainerMountVolumeOptionsOutput values. +// You can construct a concrete instance of `ContainerMountVolumeOptionsInput` via: +// +// ContainerMountVolumeOptionsArgs{...} +type ContainerMountVolumeOptionsInput interface { + pulumi.Input + + ToContainerMountVolumeOptionsOutput() ContainerMountVolumeOptionsOutput + ToContainerMountVolumeOptionsOutputWithContext(context.Context) ContainerMountVolumeOptionsOutput +} + +type ContainerMountVolumeOptionsArgs struct { + DriverName pulumi.StringPtrInput `pulumi:"driverName"` + DriverOptions pulumi.StringMapInput `pulumi:"driverOptions"` + // User-defined key/value metadata + Labels ContainerMountVolumeOptionsLabelArrayInput `pulumi:"labels"` + NoCopy pulumi.BoolPtrInput `pulumi:"noCopy"` +} + +func (ContainerMountVolumeOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountVolumeOptions)(nil)).Elem() +} + +func (i ContainerMountVolumeOptionsArgs) ToContainerMountVolumeOptionsOutput() ContainerMountVolumeOptionsOutput { + return i.ToContainerMountVolumeOptionsOutputWithContext(context.Background()) +} + +func (i ContainerMountVolumeOptionsArgs) ToContainerMountVolumeOptionsOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountVolumeOptionsOutput) +} + +func (i ContainerMountVolumeOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerMountVolumeOptions] { + return pulumix.Output[ContainerMountVolumeOptions]{ + OutputState: i.ToContainerMountVolumeOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i ContainerMountVolumeOptionsArgs) ToContainerMountVolumeOptionsPtrOutput() ContainerMountVolumeOptionsPtrOutput { + return i.ToContainerMountVolumeOptionsPtrOutputWithContext(context.Background()) +} + +func (i ContainerMountVolumeOptionsArgs) ToContainerMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountVolumeOptionsOutput).ToContainerMountVolumeOptionsPtrOutputWithContext(ctx) +} + +// ContainerMountVolumeOptionsPtrInput is an input type that accepts ContainerMountVolumeOptionsArgs, ContainerMountVolumeOptionsPtr and ContainerMountVolumeOptionsPtrOutput values. +// You can construct a concrete instance of `ContainerMountVolumeOptionsPtrInput` via: +// +// ContainerMountVolumeOptionsArgs{...} +// +// or: +// +// nil +type ContainerMountVolumeOptionsPtrInput interface { + pulumi.Input + + ToContainerMountVolumeOptionsPtrOutput() ContainerMountVolumeOptionsPtrOutput + ToContainerMountVolumeOptionsPtrOutputWithContext(context.Context) ContainerMountVolumeOptionsPtrOutput +} + +type containerMountVolumeOptionsPtrType ContainerMountVolumeOptionsArgs + +func ContainerMountVolumeOptionsPtr(v *ContainerMountVolumeOptionsArgs) ContainerMountVolumeOptionsPtrInput { + return (*containerMountVolumeOptionsPtrType)(v) +} + +func (*containerMountVolumeOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerMountVolumeOptions)(nil)).Elem() +} + +func (i *containerMountVolumeOptionsPtrType) ToContainerMountVolumeOptionsPtrOutput() ContainerMountVolumeOptionsPtrOutput { + return i.ToContainerMountVolumeOptionsPtrOutputWithContext(context.Background()) +} + +func (i *containerMountVolumeOptionsPtrType) ToContainerMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountVolumeOptionsPtrOutput) +} + +func (i *containerMountVolumeOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ContainerMountVolumeOptions] { + return pulumix.Output[*ContainerMountVolumeOptions]{ + OutputState: i.ToContainerMountVolumeOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type ContainerMountVolumeOptionsOutput struct{ *pulumi.OutputState } + +func (ContainerMountVolumeOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountVolumeOptions)(nil)).Elem() +} + +func (o ContainerMountVolumeOptionsOutput) ToContainerMountVolumeOptionsOutput() ContainerMountVolumeOptionsOutput { + return o +} + +func (o ContainerMountVolumeOptionsOutput) ToContainerMountVolumeOptionsOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsOutput { + return o +} + +func (o ContainerMountVolumeOptionsOutput) ToContainerMountVolumeOptionsPtrOutput() ContainerMountVolumeOptionsPtrOutput { + return o.ToContainerMountVolumeOptionsPtrOutputWithContext(context.Background()) +} + +func (o ContainerMountVolumeOptionsOutput) ToContainerMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerMountVolumeOptions) *ContainerMountVolumeOptions { + return &v + }).(ContainerMountVolumeOptionsPtrOutput) +} + +func (o ContainerMountVolumeOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerMountVolumeOptions] { + return pulumix.Output[ContainerMountVolumeOptions]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountVolumeOptionsOutput) DriverName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerMountVolumeOptions) *string { return v.DriverName }).(pulumi.StringPtrOutput) +} + +func (o ContainerMountVolumeOptionsOutput) DriverOptions() pulumi.StringMapOutput { + return o.ApplyT(func(v ContainerMountVolumeOptions) map[string]string { return v.DriverOptions }).(pulumi.StringMapOutput) +} + +// User-defined key/value metadata +func (o ContainerMountVolumeOptionsOutput) Labels() ContainerMountVolumeOptionsLabelArrayOutput { + return o.ApplyT(func(v ContainerMountVolumeOptions) []ContainerMountVolumeOptionsLabel { return v.Labels }).(ContainerMountVolumeOptionsLabelArrayOutput) +} + +func (o ContainerMountVolumeOptionsOutput) NoCopy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ContainerMountVolumeOptions) *bool { return v.NoCopy }).(pulumi.BoolPtrOutput) +} + +type ContainerMountVolumeOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ContainerMountVolumeOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerMountVolumeOptions)(nil)).Elem() +} + +func (o ContainerMountVolumeOptionsPtrOutput) ToContainerMountVolumeOptionsPtrOutput() ContainerMountVolumeOptionsPtrOutput { + return o +} + +func (o ContainerMountVolumeOptionsPtrOutput) ToContainerMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsPtrOutput { + return o +} + +func (o ContainerMountVolumeOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ContainerMountVolumeOptions] { + return pulumix.Output[*ContainerMountVolumeOptions]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountVolumeOptionsPtrOutput) Elem() ContainerMountVolumeOptionsOutput { + return o.ApplyT(func(v *ContainerMountVolumeOptions) ContainerMountVolumeOptions { + if v != nil { + return *v + } + var ret ContainerMountVolumeOptions + return ret + }).(ContainerMountVolumeOptionsOutput) +} + +func (o ContainerMountVolumeOptionsPtrOutput) DriverName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerMountVolumeOptions) *string { + if v == nil { + return nil + } + return v.DriverName + }).(pulumi.StringPtrOutput) +} + +func (o ContainerMountVolumeOptionsPtrOutput) DriverOptions() pulumi.StringMapOutput { + return o.ApplyT(func(v *ContainerMountVolumeOptions) map[string]string { + if v == nil { + return nil + } + return v.DriverOptions + }).(pulumi.StringMapOutput) +} + +// User-defined key/value metadata +func (o ContainerMountVolumeOptionsPtrOutput) Labels() ContainerMountVolumeOptionsLabelArrayOutput { + return o.ApplyT(func(v *ContainerMountVolumeOptions) []ContainerMountVolumeOptionsLabel { + if v == nil { + return nil + } + return v.Labels + }).(ContainerMountVolumeOptionsLabelArrayOutput) +} + +func (o ContainerMountVolumeOptionsPtrOutput) NoCopy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ContainerMountVolumeOptions) *bool { + if v == nil { + return nil + } + return v.NoCopy + }).(pulumi.BoolPtrOutput) +} + +type ContainerMountVolumeOptionsLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// ContainerMountVolumeOptionsLabelInput is an input type that accepts ContainerMountVolumeOptionsLabelArgs and ContainerMountVolumeOptionsLabelOutput values. +// You can construct a concrete instance of `ContainerMountVolumeOptionsLabelInput` via: +// +// ContainerMountVolumeOptionsLabelArgs{...} +type ContainerMountVolumeOptionsLabelInput interface { + pulumi.Input + + ToContainerMountVolumeOptionsLabelOutput() ContainerMountVolumeOptionsLabelOutput + ToContainerMountVolumeOptionsLabelOutputWithContext(context.Context) ContainerMountVolumeOptionsLabelOutput +} + +type ContainerMountVolumeOptionsLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (ContainerMountVolumeOptionsLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountVolumeOptionsLabel)(nil)).Elem() +} + +func (i ContainerMountVolumeOptionsLabelArgs) ToContainerMountVolumeOptionsLabelOutput() ContainerMountVolumeOptionsLabelOutput { + return i.ToContainerMountVolumeOptionsLabelOutputWithContext(context.Background()) +} + +func (i ContainerMountVolumeOptionsLabelArgs) ToContainerMountVolumeOptionsLabelOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountVolumeOptionsLabelOutput) +} + +func (i ContainerMountVolumeOptionsLabelArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerMountVolumeOptionsLabel] { + return pulumix.Output[ContainerMountVolumeOptionsLabel]{ + OutputState: i.ToContainerMountVolumeOptionsLabelOutputWithContext(ctx).OutputState, + } +} + +// ContainerMountVolumeOptionsLabelArrayInput is an input type that accepts ContainerMountVolumeOptionsLabelArray and ContainerMountVolumeOptionsLabelArrayOutput values. +// You can construct a concrete instance of `ContainerMountVolumeOptionsLabelArrayInput` via: +// +// ContainerMountVolumeOptionsLabelArray{ ContainerMountVolumeOptionsLabelArgs{...} } +type ContainerMountVolumeOptionsLabelArrayInput interface { + pulumi.Input + + ToContainerMountVolumeOptionsLabelArrayOutput() ContainerMountVolumeOptionsLabelArrayOutput + ToContainerMountVolumeOptionsLabelArrayOutputWithContext(context.Context) ContainerMountVolumeOptionsLabelArrayOutput +} + +type ContainerMountVolumeOptionsLabelArray []ContainerMountVolumeOptionsLabelInput + +func (ContainerMountVolumeOptionsLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerMountVolumeOptionsLabel)(nil)).Elem() +} + +func (i ContainerMountVolumeOptionsLabelArray) ToContainerMountVolumeOptionsLabelArrayOutput() ContainerMountVolumeOptionsLabelArrayOutput { + return i.ToContainerMountVolumeOptionsLabelArrayOutputWithContext(context.Background()) +} + +func (i ContainerMountVolumeOptionsLabelArray) ToContainerMountVolumeOptionsLabelArrayOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerMountVolumeOptionsLabelArrayOutput) +} + +func (i ContainerMountVolumeOptionsLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerMountVolumeOptionsLabel] { + return pulumix.Output[[]ContainerMountVolumeOptionsLabel]{ + OutputState: i.ToContainerMountVolumeOptionsLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerMountVolumeOptionsLabelOutput struct{ *pulumi.OutputState } + +func (ContainerMountVolumeOptionsLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerMountVolumeOptionsLabel)(nil)).Elem() +} + +func (o ContainerMountVolumeOptionsLabelOutput) ToContainerMountVolumeOptionsLabelOutput() ContainerMountVolumeOptionsLabelOutput { + return o +} + +func (o ContainerMountVolumeOptionsLabelOutput) ToContainerMountVolumeOptionsLabelOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsLabelOutput { + return o +} + +func (o ContainerMountVolumeOptionsLabelOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerMountVolumeOptionsLabel] { + return pulumix.Output[ContainerMountVolumeOptionsLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o ContainerMountVolumeOptionsLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ContainerMountVolumeOptionsLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o ContainerMountVolumeOptionsLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ContainerMountVolumeOptionsLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type ContainerMountVolumeOptionsLabelArrayOutput struct{ *pulumi.OutputState } + +func (ContainerMountVolumeOptionsLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerMountVolumeOptionsLabel)(nil)).Elem() +} + +func (o ContainerMountVolumeOptionsLabelArrayOutput) ToContainerMountVolumeOptionsLabelArrayOutput() ContainerMountVolumeOptionsLabelArrayOutput { + return o +} + +func (o ContainerMountVolumeOptionsLabelArrayOutput) ToContainerMountVolumeOptionsLabelArrayOutputWithContext(ctx context.Context) ContainerMountVolumeOptionsLabelArrayOutput { + return o +} + +func (o ContainerMountVolumeOptionsLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerMountVolumeOptionsLabel] { + return pulumix.Output[[]ContainerMountVolumeOptionsLabel]{ + OutputState: o.OutputState, + } +} + +func (o ContainerMountVolumeOptionsLabelArrayOutput) Index(i pulumi.IntInput) ContainerMountVolumeOptionsLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerMountVolumeOptionsLabel { + return vs[0].([]ContainerMountVolumeOptionsLabel)[vs[1].(int)] + }).(ContainerMountVolumeOptionsLabelOutput) +} + +type ContainerNetworkData struct { + Gateway *string `pulumi:"gateway"` + GlobalIpv6Address *string `pulumi:"globalIpv6Address"` + GlobalIpv6PrefixLength *int `pulumi:"globalIpv6PrefixLength"` + IpAddress *string `pulumi:"ipAddress"` + IpPrefixLength *int `pulumi:"ipPrefixLength"` + Ipv6Gateway *string `pulumi:"ipv6Gateway"` + MacAddress *string `pulumi:"macAddress"` + NetworkName *string `pulumi:"networkName"` +} + +// ContainerNetworkDataInput is an input type that accepts ContainerNetworkDataArgs and ContainerNetworkDataOutput values. +// You can construct a concrete instance of `ContainerNetworkDataInput` via: +// +// ContainerNetworkDataArgs{...} +type ContainerNetworkDataInput interface { + pulumi.Input + + ToContainerNetworkDataOutput() ContainerNetworkDataOutput + ToContainerNetworkDataOutputWithContext(context.Context) ContainerNetworkDataOutput +} + +type ContainerNetworkDataArgs struct { + Gateway pulumi.StringPtrInput `pulumi:"gateway"` + GlobalIpv6Address pulumi.StringPtrInput `pulumi:"globalIpv6Address"` + GlobalIpv6PrefixLength pulumi.IntPtrInput `pulumi:"globalIpv6PrefixLength"` + IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` + IpPrefixLength pulumi.IntPtrInput `pulumi:"ipPrefixLength"` + Ipv6Gateway pulumi.StringPtrInput `pulumi:"ipv6Gateway"` + MacAddress pulumi.StringPtrInput `pulumi:"macAddress"` + NetworkName pulumi.StringPtrInput `pulumi:"networkName"` +} + +func (ContainerNetworkDataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerNetworkData)(nil)).Elem() +} + +func (i ContainerNetworkDataArgs) ToContainerNetworkDataOutput() ContainerNetworkDataOutput { + return i.ToContainerNetworkDataOutputWithContext(context.Background()) +} + +func (i ContainerNetworkDataArgs) ToContainerNetworkDataOutputWithContext(ctx context.Context) ContainerNetworkDataOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerNetworkDataOutput) +} + +func (i ContainerNetworkDataArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerNetworkData] { + return pulumix.Output[ContainerNetworkData]{ + OutputState: i.ToContainerNetworkDataOutputWithContext(ctx).OutputState, + } +} + +// ContainerNetworkDataArrayInput is an input type that accepts ContainerNetworkDataArray and ContainerNetworkDataArrayOutput values. +// You can construct a concrete instance of `ContainerNetworkDataArrayInput` via: +// +// ContainerNetworkDataArray{ ContainerNetworkDataArgs{...} } +type ContainerNetworkDataArrayInput interface { + pulumi.Input + + ToContainerNetworkDataArrayOutput() ContainerNetworkDataArrayOutput + ToContainerNetworkDataArrayOutputWithContext(context.Context) ContainerNetworkDataArrayOutput +} + +type ContainerNetworkDataArray []ContainerNetworkDataInput + +func (ContainerNetworkDataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerNetworkData)(nil)).Elem() +} + +func (i ContainerNetworkDataArray) ToContainerNetworkDataArrayOutput() ContainerNetworkDataArrayOutput { + return i.ToContainerNetworkDataArrayOutputWithContext(context.Background()) +} + +func (i ContainerNetworkDataArray) ToContainerNetworkDataArrayOutputWithContext(ctx context.Context) ContainerNetworkDataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerNetworkDataArrayOutput) +} + +func (i ContainerNetworkDataArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerNetworkData] { + return pulumix.Output[[]ContainerNetworkData]{ + OutputState: i.ToContainerNetworkDataArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerNetworkDataOutput struct{ *pulumi.OutputState } + +func (ContainerNetworkDataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerNetworkData)(nil)).Elem() +} + +func (o ContainerNetworkDataOutput) ToContainerNetworkDataOutput() ContainerNetworkDataOutput { + return o +} + +func (o ContainerNetworkDataOutput) ToContainerNetworkDataOutputWithContext(ctx context.Context) ContainerNetworkDataOutput { + return o +} + +func (o ContainerNetworkDataOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerNetworkData] { + return pulumix.Output[ContainerNetworkData]{ + OutputState: o.OutputState, + } +} + +func (o ContainerNetworkDataOutput) Gateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *string { return v.Gateway }).(pulumi.StringPtrOutput) +} + +func (o ContainerNetworkDataOutput) GlobalIpv6Address() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *string { return v.GlobalIpv6Address }).(pulumi.StringPtrOutput) +} + +func (o ContainerNetworkDataOutput) GlobalIpv6PrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *int { return v.GlobalIpv6PrefixLength }).(pulumi.IntPtrOutput) +} + +func (o ContainerNetworkDataOutput) IpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *string { return v.IpAddress }).(pulumi.StringPtrOutput) +} + +func (o ContainerNetworkDataOutput) IpPrefixLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *int { return v.IpPrefixLength }).(pulumi.IntPtrOutput) +} + +func (o ContainerNetworkDataOutput) Ipv6Gateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *string { return v.Ipv6Gateway }).(pulumi.StringPtrOutput) +} + +func (o ContainerNetworkDataOutput) MacAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *string { return v.MacAddress }).(pulumi.StringPtrOutput) +} + +func (o ContainerNetworkDataOutput) NetworkName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworkData) *string { return v.NetworkName }).(pulumi.StringPtrOutput) +} + +type ContainerNetworkDataArrayOutput struct{ *pulumi.OutputState } + +func (ContainerNetworkDataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerNetworkData)(nil)).Elem() +} + +func (o ContainerNetworkDataArrayOutput) ToContainerNetworkDataArrayOutput() ContainerNetworkDataArrayOutput { + return o +} + +func (o ContainerNetworkDataArrayOutput) ToContainerNetworkDataArrayOutputWithContext(ctx context.Context) ContainerNetworkDataArrayOutput { + return o +} + +func (o ContainerNetworkDataArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerNetworkData] { + return pulumix.Output[[]ContainerNetworkData]{ + OutputState: o.OutputState, + } +} + +func (o ContainerNetworkDataArrayOutput) Index(i pulumi.IntInput) ContainerNetworkDataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerNetworkData { + return vs[0].([]ContainerNetworkData)[vs[1].(int)] + }).(ContainerNetworkDataOutput) +} + +type ContainerNetworksAdvanced struct { + // The network aliases of the container in the specific network. + Aliases []string `pulumi:"aliases"` + // The IPV4 address of the container in the specific network. + Ipv4Address *string `pulumi:"ipv4Address"` + // The IPV6 address of the container in the specific network. + Ipv6Address *string `pulumi:"ipv6Address"` + // The name or id of the network to use. You can use `name` or `id` attribute from a `Network` resource. + Name string `pulumi:"name"` +} + +// ContainerNetworksAdvancedInput is an input type that accepts ContainerNetworksAdvancedArgs and ContainerNetworksAdvancedOutput values. +// You can construct a concrete instance of `ContainerNetworksAdvancedInput` via: +// +// ContainerNetworksAdvancedArgs{...} +type ContainerNetworksAdvancedInput interface { + pulumi.Input + + ToContainerNetworksAdvancedOutput() ContainerNetworksAdvancedOutput + ToContainerNetworksAdvancedOutputWithContext(context.Context) ContainerNetworksAdvancedOutput +} + +type ContainerNetworksAdvancedArgs struct { + // The network aliases of the container in the specific network. + Aliases pulumi.StringArrayInput `pulumi:"aliases"` + // The IPV4 address of the container in the specific network. + Ipv4Address pulumi.StringPtrInput `pulumi:"ipv4Address"` + // The IPV6 address of the container in the specific network. + Ipv6Address pulumi.StringPtrInput `pulumi:"ipv6Address"` + // The name or id of the network to use. You can use `name` or `id` attribute from a `Network` resource. + Name pulumi.StringInput `pulumi:"name"` +} + +func (ContainerNetworksAdvancedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerNetworksAdvanced)(nil)).Elem() +} + +func (i ContainerNetworksAdvancedArgs) ToContainerNetworksAdvancedOutput() ContainerNetworksAdvancedOutput { + return i.ToContainerNetworksAdvancedOutputWithContext(context.Background()) +} + +func (i ContainerNetworksAdvancedArgs) ToContainerNetworksAdvancedOutputWithContext(ctx context.Context) ContainerNetworksAdvancedOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerNetworksAdvancedOutput) +} + +func (i ContainerNetworksAdvancedArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerNetworksAdvanced] { + return pulumix.Output[ContainerNetworksAdvanced]{ + OutputState: i.ToContainerNetworksAdvancedOutputWithContext(ctx).OutputState, + } +} + +// ContainerNetworksAdvancedArrayInput is an input type that accepts ContainerNetworksAdvancedArray and ContainerNetworksAdvancedArrayOutput values. +// You can construct a concrete instance of `ContainerNetworksAdvancedArrayInput` via: +// +// ContainerNetworksAdvancedArray{ ContainerNetworksAdvancedArgs{...} } +type ContainerNetworksAdvancedArrayInput interface { + pulumi.Input + + ToContainerNetworksAdvancedArrayOutput() ContainerNetworksAdvancedArrayOutput + ToContainerNetworksAdvancedArrayOutputWithContext(context.Context) ContainerNetworksAdvancedArrayOutput +} + +type ContainerNetworksAdvancedArray []ContainerNetworksAdvancedInput + +func (ContainerNetworksAdvancedArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerNetworksAdvanced)(nil)).Elem() +} + +func (i ContainerNetworksAdvancedArray) ToContainerNetworksAdvancedArrayOutput() ContainerNetworksAdvancedArrayOutput { + return i.ToContainerNetworksAdvancedArrayOutputWithContext(context.Background()) +} + +func (i ContainerNetworksAdvancedArray) ToContainerNetworksAdvancedArrayOutputWithContext(ctx context.Context) ContainerNetworksAdvancedArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerNetworksAdvancedArrayOutput) +} + +func (i ContainerNetworksAdvancedArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerNetworksAdvanced] { + return pulumix.Output[[]ContainerNetworksAdvanced]{ + OutputState: i.ToContainerNetworksAdvancedArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerNetworksAdvancedOutput struct{ *pulumi.OutputState } + +func (ContainerNetworksAdvancedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerNetworksAdvanced)(nil)).Elem() +} + +func (o ContainerNetworksAdvancedOutput) ToContainerNetworksAdvancedOutput() ContainerNetworksAdvancedOutput { + return o +} + +func (o ContainerNetworksAdvancedOutput) ToContainerNetworksAdvancedOutputWithContext(ctx context.Context) ContainerNetworksAdvancedOutput { + return o +} + +func (o ContainerNetworksAdvancedOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerNetworksAdvanced] { + return pulumix.Output[ContainerNetworksAdvanced]{ + OutputState: o.OutputState, + } +} + +// The network aliases of the container in the specific network. +func (o ContainerNetworksAdvancedOutput) Aliases() pulumi.StringArrayOutput { + return o.ApplyT(func(v ContainerNetworksAdvanced) []string { return v.Aliases }).(pulumi.StringArrayOutput) +} + +// The IPV4 address of the container in the specific network. +func (o ContainerNetworksAdvancedOutput) Ipv4Address() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworksAdvanced) *string { return v.Ipv4Address }).(pulumi.StringPtrOutput) +} + +// The IPV6 address of the container in the specific network. +func (o ContainerNetworksAdvancedOutput) Ipv6Address() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerNetworksAdvanced) *string { return v.Ipv6Address }).(pulumi.StringPtrOutput) +} + +// The name or id of the network to use. You can use `name` or `id` attribute from a `Network` resource. +func (o ContainerNetworksAdvancedOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ContainerNetworksAdvanced) string { return v.Name }).(pulumi.StringOutput) +} + +type ContainerNetworksAdvancedArrayOutput struct{ *pulumi.OutputState } + +func (ContainerNetworksAdvancedArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerNetworksAdvanced)(nil)).Elem() +} + +func (o ContainerNetworksAdvancedArrayOutput) ToContainerNetworksAdvancedArrayOutput() ContainerNetworksAdvancedArrayOutput { + return o +} + +func (o ContainerNetworksAdvancedArrayOutput) ToContainerNetworksAdvancedArrayOutputWithContext(ctx context.Context) ContainerNetworksAdvancedArrayOutput { + return o +} + +func (o ContainerNetworksAdvancedArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerNetworksAdvanced] { + return pulumix.Output[[]ContainerNetworksAdvanced]{ + OutputState: o.OutputState, + } +} + +func (o ContainerNetworksAdvancedArrayOutput) Index(i pulumi.IntInput) ContainerNetworksAdvancedOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerNetworksAdvanced { + return vs[0].([]ContainerNetworksAdvanced)[vs[1].(int)] + }).(ContainerNetworksAdvancedOutput) +} + +type ContainerPort struct { + // Port exposed out of the container. If not given a free random port `>= 32768` will be used. + External *int `pulumi:"external"` + // Port within the container. + Internal int `pulumi:"internal"` + // IP address/mask that can access this port. Defaults to `0.0.0.0`. + Ip *string `pulumi:"ip"` + // Protocol that can be used over this port. Defaults to `tcp`. + Protocol *string `pulumi:"protocol"` +} + +// ContainerPortInput is an input type that accepts ContainerPortArgs and ContainerPortOutput values. +// You can construct a concrete instance of `ContainerPortInput` via: +// +// ContainerPortArgs{...} +type ContainerPortInput interface { + pulumi.Input + + ToContainerPortOutput() ContainerPortOutput + ToContainerPortOutputWithContext(context.Context) ContainerPortOutput +} + +type ContainerPortArgs struct { + // Port exposed out of the container. If not given a free random port `>= 32768` will be used. + External pulumi.IntPtrInput `pulumi:"external"` + // Port within the container. + Internal pulumi.IntInput `pulumi:"internal"` + // IP address/mask that can access this port. Defaults to `0.0.0.0`. + Ip pulumi.StringPtrInput `pulumi:"ip"` + // Protocol that can be used over this port. Defaults to `tcp`. + Protocol pulumi.StringPtrInput `pulumi:"protocol"` +} + +func (ContainerPortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerPort)(nil)).Elem() +} + +func (i ContainerPortArgs) ToContainerPortOutput() ContainerPortOutput { + return i.ToContainerPortOutputWithContext(context.Background()) +} + +func (i ContainerPortArgs) ToContainerPortOutputWithContext(ctx context.Context) ContainerPortOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerPortOutput) +} + +func (i ContainerPortArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerPort] { + return pulumix.Output[ContainerPort]{ + OutputState: i.ToContainerPortOutputWithContext(ctx).OutputState, + } +} + +// ContainerPortArrayInput is an input type that accepts ContainerPortArray and ContainerPortArrayOutput values. +// You can construct a concrete instance of `ContainerPortArrayInput` via: +// +// ContainerPortArray{ ContainerPortArgs{...} } +type ContainerPortArrayInput interface { + pulumi.Input + + ToContainerPortArrayOutput() ContainerPortArrayOutput + ToContainerPortArrayOutputWithContext(context.Context) ContainerPortArrayOutput +} + +type ContainerPortArray []ContainerPortInput + +func (ContainerPortArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerPort)(nil)).Elem() +} + +func (i ContainerPortArray) ToContainerPortArrayOutput() ContainerPortArrayOutput { + return i.ToContainerPortArrayOutputWithContext(context.Background()) +} + +func (i ContainerPortArray) ToContainerPortArrayOutputWithContext(ctx context.Context) ContainerPortArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerPortArrayOutput) +} + +func (i ContainerPortArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerPort] { + return pulumix.Output[[]ContainerPort]{ + OutputState: i.ToContainerPortArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerPortOutput struct{ *pulumi.OutputState } + +func (ContainerPortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerPort)(nil)).Elem() +} + +func (o ContainerPortOutput) ToContainerPortOutput() ContainerPortOutput { + return o +} + +func (o ContainerPortOutput) ToContainerPortOutputWithContext(ctx context.Context) ContainerPortOutput { + return o +} + +func (o ContainerPortOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerPort] { + return pulumix.Output[ContainerPort]{ + OutputState: o.OutputState, + } +} + +// Port exposed out of the container. If not given a free random port `>= 32768` will be used. +func (o ContainerPortOutput) External() pulumi.IntPtrOutput { + return o.ApplyT(func(v ContainerPort) *int { return v.External }).(pulumi.IntPtrOutput) +} + +// Port within the container. +func (o ContainerPortOutput) Internal() pulumi.IntOutput { + return o.ApplyT(func(v ContainerPort) int { return v.Internal }).(pulumi.IntOutput) +} + +// IP address/mask that can access this port. Defaults to `0.0.0.0`. +func (o ContainerPortOutput) Ip() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerPort) *string { return v.Ip }).(pulumi.StringPtrOutput) +} + +// Protocol that can be used over this port. Defaults to `tcp`. +func (o ContainerPortOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerPort) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +type ContainerPortArrayOutput struct{ *pulumi.OutputState } + +func (ContainerPortArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerPort)(nil)).Elem() +} + +func (o ContainerPortArrayOutput) ToContainerPortArrayOutput() ContainerPortArrayOutput { + return o +} + +func (o ContainerPortArrayOutput) ToContainerPortArrayOutputWithContext(ctx context.Context) ContainerPortArrayOutput { + return o +} + +func (o ContainerPortArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerPort] { + return pulumix.Output[[]ContainerPort]{ + OutputState: o.OutputState, + } +} + +func (o ContainerPortArrayOutput) Index(i pulumi.IntInput) ContainerPortOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerPort { + return vs[0].([]ContainerPort)[vs[1].(int)] + }).(ContainerPortOutput) +} + +type ContainerUlimit struct { + // The hard limit + Hard int `pulumi:"hard"` + // The name of the ulimit + Name string `pulumi:"name"` + // The soft limit + Soft int `pulumi:"soft"` +} + +// ContainerUlimitInput is an input type that accepts ContainerUlimitArgs and ContainerUlimitOutput values. +// You can construct a concrete instance of `ContainerUlimitInput` via: +// +// ContainerUlimitArgs{...} +type ContainerUlimitInput interface { + pulumi.Input + + ToContainerUlimitOutput() ContainerUlimitOutput + ToContainerUlimitOutputWithContext(context.Context) ContainerUlimitOutput +} + +type ContainerUlimitArgs struct { + // The hard limit + Hard pulumi.IntInput `pulumi:"hard"` + // The name of the ulimit + Name pulumi.StringInput `pulumi:"name"` + // The soft limit + Soft pulumi.IntInput `pulumi:"soft"` +} + +func (ContainerUlimitArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerUlimit)(nil)).Elem() +} + +func (i ContainerUlimitArgs) ToContainerUlimitOutput() ContainerUlimitOutput { + return i.ToContainerUlimitOutputWithContext(context.Background()) +} + +func (i ContainerUlimitArgs) ToContainerUlimitOutputWithContext(ctx context.Context) ContainerUlimitOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerUlimitOutput) +} + +func (i ContainerUlimitArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerUlimit] { + return pulumix.Output[ContainerUlimit]{ + OutputState: i.ToContainerUlimitOutputWithContext(ctx).OutputState, + } +} + +// ContainerUlimitArrayInput is an input type that accepts ContainerUlimitArray and ContainerUlimitArrayOutput values. +// You can construct a concrete instance of `ContainerUlimitArrayInput` via: +// +// ContainerUlimitArray{ ContainerUlimitArgs{...} } +type ContainerUlimitArrayInput interface { + pulumi.Input + + ToContainerUlimitArrayOutput() ContainerUlimitArrayOutput + ToContainerUlimitArrayOutputWithContext(context.Context) ContainerUlimitArrayOutput +} + +type ContainerUlimitArray []ContainerUlimitInput + +func (ContainerUlimitArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerUlimit)(nil)).Elem() +} + +func (i ContainerUlimitArray) ToContainerUlimitArrayOutput() ContainerUlimitArrayOutput { + return i.ToContainerUlimitArrayOutputWithContext(context.Background()) +} + +func (i ContainerUlimitArray) ToContainerUlimitArrayOutputWithContext(ctx context.Context) ContainerUlimitArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerUlimitArrayOutput) +} + +func (i ContainerUlimitArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerUlimit] { + return pulumix.Output[[]ContainerUlimit]{ + OutputState: i.ToContainerUlimitArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerUlimitOutput struct{ *pulumi.OutputState } + +func (ContainerUlimitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerUlimit)(nil)).Elem() +} + +func (o ContainerUlimitOutput) ToContainerUlimitOutput() ContainerUlimitOutput { + return o +} + +func (o ContainerUlimitOutput) ToContainerUlimitOutputWithContext(ctx context.Context) ContainerUlimitOutput { + return o +} + +func (o ContainerUlimitOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerUlimit] { + return pulumix.Output[ContainerUlimit]{ + OutputState: o.OutputState, + } +} + +// The hard limit +func (o ContainerUlimitOutput) Hard() pulumi.IntOutput { + return o.ApplyT(func(v ContainerUlimit) int { return v.Hard }).(pulumi.IntOutput) +} + +// The name of the ulimit +func (o ContainerUlimitOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ContainerUlimit) string { return v.Name }).(pulumi.StringOutput) +} + +// The soft limit +func (o ContainerUlimitOutput) Soft() pulumi.IntOutput { + return o.ApplyT(func(v ContainerUlimit) int { return v.Soft }).(pulumi.IntOutput) +} + +type ContainerUlimitArrayOutput struct{ *pulumi.OutputState } + +func (ContainerUlimitArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerUlimit)(nil)).Elem() +} + +func (o ContainerUlimitArrayOutput) ToContainerUlimitArrayOutput() ContainerUlimitArrayOutput { + return o +} + +func (o ContainerUlimitArrayOutput) ToContainerUlimitArrayOutputWithContext(ctx context.Context) ContainerUlimitArrayOutput { + return o +} + +func (o ContainerUlimitArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerUlimit] { + return pulumix.Output[[]ContainerUlimit]{ + OutputState: o.OutputState, + } +} + +func (o ContainerUlimitArrayOutput) Index(i pulumi.IntInput) ContainerUlimitOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerUlimit { + return vs[0].([]ContainerUlimit)[vs[1].(int)] + }).(ContainerUlimitOutput) +} + +type ContainerUpload struct { + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. Conflicts with `contentBase64` & `source` + Content *string `pulumi:"content"` + ContentBase64 *string `pulumi:"contentBase64"` + // If `true`, the file will be uploaded with user executable permission. Defaults to `false`. + Executable *bool `pulumi:"executable"` + // Path to the file in the container where is upload goes to + File string `pulumi:"file"` + // A filename that references a file which will be uploaded as the object content. This allows for large file uploads that do not get stored in state. Conflicts with `content` & `contentBase64` + Source *string `pulumi:"source"` + // If using `source`, this will force an update if the file content has updated but the filename has not. + SourceHash *string `pulumi:"sourceHash"` +} + +// ContainerUploadInput is an input type that accepts ContainerUploadArgs and ContainerUploadOutput values. +// You can construct a concrete instance of `ContainerUploadInput` via: +// +// ContainerUploadArgs{...} +type ContainerUploadInput interface { + pulumi.Input + + ToContainerUploadOutput() ContainerUploadOutput + ToContainerUploadOutputWithContext(context.Context) ContainerUploadOutput +} + +type ContainerUploadArgs struct { + // Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. Conflicts with `contentBase64` & `source` + Content pulumi.StringPtrInput `pulumi:"content"` + ContentBase64 pulumi.StringPtrInput `pulumi:"contentBase64"` + // If `true`, the file will be uploaded with user executable permission. Defaults to `false`. + Executable pulumi.BoolPtrInput `pulumi:"executable"` + // Path to the file in the container where is upload goes to + File pulumi.StringInput `pulumi:"file"` + // A filename that references a file which will be uploaded as the object content. This allows for large file uploads that do not get stored in state. Conflicts with `content` & `contentBase64` + Source pulumi.StringPtrInput `pulumi:"source"` + // If using `source`, this will force an update if the file content has updated but the filename has not. + SourceHash pulumi.StringPtrInput `pulumi:"sourceHash"` +} + +func (ContainerUploadArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerUpload)(nil)).Elem() +} + +func (i ContainerUploadArgs) ToContainerUploadOutput() ContainerUploadOutput { + return i.ToContainerUploadOutputWithContext(context.Background()) +} + +func (i ContainerUploadArgs) ToContainerUploadOutputWithContext(ctx context.Context) ContainerUploadOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerUploadOutput) +} + +func (i ContainerUploadArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerUpload] { + return pulumix.Output[ContainerUpload]{ + OutputState: i.ToContainerUploadOutputWithContext(ctx).OutputState, + } +} + +// ContainerUploadArrayInput is an input type that accepts ContainerUploadArray and ContainerUploadArrayOutput values. +// You can construct a concrete instance of `ContainerUploadArrayInput` via: +// +// ContainerUploadArray{ ContainerUploadArgs{...} } +type ContainerUploadArrayInput interface { + pulumi.Input + + ToContainerUploadArrayOutput() ContainerUploadArrayOutput + ToContainerUploadArrayOutputWithContext(context.Context) ContainerUploadArrayOutput +} + +type ContainerUploadArray []ContainerUploadInput + +func (ContainerUploadArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerUpload)(nil)).Elem() +} + +func (i ContainerUploadArray) ToContainerUploadArrayOutput() ContainerUploadArrayOutput { + return i.ToContainerUploadArrayOutputWithContext(context.Background()) +} + +func (i ContainerUploadArray) ToContainerUploadArrayOutputWithContext(ctx context.Context) ContainerUploadArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerUploadArrayOutput) +} + +func (i ContainerUploadArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerUpload] { + return pulumix.Output[[]ContainerUpload]{ + OutputState: i.ToContainerUploadArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerUploadOutput struct{ *pulumi.OutputState } + +func (ContainerUploadOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerUpload)(nil)).Elem() +} + +func (o ContainerUploadOutput) ToContainerUploadOutput() ContainerUploadOutput { + return o +} + +func (o ContainerUploadOutput) ToContainerUploadOutputWithContext(ctx context.Context) ContainerUploadOutput { + return o +} + +func (o ContainerUploadOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerUpload] { + return pulumix.Output[ContainerUpload]{ + OutputState: o.OutputState, + } +} + +// Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. Conflicts with `contentBase64` & `source` +func (o ContainerUploadOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerUpload) *string { return v.Content }).(pulumi.StringPtrOutput) +} + +func (o ContainerUploadOutput) ContentBase64() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerUpload) *string { return v.ContentBase64 }).(pulumi.StringPtrOutput) +} + +// If `true`, the file will be uploaded with user executable permission. Defaults to `false`. +func (o ContainerUploadOutput) Executable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ContainerUpload) *bool { return v.Executable }).(pulumi.BoolPtrOutput) +} + +// Path to the file in the container where is upload goes to +func (o ContainerUploadOutput) File() pulumi.StringOutput { + return o.ApplyT(func(v ContainerUpload) string { return v.File }).(pulumi.StringOutput) +} + +// A filename that references a file which will be uploaded as the object content. This allows for large file uploads that do not get stored in state. Conflicts with `content` & `contentBase64` +func (o ContainerUploadOutput) Source() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerUpload) *string { return v.Source }).(pulumi.StringPtrOutput) +} + +// If using `source`, this will force an update if the file content has updated but the filename has not. +func (o ContainerUploadOutput) SourceHash() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerUpload) *string { return v.SourceHash }).(pulumi.StringPtrOutput) +} + +type ContainerUploadArrayOutput struct{ *pulumi.OutputState } + +func (ContainerUploadArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerUpload)(nil)).Elem() +} + +func (o ContainerUploadArrayOutput) ToContainerUploadArrayOutput() ContainerUploadArrayOutput { + return o +} + +func (o ContainerUploadArrayOutput) ToContainerUploadArrayOutputWithContext(ctx context.Context) ContainerUploadArrayOutput { + return o +} + +func (o ContainerUploadArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerUpload] { + return pulumix.Output[[]ContainerUpload]{ + OutputState: o.OutputState, + } +} + +func (o ContainerUploadArrayOutput) Index(i pulumi.IntInput) ContainerUploadOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerUpload { + return vs[0].([]ContainerUpload)[vs[1].(int)] + }).(ContainerUploadOutput) +} + +type ContainerVolume struct { + // The path in the container where the volume will be mounted. + ContainerPath *string `pulumi:"containerPath"` + // The container where the volume is coming from. + FromContainer *string `pulumi:"fromContainer"` + // The path on the host where the volume is coming from. + HostPath *string `pulumi:"hostPath"` + // If `true`, this volume will be readonly. Defaults to `false`. + ReadOnly *bool `pulumi:"readOnly"` + // The name of the docker volume which should be mounted. + VolumeName *string `pulumi:"volumeName"` +} + +// ContainerVolumeInput is an input type that accepts ContainerVolumeArgs and ContainerVolumeOutput values. +// You can construct a concrete instance of `ContainerVolumeInput` via: +// +// ContainerVolumeArgs{...} +type ContainerVolumeInput interface { + pulumi.Input + + ToContainerVolumeOutput() ContainerVolumeOutput + ToContainerVolumeOutputWithContext(context.Context) ContainerVolumeOutput +} + +type ContainerVolumeArgs struct { + // The path in the container where the volume will be mounted. + ContainerPath pulumi.StringPtrInput `pulumi:"containerPath"` + // The container where the volume is coming from. + FromContainer pulumi.StringPtrInput `pulumi:"fromContainer"` + // The path on the host where the volume is coming from. + HostPath pulumi.StringPtrInput `pulumi:"hostPath"` + // If `true`, this volume will be readonly. Defaults to `false`. + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + // The name of the docker volume which should be mounted. + VolumeName pulumi.StringPtrInput `pulumi:"volumeName"` +} + +func (ContainerVolumeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerVolume)(nil)).Elem() +} + +func (i ContainerVolumeArgs) ToContainerVolumeOutput() ContainerVolumeOutput { + return i.ToContainerVolumeOutputWithContext(context.Background()) +} + +func (i ContainerVolumeArgs) ToContainerVolumeOutputWithContext(ctx context.Context) ContainerVolumeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerVolumeOutput) +} + +func (i ContainerVolumeArgs) ToOutput(ctx context.Context) pulumix.Output[ContainerVolume] { + return pulumix.Output[ContainerVolume]{ + OutputState: i.ToContainerVolumeOutputWithContext(ctx).OutputState, + } +} + +// ContainerVolumeArrayInput is an input type that accepts ContainerVolumeArray and ContainerVolumeArrayOutput values. +// You can construct a concrete instance of `ContainerVolumeArrayInput` via: +// +// ContainerVolumeArray{ ContainerVolumeArgs{...} } +type ContainerVolumeArrayInput interface { + pulumi.Input + + ToContainerVolumeArrayOutput() ContainerVolumeArrayOutput + ToContainerVolumeArrayOutputWithContext(context.Context) ContainerVolumeArrayOutput +} + +type ContainerVolumeArray []ContainerVolumeInput + +func (ContainerVolumeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerVolume)(nil)).Elem() +} + +func (i ContainerVolumeArray) ToContainerVolumeArrayOutput() ContainerVolumeArrayOutput { + return i.ToContainerVolumeArrayOutputWithContext(context.Background()) +} + +func (i ContainerVolumeArray) ToContainerVolumeArrayOutputWithContext(ctx context.Context) ContainerVolumeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerVolumeArrayOutput) +} + +func (i ContainerVolumeArray) ToOutput(ctx context.Context) pulumix.Output[[]ContainerVolume] { + return pulumix.Output[[]ContainerVolume]{ + OutputState: i.ToContainerVolumeArrayOutputWithContext(ctx).OutputState, + } +} + +type ContainerVolumeOutput struct{ *pulumi.OutputState } + +func (ContainerVolumeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerVolume)(nil)).Elem() +} + +func (o ContainerVolumeOutput) ToContainerVolumeOutput() ContainerVolumeOutput { + return o +} + +func (o ContainerVolumeOutput) ToContainerVolumeOutputWithContext(ctx context.Context) ContainerVolumeOutput { + return o +} + +func (o ContainerVolumeOutput) ToOutput(ctx context.Context) pulumix.Output[ContainerVolume] { + return pulumix.Output[ContainerVolume]{ + OutputState: o.OutputState, + } +} + +// The path in the container where the volume will be mounted. +func (o ContainerVolumeOutput) ContainerPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerVolume) *string { return v.ContainerPath }).(pulumi.StringPtrOutput) +} + +// The container where the volume is coming from. +func (o ContainerVolumeOutput) FromContainer() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerVolume) *string { return v.FromContainer }).(pulumi.StringPtrOutput) +} + +// The path on the host where the volume is coming from. +func (o ContainerVolumeOutput) HostPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerVolume) *string { return v.HostPath }).(pulumi.StringPtrOutput) +} + +// If `true`, this volume will be readonly. Defaults to `false`. +func (o ContainerVolumeOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ContainerVolume) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +// The name of the docker volume which should be mounted. +func (o ContainerVolumeOutput) VolumeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerVolume) *string { return v.VolumeName }).(pulumi.StringPtrOutput) +} + +type ContainerVolumeArrayOutput struct{ *pulumi.OutputState } + +func (ContainerVolumeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerVolume)(nil)).Elem() +} + +func (o ContainerVolumeArrayOutput) ToContainerVolumeArrayOutput() ContainerVolumeArrayOutput { + return o +} + +func (o ContainerVolumeArrayOutput) ToContainerVolumeArrayOutputWithContext(ctx context.Context) ContainerVolumeArrayOutput { + return o +} + +func (o ContainerVolumeArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ContainerVolume] { + return pulumix.Output[[]ContainerVolume]{ + OutputState: o.OutputState, + } +} + +func (o ContainerVolumeArrayOutput) Index(i pulumi.IntInput) ContainerVolumeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerVolume { + return vs[0].([]ContainerVolume)[vs[1].(int)] + }).(ContainerVolumeOutput) +} + +type NetworkIpamConfig struct { + // Auxiliary IPv4 or IPv6 addresses used by Network driver + AuxAddress map[string]interface{} `pulumi:"auxAddress"` + // The IP address of the gateway + Gateway *string `pulumi:"gateway"` + // The ip range in CIDR form + IpRange *string `pulumi:"ipRange"` + // The subnet in CIDR form + Subnet *string `pulumi:"subnet"` +} + +// NetworkIpamConfigInput is an input type that accepts NetworkIpamConfigArgs and NetworkIpamConfigOutput values. +// You can construct a concrete instance of `NetworkIpamConfigInput` via: +// +// NetworkIpamConfigArgs{...} +type NetworkIpamConfigInput interface { + pulumi.Input + + ToNetworkIpamConfigOutput() NetworkIpamConfigOutput + ToNetworkIpamConfigOutputWithContext(context.Context) NetworkIpamConfigOutput +} + +type NetworkIpamConfigArgs struct { + // Auxiliary IPv4 or IPv6 addresses used by Network driver + AuxAddress pulumi.MapInput `pulumi:"auxAddress"` + // The IP address of the gateway + Gateway pulumi.StringPtrInput `pulumi:"gateway"` + // The ip range in CIDR form + IpRange pulumi.StringPtrInput `pulumi:"ipRange"` + // The subnet in CIDR form + Subnet pulumi.StringPtrInput `pulumi:"subnet"` +} + +func (NetworkIpamConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkIpamConfig)(nil)).Elem() +} + +func (i NetworkIpamConfigArgs) ToNetworkIpamConfigOutput() NetworkIpamConfigOutput { + return i.ToNetworkIpamConfigOutputWithContext(context.Background()) +} + +func (i NetworkIpamConfigArgs) ToNetworkIpamConfigOutputWithContext(ctx context.Context) NetworkIpamConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkIpamConfigOutput) +} + +func (i NetworkIpamConfigArgs) ToOutput(ctx context.Context) pulumix.Output[NetworkIpamConfig] { + return pulumix.Output[NetworkIpamConfig]{ + OutputState: i.ToNetworkIpamConfigOutputWithContext(ctx).OutputState, + } +} + +// NetworkIpamConfigArrayInput is an input type that accepts NetworkIpamConfigArray and NetworkIpamConfigArrayOutput values. +// You can construct a concrete instance of `NetworkIpamConfigArrayInput` via: +// +// NetworkIpamConfigArray{ NetworkIpamConfigArgs{...} } +type NetworkIpamConfigArrayInput interface { + pulumi.Input + + ToNetworkIpamConfigArrayOutput() NetworkIpamConfigArrayOutput + ToNetworkIpamConfigArrayOutputWithContext(context.Context) NetworkIpamConfigArrayOutput +} + +type NetworkIpamConfigArray []NetworkIpamConfigInput + +func (NetworkIpamConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkIpamConfig)(nil)).Elem() +} + +func (i NetworkIpamConfigArray) ToNetworkIpamConfigArrayOutput() NetworkIpamConfigArrayOutput { + return i.ToNetworkIpamConfigArrayOutputWithContext(context.Background()) +} + +func (i NetworkIpamConfigArray) ToNetworkIpamConfigArrayOutputWithContext(ctx context.Context) NetworkIpamConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkIpamConfigArrayOutput) +} + +func (i NetworkIpamConfigArray) ToOutput(ctx context.Context) pulumix.Output[[]NetworkIpamConfig] { + return pulumix.Output[[]NetworkIpamConfig]{ + OutputState: i.ToNetworkIpamConfigArrayOutputWithContext(ctx).OutputState, + } +} + +type NetworkIpamConfigOutput struct{ *pulumi.OutputState } + +func (NetworkIpamConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkIpamConfig)(nil)).Elem() +} + +func (o NetworkIpamConfigOutput) ToNetworkIpamConfigOutput() NetworkIpamConfigOutput { + return o +} + +func (o NetworkIpamConfigOutput) ToNetworkIpamConfigOutputWithContext(ctx context.Context) NetworkIpamConfigOutput { + return o +} + +func (o NetworkIpamConfigOutput) ToOutput(ctx context.Context) pulumix.Output[NetworkIpamConfig] { + return pulumix.Output[NetworkIpamConfig]{ + OutputState: o.OutputState, + } +} + +// Auxiliary IPv4 or IPv6 addresses used by Network driver +func (o NetworkIpamConfigOutput) AuxAddress() pulumi.MapOutput { + return o.ApplyT(func(v NetworkIpamConfig) map[string]interface{} { return v.AuxAddress }).(pulumi.MapOutput) +} + +// The IP address of the gateway +func (o NetworkIpamConfigOutput) Gateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkIpamConfig) *string { return v.Gateway }).(pulumi.StringPtrOutput) +} + +// The ip range in CIDR form +func (o NetworkIpamConfigOutput) IpRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkIpamConfig) *string { return v.IpRange }).(pulumi.StringPtrOutput) +} + +// The subnet in CIDR form +func (o NetworkIpamConfigOutput) Subnet() pulumi.StringPtrOutput { + return o.ApplyT(func(v NetworkIpamConfig) *string { return v.Subnet }).(pulumi.StringPtrOutput) +} + +type NetworkIpamConfigArrayOutput struct{ *pulumi.OutputState } + +func (NetworkIpamConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkIpamConfig)(nil)).Elem() +} + +func (o NetworkIpamConfigArrayOutput) ToNetworkIpamConfigArrayOutput() NetworkIpamConfigArrayOutput { + return o +} + +func (o NetworkIpamConfigArrayOutput) ToNetworkIpamConfigArrayOutputWithContext(ctx context.Context) NetworkIpamConfigArrayOutput { + return o +} + +func (o NetworkIpamConfigArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]NetworkIpamConfig] { + return pulumix.Output[[]NetworkIpamConfig]{ + OutputState: o.OutputState, + } +} + +func (o NetworkIpamConfigArrayOutput) Index(i pulumi.IntInput) NetworkIpamConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkIpamConfig { + return vs[0].([]NetworkIpamConfig)[vs[1].(int)] + }).(NetworkIpamConfigOutput) +} + +type NetworkLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// NetworkLabelInput is an input type that accepts NetworkLabelArgs and NetworkLabelOutput values. +// You can construct a concrete instance of `NetworkLabelInput` via: +// +// NetworkLabelArgs{...} +type NetworkLabelInput interface { + pulumi.Input + + ToNetworkLabelOutput() NetworkLabelOutput + ToNetworkLabelOutputWithContext(context.Context) NetworkLabelOutput +} + +type NetworkLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (NetworkLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkLabel)(nil)).Elem() +} + +func (i NetworkLabelArgs) ToNetworkLabelOutput() NetworkLabelOutput { + return i.ToNetworkLabelOutputWithContext(context.Background()) +} + +func (i NetworkLabelArgs) ToNetworkLabelOutputWithContext(ctx context.Context) NetworkLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkLabelOutput) +} + +func (i NetworkLabelArgs) ToOutput(ctx context.Context) pulumix.Output[NetworkLabel] { + return pulumix.Output[NetworkLabel]{ + OutputState: i.ToNetworkLabelOutputWithContext(ctx).OutputState, + } +} + +// NetworkLabelArrayInput is an input type that accepts NetworkLabelArray and NetworkLabelArrayOutput values. +// You can construct a concrete instance of `NetworkLabelArrayInput` via: +// +// NetworkLabelArray{ NetworkLabelArgs{...} } +type NetworkLabelArrayInput interface { + pulumi.Input + + ToNetworkLabelArrayOutput() NetworkLabelArrayOutput + ToNetworkLabelArrayOutputWithContext(context.Context) NetworkLabelArrayOutput +} + +type NetworkLabelArray []NetworkLabelInput + +func (NetworkLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkLabel)(nil)).Elem() +} + +func (i NetworkLabelArray) ToNetworkLabelArrayOutput() NetworkLabelArrayOutput { + return i.ToNetworkLabelArrayOutputWithContext(context.Background()) +} + +func (i NetworkLabelArray) ToNetworkLabelArrayOutputWithContext(ctx context.Context) NetworkLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NetworkLabelArrayOutput) +} + +func (i NetworkLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]NetworkLabel] { + return pulumix.Output[[]NetworkLabel]{ + OutputState: i.ToNetworkLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type NetworkLabelOutput struct{ *pulumi.OutputState } + +func (NetworkLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NetworkLabel)(nil)).Elem() +} + +func (o NetworkLabelOutput) ToNetworkLabelOutput() NetworkLabelOutput { + return o +} + +func (o NetworkLabelOutput) ToNetworkLabelOutputWithContext(ctx context.Context) NetworkLabelOutput { + return o +} + +func (o NetworkLabelOutput) ToOutput(ctx context.Context) pulumix.Output[NetworkLabel] { + return pulumix.Output[NetworkLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o NetworkLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v NetworkLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o NetworkLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v NetworkLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type NetworkLabelArrayOutput struct{ *pulumi.OutputState } + +func (NetworkLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]NetworkLabel)(nil)).Elem() +} + +func (o NetworkLabelArrayOutput) ToNetworkLabelArrayOutput() NetworkLabelArrayOutput { + return o +} + +func (o NetworkLabelArrayOutput) ToNetworkLabelArrayOutputWithContext(ctx context.Context) NetworkLabelArrayOutput { + return o +} + +func (o NetworkLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]NetworkLabel] { + return pulumix.Output[[]NetworkLabel]{ + OutputState: o.OutputState, + } +} + +func (o NetworkLabelArrayOutput) Index(i pulumi.IntInput) NetworkLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) NetworkLabel { + return vs[0].([]NetworkLabel)[vs[1].(int)] + }).(NetworkLabelOutput) +} + +type PluginGrantPermission struct { + // The name of the permission + Name string `pulumi:"name"` + // The value of the permission + Values []string `pulumi:"values"` +} + +// PluginGrantPermissionInput is an input type that accepts PluginGrantPermissionArgs and PluginGrantPermissionOutput values. +// You can construct a concrete instance of `PluginGrantPermissionInput` via: +// +// PluginGrantPermissionArgs{...} +type PluginGrantPermissionInput interface { + pulumi.Input + + ToPluginGrantPermissionOutput() PluginGrantPermissionOutput + ToPluginGrantPermissionOutputWithContext(context.Context) PluginGrantPermissionOutput +} + +type PluginGrantPermissionArgs struct { + // The name of the permission + Name pulumi.StringInput `pulumi:"name"` + // The value of the permission + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (PluginGrantPermissionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PluginGrantPermission)(nil)).Elem() +} + +func (i PluginGrantPermissionArgs) ToPluginGrantPermissionOutput() PluginGrantPermissionOutput { + return i.ToPluginGrantPermissionOutputWithContext(context.Background()) +} + +func (i PluginGrantPermissionArgs) ToPluginGrantPermissionOutputWithContext(ctx context.Context) PluginGrantPermissionOutput { + return pulumi.ToOutputWithContext(ctx, i).(PluginGrantPermissionOutput) +} + +func (i PluginGrantPermissionArgs) ToOutput(ctx context.Context) pulumix.Output[PluginGrantPermission] { + return pulumix.Output[PluginGrantPermission]{ + OutputState: i.ToPluginGrantPermissionOutputWithContext(ctx).OutputState, + } +} + +// PluginGrantPermissionArrayInput is an input type that accepts PluginGrantPermissionArray and PluginGrantPermissionArrayOutput values. +// You can construct a concrete instance of `PluginGrantPermissionArrayInput` via: +// +// PluginGrantPermissionArray{ PluginGrantPermissionArgs{...} } +type PluginGrantPermissionArrayInput interface { + pulumi.Input + + ToPluginGrantPermissionArrayOutput() PluginGrantPermissionArrayOutput + ToPluginGrantPermissionArrayOutputWithContext(context.Context) PluginGrantPermissionArrayOutput +} + +type PluginGrantPermissionArray []PluginGrantPermissionInput + +func (PluginGrantPermissionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PluginGrantPermission)(nil)).Elem() +} + +func (i PluginGrantPermissionArray) ToPluginGrantPermissionArrayOutput() PluginGrantPermissionArrayOutput { + return i.ToPluginGrantPermissionArrayOutputWithContext(context.Background()) +} + +func (i PluginGrantPermissionArray) ToPluginGrantPermissionArrayOutputWithContext(ctx context.Context) PluginGrantPermissionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PluginGrantPermissionArrayOutput) +} + +func (i PluginGrantPermissionArray) ToOutput(ctx context.Context) pulumix.Output[[]PluginGrantPermission] { + return pulumix.Output[[]PluginGrantPermission]{ + OutputState: i.ToPluginGrantPermissionArrayOutputWithContext(ctx).OutputState, + } +} + +type PluginGrantPermissionOutput struct{ *pulumi.OutputState } + +func (PluginGrantPermissionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PluginGrantPermission)(nil)).Elem() +} + +func (o PluginGrantPermissionOutput) ToPluginGrantPermissionOutput() PluginGrantPermissionOutput { + return o +} + +func (o PluginGrantPermissionOutput) ToPluginGrantPermissionOutputWithContext(ctx context.Context) PluginGrantPermissionOutput { + return o +} + +func (o PluginGrantPermissionOutput) ToOutput(ctx context.Context) pulumix.Output[PluginGrantPermission] { + return pulumix.Output[PluginGrantPermission]{ + OutputState: o.OutputState, + } +} + +// The name of the permission +func (o PluginGrantPermissionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v PluginGrantPermission) string { return v.Name }).(pulumi.StringOutput) +} + +// The value of the permission +func (o PluginGrantPermissionOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v PluginGrantPermission) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type PluginGrantPermissionArrayOutput struct{ *pulumi.OutputState } + +func (PluginGrantPermissionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PluginGrantPermission)(nil)).Elem() +} + +func (o PluginGrantPermissionArrayOutput) ToPluginGrantPermissionArrayOutput() PluginGrantPermissionArrayOutput { + return o +} + +func (o PluginGrantPermissionArrayOutput) ToPluginGrantPermissionArrayOutputWithContext(ctx context.Context) PluginGrantPermissionArrayOutput { + return o +} + +func (o PluginGrantPermissionArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]PluginGrantPermission] { + return pulumix.Output[[]PluginGrantPermission]{ + OutputState: o.OutputState, + } +} + +func (o PluginGrantPermissionArrayOutput) Index(i pulumi.IntInput) PluginGrantPermissionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PluginGrantPermission { + return vs[0].([]PluginGrantPermission)[vs[1].(int)] + }).(PluginGrantPermissionOutput) +} + +type ProviderRegistryAuth struct { + Address string `pulumi:"address"` + AuthDisabled *bool `pulumi:"authDisabled"` + ConfigFile *string `pulumi:"configFile"` + ConfigFileContent *string `pulumi:"configFileContent"` + Password *string `pulumi:"password"` + Username *string `pulumi:"username"` +} + +// ProviderRegistryAuthInput is an input type that accepts ProviderRegistryAuthArgs and ProviderRegistryAuthOutput values. +// You can construct a concrete instance of `ProviderRegistryAuthInput` via: +// +// ProviderRegistryAuthArgs{...} +type ProviderRegistryAuthInput interface { + pulumi.Input + + ToProviderRegistryAuthOutput() ProviderRegistryAuthOutput + ToProviderRegistryAuthOutputWithContext(context.Context) ProviderRegistryAuthOutput +} + +type ProviderRegistryAuthArgs struct { + Address pulumi.StringInput `pulumi:"address"` + AuthDisabled pulumi.BoolPtrInput `pulumi:"authDisabled"` + ConfigFile pulumi.StringPtrInput `pulumi:"configFile"` + ConfigFileContent pulumi.StringPtrInput `pulumi:"configFileContent"` + Password pulumi.StringPtrInput `pulumi:"password"` + Username pulumi.StringPtrInput `pulumi:"username"` +} + +func (ProviderRegistryAuthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProviderRegistryAuth)(nil)).Elem() +} + +func (i ProviderRegistryAuthArgs) ToProviderRegistryAuthOutput() ProviderRegistryAuthOutput { + return i.ToProviderRegistryAuthOutputWithContext(context.Background()) +} + +func (i ProviderRegistryAuthArgs) ToProviderRegistryAuthOutputWithContext(ctx context.Context) ProviderRegistryAuthOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderRegistryAuthOutput) +} + +func (i ProviderRegistryAuthArgs) ToOutput(ctx context.Context) pulumix.Output[ProviderRegistryAuth] { + return pulumix.Output[ProviderRegistryAuth]{ + OutputState: i.ToProviderRegistryAuthOutputWithContext(ctx).OutputState, + } +} + +// ProviderRegistryAuthArrayInput is an input type that accepts ProviderRegistryAuthArray and ProviderRegistryAuthArrayOutput values. +// You can construct a concrete instance of `ProviderRegistryAuthArrayInput` via: +// +// ProviderRegistryAuthArray{ ProviderRegistryAuthArgs{...} } +type ProviderRegistryAuthArrayInput interface { + pulumi.Input + + ToProviderRegistryAuthArrayOutput() ProviderRegistryAuthArrayOutput + ToProviderRegistryAuthArrayOutputWithContext(context.Context) ProviderRegistryAuthArrayOutput +} + +type ProviderRegistryAuthArray []ProviderRegistryAuthInput + +func (ProviderRegistryAuthArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ProviderRegistryAuth)(nil)).Elem() +} + +func (i ProviderRegistryAuthArray) ToProviderRegistryAuthArrayOutput() ProviderRegistryAuthArrayOutput { + return i.ToProviderRegistryAuthArrayOutputWithContext(context.Background()) +} + +func (i ProviderRegistryAuthArray) ToProviderRegistryAuthArrayOutputWithContext(ctx context.Context) ProviderRegistryAuthArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderRegistryAuthArrayOutput) +} + +func (i ProviderRegistryAuthArray) ToOutput(ctx context.Context) pulumix.Output[[]ProviderRegistryAuth] { + return pulumix.Output[[]ProviderRegistryAuth]{ + OutputState: i.ToProviderRegistryAuthArrayOutputWithContext(ctx).OutputState, + } +} + +type ProviderRegistryAuthOutput struct{ *pulumi.OutputState } + +func (ProviderRegistryAuthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProviderRegistryAuth)(nil)).Elem() +} + +func (o ProviderRegistryAuthOutput) ToProviderRegistryAuthOutput() ProviderRegistryAuthOutput { + return o +} + +func (o ProviderRegistryAuthOutput) ToProviderRegistryAuthOutputWithContext(ctx context.Context) ProviderRegistryAuthOutput { + return o +} + +func (o ProviderRegistryAuthOutput) ToOutput(ctx context.Context) pulumix.Output[ProviderRegistryAuth] { + return pulumix.Output[ProviderRegistryAuth]{ + OutputState: o.OutputState, + } +} + +func (o ProviderRegistryAuthOutput) Address() pulumi.StringOutput { + return o.ApplyT(func(v ProviderRegistryAuth) string { return v.Address }).(pulumi.StringOutput) +} + +func (o ProviderRegistryAuthOutput) AuthDisabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ProviderRegistryAuth) *bool { return v.AuthDisabled }).(pulumi.BoolPtrOutput) +} + +func (o ProviderRegistryAuthOutput) ConfigFile() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderRegistryAuth) *string { return v.ConfigFile }).(pulumi.StringPtrOutput) +} + +func (o ProviderRegistryAuthOutput) ConfigFileContent() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderRegistryAuth) *string { return v.ConfigFileContent }).(pulumi.StringPtrOutput) +} + +func (o ProviderRegistryAuthOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderRegistryAuth) *string { return v.Password }).(pulumi.StringPtrOutput) +} + +func (o ProviderRegistryAuthOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderRegistryAuth) *string { return v.Username }).(pulumi.StringPtrOutput) +} + +type ProviderRegistryAuthArrayOutput struct{ *pulumi.OutputState } + +func (ProviderRegistryAuthArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ProviderRegistryAuth)(nil)).Elem() +} + +func (o ProviderRegistryAuthArrayOutput) ToProviderRegistryAuthArrayOutput() ProviderRegistryAuthArrayOutput { + return o +} + +func (o ProviderRegistryAuthArrayOutput) ToProviderRegistryAuthArrayOutputWithContext(ctx context.Context) ProviderRegistryAuthArrayOutput { + return o +} + +func (o ProviderRegistryAuthArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ProviderRegistryAuth] { + return pulumix.Output[[]ProviderRegistryAuth]{ + OutputState: o.OutputState, + } +} + +func (o ProviderRegistryAuthArrayOutput) Index(i pulumi.IntInput) ProviderRegistryAuthOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProviderRegistryAuth { + return vs[0].([]ProviderRegistryAuth)[vs[1].(int)] + }).(ProviderRegistryAuthOutput) +} + +type RemoteImageBuild struct { + // The configuration for the authentication + AuthConfigs []RemoteImageBuildAuthConfig `pulumi:"authConfigs"` + // Set build-time variables + BuildArg map[string]string `pulumi:"buildArg"` + // Pairs for build-time variables in the form TODO + BuildArgs map[string]string `pulumi:"buildArgs"` + // BuildID is an optional identifier that can be passed together with the build request. The same identifier can be used to gracefully cancel the build with the cancel request. + BuildId *string `pulumi:"buildId"` + // Images to consider as cache sources + CacheFroms []string `pulumi:"cacheFroms"` + // Optional parent cgroup for the container + CgroupParent *string `pulumi:"cgroupParent"` + // Value to specify the build context. Currently, only a `PATH` context is supported. You can use the helper function '${path.cwd}/context-dir'. Please see https://docs.docker.com/build/building/context/ for more information about build contexts. + Context string `pulumi:"context"` + // The length of a CPU period in microseconds + CpuPeriod *int `pulumi:"cpuPeriod"` + // Microseconds of CPU time that the container can get in a CPU period + CpuQuota *int `pulumi:"cpuQuota"` + // CPUs in which to allow execution (e.g., `0-3`, `0`, `1`) + CpuSetCpus *string `pulumi:"cpuSetCpus"` + // MEMs in which to allow execution (`0-3`, `0`, `1`) + CpuSetMems *string `pulumi:"cpuSetMems"` + // CPU shares (relative weight) + CpuShares *int `pulumi:"cpuShares"` + // Name of the Dockerfile. Defaults to `Dockerfile`. + Dockerfile *string `pulumi:"dockerfile"` + // A list of hostnames/IP mappings to add to the container’s /etc/hosts file. Specified in the form ["hostname:IP"] + ExtraHosts []string `pulumi:"extraHosts"` + // Always remove intermediate containers + ForceRemove *bool `pulumi:"forceRemove"` + // Isolation represents the isolation technology of a container. The supported values are + Isolation *string `pulumi:"isolation"` + // Set metadata for an image + Label map[string]string `pulumi:"label"` + // User-defined key/value metadata + Labels map[string]string `pulumi:"labels"` + // Set memory limit for build + Memory *int `pulumi:"memory"` + // Total memory (memory + swap), -1 to enable unlimited swap + MemorySwap *int `pulumi:"memorySwap"` + // Set the networking mode for the RUN instructions during build + NetworkMode *string `pulumi:"networkMode"` + // Do not use the cache when building the image + NoCache *bool `pulumi:"noCache"` + // Set platform if server is multi-platform capable + Platform *string `pulumi:"platform"` + // Attempt to pull the image even if an older image exists locally + PullParent *bool `pulumi:"pullParent"` + // A Git repository URI or HTTP/HTTPS context URI + RemoteContext *string `pulumi:"remoteContext"` + // Remove intermediate containers after a successful build. Defaults to `true`. + Remove *bool `pulumi:"remove"` + // The security options + SecurityOpts []string `pulumi:"securityOpts"` + // Set an ID for the build session + SessionId *string `pulumi:"sessionId"` + // Size of /dev/shm in bytes. The size must be greater than 0 + ShmSize *int `pulumi:"shmSize"` + // If true the new layers are squashed into a new image with a single new layer + Squash *bool `pulumi:"squash"` + // Suppress the build output and print image ID on success + SuppressOutput *bool `pulumi:"suppressOutput"` + // Name and optionally a tag in the 'name:tag' format + Tags []string `pulumi:"tags"` + // Set the target build stage to build + Target *string `pulumi:"target"` + // Configuration for ulimits + Ulimits []RemoteImageBuildUlimit `pulumi:"ulimits"` + // Version of the underlying builder to use + Version *string `pulumi:"version"` +} + +// RemoteImageBuildInput is an input type that accepts RemoteImageBuildArgs and RemoteImageBuildOutput values. +// You can construct a concrete instance of `RemoteImageBuildInput` via: +// +// RemoteImageBuildArgs{...} +type RemoteImageBuildInput interface { + pulumi.Input + + ToRemoteImageBuildOutput() RemoteImageBuildOutput + ToRemoteImageBuildOutputWithContext(context.Context) RemoteImageBuildOutput +} + +type RemoteImageBuildArgs struct { + // The configuration for the authentication + AuthConfigs RemoteImageBuildAuthConfigArrayInput `pulumi:"authConfigs"` + // Set build-time variables + BuildArg pulumi.StringMapInput `pulumi:"buildArg"` + // Pairs for build-time variables in the form TODO + BuildArgs pulumi.StringMapInput `pulumi:"buildArgs"` + // BuildID is an optional identifier that can be passed together with the build request. The same identifier can be used to gracefully cancel the build with the cancel request. + BuildId pulumi.StringPtrInput `pulumi:"buildId"` + // Images to consider as cache sources + CacheFroms pulumi.StringArrayInput `pulumi:"cacheFroms"` + // Optional parent cgroup for the container + CgroupParent pulumi.StringPtrInput `pulumi:"cgroupParent"` + // Value to specify the build context. Currently, only a `PATH` context is supported. You can use the helper function '${path.cwd}/context-dir'. Please see https://docs.docker.com/build/building/context/ for more information about build contexts. + Context pulumi.StringInput `pulumi:"context"` + // The length of a CPU period in microseconds + CpuPeriod pulumi.IntPtrInput `pulumi:"cpuPeriod"` + // Microseconds of CPU time that the container can get in a CPU period + CpuQuota pulumi.IntPtrInput `pulumi:"cpuQuota"` + // CPUs in which to allow execution (e.g., `0-3`, `0`, `1`) + CpuSetCpus pulumi.StringPtrInput `pulumi:"cpuSetCpus"` + // MEMs in which to allow execution (`0-3`, `0`, `1`) + CpuSetMems pulumi.StringPtrInput `pulumi:"cpuSetMems"` + // CPU shares (relative weight) + CpuShares pulumi.IntPtrInput `pulumi:"cpuShares"` + // Name of the Dockerfile. Defaults to `Dockerfile`. + Dockerfile pulumi.StringPtrInput `pulumi:"dockerfile"` + // A list of hostnames/IP mappings to add to the container’s /etc/hosts file. Specified in the form ["hostname:IP"] + ExtraHosts pulumi.StringArrayInput `pulumi:"extraHosts"` + // Always remove intermediate containers + ForceRemove pulumi.BoolPtrInput `pulumi:"forceRemove"` + // Isolation represents the isolation technology of a container. The supported values are + Isolation pulumi.StringPtrInput `pulumi:"isolation"` + // Set metadata for an image + Label pulumi.StringMapInput `pulumi:"label"` + // User-defined key/value metadata + Labels pulumi.StringMapInput `pulumi:"labels"` + // Set memory limit for build + Memory pulumi.IntPtrInput `pulumi:"memory"` + // Total memory (memory + swap), -1 to enable unlimited swap + MemorySwap pulumi.IntPtrInput `pulumi:"memorySwap"` + // Set the networking mode for the RUN instructions during build + NetworkMode pulumi.StringPtrInput `pulumi:"networkMode"` + // Do not use the cache when building the image + NoCache pulumi.BoolPtrInput `pulumi:"noCache"` + // Set platform if server is multi-platform capable + Platform pulumi.StringPtrInput `pulumi:"platform"` + // Attempt to pull the image even if an older image exists locally + PullParent pulumi.BoolPtrInput `pulumi:"pullParent"` + // A Git repository URI or HTTP/HTTPS context URI + RemoteContext pulumi.StringPtrInput `pulumi:"remoteContext"` + // Remove intermediate containers after a successful build. Defaults to `true`. + Remove pulumi.BoolPtrInput `pulumi:"remove"` + // The security options + SecurityOpts pulumi.StringArrayInput `pulumi:"securityOpts"` + // Set an ID for the build session + SessionId pulumi.StringPtrInput `pulumi:"sessionId"` + // Size of /dev/shm in bytes. The size must be greater than 0 + ShmSize pulumi.IntPtrInput `pulumi:"shmSize"` + // If true the new layers are squashed into a new image with a single new layer + Squash pulumi.BoolPtrInput `pulumi:"squash"` + // Suppress the build output and print image ID on success + SuppressOutput pulumi.BoolPtrInput `pulumi:"suppressOutput"` + // Name and optionally a tag in the 'name:tag' format + Tags pulumi.StringArrayInput `pulumi:"tags"` + // Set the target build stage to build + Target pulumi.StringPtrInput `pulumi:"target"` + // Configuration for ulimits + Ulimits RemoteImageBuildUlimitArrayInput `pulumi:"ulimits"` + // Version of the underlying builder to use + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (RemoteImageBuildArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RemoteImageBuild)(nil)).Elem() +} + +func (i RemoteImageBuildArgs) ToRemoteImageBuildOutput() RemoteImageBuildOutput { + return i.ToRemoteImageBuildOutputWithContext(context.Background()) +} + +func (i RemoteImageBuildArgs) ToRemoteImageBuildOutputWithContext(ctx context.Context) RemoteImageBuildOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildOutput) +} + +func (i RemoteImageBuildArgs) ToOutput(ctx context.Context) pulumix.Output[RemoteImageBuild] { + return pulumix.Output[RemoteImageBuild]{ + OutputState: i.ToRemoteImageBuildOutputWithContext(ctx).OutputState, + } +} + +func (i RemoteImageBuildArgs) ToRemoteImageBuildPtrOutput() RemoteImageBuildPtrOutput { + return i.ToRemoteImageBuildPtrOutputWithContext(context.Background()) +} + +func (i RemoteImageBuildArgs) ToRemoteImageBuildPtrOutputWithContext(ctx context.Context) RemoteImageBuildPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildOutput).ToRemoteImageBuildPtrOutputWithContext(ctx) +} + +// RemoteImageBuildPtrInput is an input type that accepts RemoteImageBuildArgs, RemoteImageBuildPtr and RemoteImageBuildPtrOutput values. +// You can construct a concrete instance of `RemoteImageBuildPtrInput` via: +// +// RemoteImageBuildArgs{...} +// +// or: +// +// nil +type RemoteImageBuildPtrInput interface { + pulumi.Input + + ToRemoteImageBuildPtrOutput() RemoteImageBuildPtrOutput + ToRemoteImageBuildPtrOutputWithContext(context.Context) RemoteImageBuildPtrOutput +} + +type remoteImageBuildPtrType RemoteImageBuildArgs + +func RemoteImageBuildPtr(v *RemoteImageBuildArgs) RemoteImageBuildPtrInput { + return (*remoteImageBuildPtrType)(v) +} + +func (*remoteImageBuildPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RemoteImageBuild)(nil)).Elem() +} + +func (i *remoteImageBuildPtrType) ToRemoteImageBuildPtrOutput() RemoteImageBuildPtrOutput { + return i.ToRemoteImageBuildPtrOutputWithContext(context.Background()) +} + +func (i *remoteImageBuildPtrType) ToRemoteImageBuildPtrOutputWithContext(ctx context.Context) RemoteImageBuildPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildPtrOutput) +} + +func (i *remoteImageBuildPtrType) ToOutput(ctx context.Context) pulumix.Output[*RemoteImageBuild] { + return pulumix.Output[*RemoteImageBuild]{ + OutputState: i.ToRemoteImageBuildPtrOutputWithContext(ctx).OutputState, + } +} + +type RemoteImageBuildOutput struct{ *pulumi.OutputState } + +func (RemoteImageBuildOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RemoteImageBuild)(nil)).Elem() +} + +func (o RemoteImageBuildOutput) ToRemoteImageBuildOutput() RemoteImageBuildOutput { + return o +} + +func (o RemoteImageBuildOutput) ToRemoteImageBuildOutputWithContext(ctx context.Context) RemoteImageBuildOutput { + return o +} + +func (o RemoteImageBuildOutput) ToRemoteImageBuildPtrOutput() RemoteImageBuildPtrOutput { + return o.ToRemoteImageBuildPtrOutputWithContext(context.Background()) +} + +func (o RemoteImageBuildOutput) ToRemoteImageBuildPtrOutputWithContext(ctx context.Context) RemoteImageBuildPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RemoteImageBuild) *RemoteImageBuild { + return &v + }).(RemoteImageBuildPtrOutput) +} + +func (o RemoteImageBuildOutput) ToOutput(ctx context.Context) pulumix.Output[RemoteImageBuild] { + return pulumix.Output[RemoteImageBuild]{ + OutputState: o.OutputState, + } +} + +// The configuration for the authentication +func (o RemoteImageBuildOutput) AuthConfigs() RemoteImageBuildAuthConfigArrayOutput { + return o.ApplyT(func(v RemoteImageBuild) []RemoteImageBuildAuthConfig { return v.AuthConfigs }).(RemoteImageBuildAuthConfigArrayOutput) +} + +// Set build-time variables +func (o RemoteImageBuildOutput) BuildArg() pulumi.StringMapOutput { + return o.ApplyT(func(v RemoteImageBuild) map[string]string { return v.BuildArg }).(pulumi.StringMapOutput) +} + +// Pairs for build-time variables in the form TODO +func (o RemoteImageBuildOutput) BuildArgs() pulumi.StringMapOutput { + return o.ApplyT(func(v RemoteImageBuild) map[string]string { return v.BuildArgs }).(pulumi.StringMapOutput) +} + +// BuildID is an optional identifier that can be passed together with the build request. The same identifier can be used to gracefully cancel the build with the cancel request. +func (o RemoteImageBuildOutput) BuildId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.BuildId }).(pulumi.StringPtrOutput) +} + +// Images to consider as cache sources +func (o RemoteImageBuildOutput) CacheFroms() pulumi.StringArrayOutput { + return o.ApplyT(func(v RemoteImageBuild) []string { return v.CacheFroms }).(pulumi.StringArrayOutput) +} + +// Optional parent cgroup for the container +func (o RemoteImageBuildOutput) CgroupParent() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.CgroupParent }).(pulumi.StringPtrOutput) +} + +// Value to specify the build context. Currently, only a `PATH` context is supported. You can use the helper function '${path.cwd}/context-dir'. Please see https://docs.docker.com/build/building/context/ for more information about build contexts. +func (o RemoteImageBuildOutput) Context() pulumi.StringOutput { + return o.ApplyT(func(v RemoteImageBuild) string { return v.Context }).(pulumi.StringOutput) +} + +// The length of a CPU period in microseconds +func (o RemoteImageBuildOutput) CpuPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *int { return v.CpuPeriod }).(pulumi.IntPtrOutput) +} + +// Microseconds of CPU time that the container can get in a CPU period +func (o RemoteImageBuildOutput) CpuQuota() pulumi.IntPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *int { return v.CpuQuota }).(pulumi.IntPtrOutput) +} + +// CPUs in which to allow execution (e.g., `0-3`, `0`, `1`) +func (o RemoteImageBuildOutput) CpuSetCpus() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.CpuSetCpus }).(pulumi.StringPtrOutput) +} + +// MEMs in which to allow execution (`0-3`, `0`, `1`) +func (o RemoteImageBuildOutput) CpuSetMems() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.CpuSetMems }).(pulumi.StringPtrOutput) +} + +// CPU shares (relative weight) +func (o RemoteImageBuildOutput) CpuShares() pulumi.IntPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *int { return v.CpuShares }).(pulumi.IntPtrOutput) +} + +// Name of the Dockerfile. Defaults to `Dockerfile`. +func (o RemoteImageBuildOutput) Dockerfile() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.Dockerfile }).(pulumi.StringPtrOutput) +} + +// A list of hostnames/IP mappings to add to the container’s /etc/hosts file. Specified in the form ["hostname:IP"] +func (o RemoteImageBuildOutput) ExtraHosts() pulumi.StringArrayOutput { + return o.ApplyT(func(v RemoteImageBuild) []string { return v.ExtraHosts }).(pulumi.StringArrayOutput) +} + +// Always remove intermediate containers +func (o RemoteImageBuildOutput) ForceRemove() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *bool { return v.ForceRemove }).(pulumi.BoolPtrOutput) +} + +// Isolation represents the isolation technology of a container. The supported values are +func (o RemoteImageBuildOutput) Isolation() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.Isolation }).(pulumi.StringPtrOutput) +} + +// Set metadata for an image +func (o RemoteImageBuildOutput) Label() pulumi.StringMapOutput { + return o.ApplyT(func(v RemoteImageBuild) map[string]string { return v.Label }).(pulumi.StringMapOutput) +} + +// User-defined key/value metadata +func (o RemoteImageBuildOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v RemoteImageBuild) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +} + +// Set memory limit for build +func (o RemoteImageBuildOutput) Memory() pulumi.IntPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *int { return v.Memory }).(pulumi.IntPtrOutput) +} + +// Total memory (memory + swap), -1 to enable unlimited swap +func (o RemoteImageBuildOutput) MemorySwap() pulumi.IntPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *int { return v.MemorySwap }).(pulumi.IntPtrOutput) +} + +// Set the networking mode for the RUN instructions during build +func (o RemoteImageBuildOutput) NetworkMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.NetworkMode }).(pulumi.StringPtrOutput) +} + +// Do not use the cache when building the image +func (o RemoteImageBuildOutput) NoCache() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *bool { return v.NoCache }).(pulumi.BoolPtrOutput) +} + +// Set platform if server is multi-platform capable +func (o RemoteImageBuildOutput) Platform() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.Platform }).(pulumi.StringPtrOutput) +} + +// Attempt to pull the image even if an older image exists locally +func (o RemoteImageBuildOutput) PullParent() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *bool { return v.PullParent }).(pulumi.BoolPtrOutput) +} + +// A Git repository URI or HTTP/HTTPS context URI +func (o RemoteImageBuildOutput) RemoteContext() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.RemoteContext }).(pulumi.StringPtrOutput) +} + +// Remove intermediate containers after a successful build. Defaults to `true`. +func (o RemoteImageBuildOutput) Remove() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *bool { return v.Remove }).(pulumi.BoolPtrOutput) +} + +// The security options +func (o RemoteImageBuildOutput) SecurityOpts() pulumi.StringArrayOutput { + return o.ApplyT(func(v RemoteImageBuild) []string { return v.SecurityOpts }).(pulumi.StringArrayOutput) +} + +// Set an ID for the build session +func (o RemoteImageBuildOutput) SessionId() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.SessionId }).(pulumi.StringPtrOutput) +} + +// Size of /dev/shm in bytes. The size must be greater than 0 +func (o RemoteImageBuildOutput) ShmSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *int { return v.ShmSize }).(pulumi.IntPtrOutput) +} + +// If true the new layers are squashed into a new image with a single new layer +func (o RemoteImageBuildOutput) Squash() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *bool { return v.Squash }).(pulumi.BoolPtrOutput) +} + +// Suppress the build output and print image ID on success +func (o RemoteImageBuildOutput) SuppressOutput() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *bool { return v.SuppressOutput }).(pulumi.BoolPtrOutput) +} + +// Name and optionally a tag in the 'name:tag' format +func (o RemoteImageBuildOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v RemoteImageBuild) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + +// Set the target build stage to build +func (o RemoteImageBuildOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.Target }).(pulumi.StringPtrOutput) +} + +// Configuration for ulimits +func (o RemoteImageBuildOutput) Ulimits() RemoteImageBuildUlimitArrayOutput { + return o.ApplyT(func(v RemoteImageBuild) []RemoteImageBuildUlimit { return v.Ulimits }).(RemoteImageBuildUlimitArrayOutput) +} + +// Version of the underlying builder to use +func (o RemoteImageBuildOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuild) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type RemoteImageBuildPtrOutput struct{ *pulumi.OutputState } + +func (RemoteImageBuildPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RemoteImageBuild)(nil)).Elem() +} + +func (o RemoteImageBuildPtrOutput) ToRemoteImageBuildPtrOutput() RemoteImageBuildPtrOutput { + return o +} + +func (o RemoteImageBuildPtrOutput) ToRemoteImageBuildPtrOutputWithContext(ctx context.Context) RemoteImageBuildPtrOutput { + return o +} + +func (o RemoteImageBuildPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*RemoteImageBuild] { + return pulumix.Output[*RemoteImageBuild]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageBuildPtrOutput) Elem() RemoteImageBuildOutput { + return o.ApplyT(func(v *RemoteImageBuild) RemoteImageBuild { + if v != nil { + return *v + } + var ret RemoteImageBuild + return ret + }).(RemoteImageBuildOutput) +} + +// The configuration for the authentication +func (o RemoteImageBuildPtrOutput) AuthConfigs() RemoteImageBuildAuthConfigArrayOutput { + return o.ApplyT(func(v *RemoteImageBuild) []RemoteImageBuildAuthConfig { + if v == nil { + return nil + } + return v.AuthConfigs + }).(RemoteImageBuildAuthConfigArrayOutput) +} + +// Set build-time variables +func (o RemoteImageBuildPtrOutput) BuildArg() pulumi.StringMapOutput { + return o.ApplyT(func(v *RemoteImageBuild) map[string]string { + if v == nil { + return nil + } + return v.BuildArg + }).(pulumi.StringMapOutput) +} + +// Pairs for build-time variables in the form TODO +func (o RemoteImageBuildPtrOutput) BuildArgs() pulumi.StringMapOutput { + return o.ApplyT(func(v *RemoteImageBuild) map[string]string { + if v == nil { + return nil + } + return v.BuildArgs + }).(pulumi.StringMapOutput) +} + +// BuildID is an optional identifier that can be passed together with the build request. The same identifier can be used to gracefully cancel the build with the cancel request. +func (o RemoteImageBuildPtrOutput) BuildId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.BuildId + }).(pulumi.StringPtrOutput) +} + +// Images to consider as cache sources +func (o RemoteImageBuildPtrOutput) CacheFroms() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RemoteImageBuild) []string { + if v == nil { + return nil + } + return v.CacheFroms + }).(pulumi.StringArrayOutput) +} + +// Optional parent cgroup for the container +func (o RemoteImageBuildPtrOutput) CgroupParent() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.CgroupParent + }).(pulumi.StringPtrOutput) +} + +// Value to specify the build context. Currently, only a `PATH` context is supported. You can use the helper function '${path.cwd}/context-dir'. Please see https://docs.docker.com/build/building/context/ for more information about build contexts. +func (o RemoteImageBuildPtrOutput) Context() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return &v.Context + }).(pulumi.StringPtrOutput) +} + +// The length of a CPU period in microseconds +func (o RemoteImageBuildPtrOutput) CpuPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *int { + if v == nil { + return nil + } + return v.CpuPeriod + }).(pulumi.IntPtrOutput) +} + +// Microseconds of CPU time that the container can get in a CPU period +func (o RemoteImageBuildPtrOutput) CpuQuota() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *int { + if v == nil { + return nil + } + return v.CpuQuota + }).(pulumi.IntPtrOutput) +} + +// CPUs in which to allow execution (e.g., `0-3`, `0`, `1`) +func (o RemoteImageBuildPtrOutput) CpuSetCpus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.CpuSetCpus + }).(pulumi.StringPtrOutput) +} + +// MEMs in which to allow execution (`0-3`, `0`, `1`) +func (o RemoteImageBuildPtrOutput) CpuSetMems() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.CpuSetMems + }).(pulumi.StringPtrOutput) +} + +// CPU shares (relative weight) +func (o RemoteImageBuildPtrOutput) CpuShares() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *int { + if v == nil { + return nil + } + return v.CpuShares + }).(pulumi.IntPtrOutput) +} + +// Name of the Dockerfile. Defaults to `Dockerfile`. +func (o RemoteImageBuildPtrOutput) Dockerfile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.Dockerfile + }).(pulumi.StringPtrOutput) +} + +// A list of hostnames/IP mappings to add to the container’s /etc/hosts file. Specified in the form ["hostname:IP"] +func (o RemoteImageBuildPtrOutput) ExtraHosts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RemoteImageBuild) []string { + if v == nil { + return nil + } + return v.ExtraHosts + }).(pulumi.StringArrayOutput) +} + +// Always remove intermediate containers +func (o RemoteImageBuildPtrOutput) ForceRemove() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *bool { + if v == nil { + return nil + } + return v.ForceRemove + }).(pulumi.BoolPtrOutput) +} + +// Isolation represents the isolation technology of a container. The supported values are +func (o RemoteImageBuildPtrOutput) Isolation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.Isolation + }).(pulumi.StringPtrOutput) +} + +// Set metadata for an image +func (o RemoteImageBuildPtrOutput) Label() pulumi.StringMapOutput { + return o.ApplyT(func(v *RemoteImageBuild) map[string]string { + if v == nil { + return nil + } + return v.Label + }).(pulumi.StringMapOutput) +} + +// User-defined key/value metadata +func (o RemoteImageBuildPtrOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *RemoteImageBuild) map[string]string { + if v == nil { + return nil + } + return v.Labels + }).(pulumi.StringMapOutput) +} + +// Set memory limit for build +func (o RemoteImageBuildPtrOutput) Memory() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *int { + if v == nil { + return nil + } + return v.Memory + }).(pulumi.IntPtrOutput) +} + +// Total memory (memory + swap), -1 to enable unlimited swap +func (o RemoteImageBuildPtrOutput) MemorySwap() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *int { + if v == nil { + return nil + } + return v.MemorySwap + }).(pulumi.IntPtrOutput) +} + +// Set the networking mode for the RUN instructions during build +func (o RemoteImageBuildPtrOutput) NetworkMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.NetworkMode + }).(pulumi.StringPtrOutput) +} + +// Do not use the cache when building the image +func (o RemoteImageBuildPtrOutput) NoCache() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *bool { + if v == nil { + return nil + } + return v.NoCache + }).(pulumi.BoolPtrOutput) +} + +// Set platform if server is multi-platform capable +func (o RemoteImageBuildPtrOutput) Platform() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.Platform + }).(pulumi.StringPtrOutput) +} + +// Attempt to pull the image even if an older image exists locally +func (o RemoteImageBuildPtrOutput) PullParent() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *bool { + if v == nil { + return nil + } + return v.PullParent + }).(pulumi.BoolPtrOutput) +} + +// A Git repository URI or HTTP/HTTPS context URI +func (o RemoteImageBuildPtrOutput) RemoteContext() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.RemoteContext + }).(pulumi.StringPtrOutput) +} + +// Remove intermediate containers after a successful build. Defaults to `true`. +func (o RemoteImageBuildPtrOutput) Remove() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *bool { + if v == nil { + return nil + } + return v.Remove + }).(pulumi.BoolPtrOutput) +} + +// The security options +func (o RemoteImageBuildPtrOutput) SecurityOpts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RemoteImageBuild) []string { + if v == nil { + return nil + } + return v.SecurityOpts + }).(pulumi.StringArrayOutput) +} + +// Set an ID for the build session +func (o RemoteImageBuildPtrOutput) SessionId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.SessionId + }).(pulumi.StringPtrOutput) +} + +// Size of /dev/shm in bytes. The size must be greater than 0 +func (o RemoteImageBuildPtrOutput) ShmSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *int { + if v == nil { + return nil + } + return v.ShmSize + }).(pulumi.IntPtrOutput) +} + +// If true the new layers are squashed into a new image with a single new layer +func (o RemoteImageBuildPtrOutput) Squash() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *bool { + if v == nil { + return nil + } + return v.Squash + }).(pulumi.BoolPtrOutput) +} + +// Suppress the build output and print image ID on success +func (o RemoteImageBuildPtrOutput) SuppressOutput() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *bool { + if v == nil { + return nil + } + return v.SuppressOutput + }).(pulumi.BoolPtrOutput) +} + +// Name and optionally a tag in the 'name:tag' format +func (o RemoteImageBuildPtrOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RemoteImageBuild) []string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringArrayOutput) +} + +// Set the target build stage to build +func (o RemoteImageBuildPtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.Target + }).(pulumi.StringPtrOutput) +} + +// Configuration for ulimits +func (o RemoteImageBuildPtrOutput) Ulimits() RemoteImageBuildUlimitArrayOutput { + return o.ApplyT(func(v *RemoteImageBuild) []RemoteImageBuildUlimit { + if v == nil { + return nil + } + return v.Ulimits + }).(RemoteImageBuildUlimitArrayOutput) +} + +// Version of the underlying builder to use +func (o RemoteImageBuildPtrOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImageBuild) *string { + if v == nil { + return nil + } + return v.Version + }).(pulumi.StringPtrOutput) +} + +type RemoteImageBuildAuthConfig struct { + Auth *string `pulumi:"auth"` + Email *string `pulumi:"email"` + HostName string `pulumi:"hostName"` + IdentityToken *string `pulumi:"identityToken"` + Password *string `pulumi:"password"` + RegistryToken *string `pulumi:"registryToken"` + ServerAddress *string `pulumi:"serverAddress"` + UserName *string `pulumi:"userName"` +} + +// RemoteImageBuildAuthConfigInput is an input type that accepts RemoteImageBuildAuthConfigArgs and RemoteImageBuildAuthConfigOutput values. +// You can construct a concrete instance of `RemoteImageBuildAuthConfigInput` via: +// +// RemoteImageBuildAuthConfigArgs{...} +type RemoteImageBuildAuthConfigInput interface { + pulumi.Input + + ToRemoteImageBuildAuthConfigOutput() RemoteImageBuildAuthConfigOutput + ToRemoteImageBuildAuthConfigOutputWithContext(context.Context) RemoteImageBuildAuthConfigOutput +} + +type RemoteImageBuildAuthConfigArgs struct { + Auth pulumi.StringPtrInput `pulumi:"auth"` + Email pulumi.StringPtrInput `pulumi:"email"` + HostName pulumi.StringInput `pulumi:"hostName"` + IdentityToken pulumi.StringPtrInput `pulumi:"identityToken"` + Password pulumi.StringPtrInput `pulumi:"password"` + RegistryToken pulumi.StringPtrInput `pulumi:"registryToken"` + ServerAddress pulumi.StringPtrInput `pulumi:"serverAddress"` + UserName pulumi.StringPtrInput `pulumi:"userName"` +} + +func (RemoteImageBuildAuthConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RemoteImageBuildAuthConfig)(nil)).Elem() +} + +func (i RemoteImageBuildAuthConfigArgs) ToRemoteImageBuildAuthConfigOutput() RemoteImageBuildAuthConfigOutput { + return i.ToRemoteImageBuildAuthConfigOutputWithContext(context.Background()) +} + +func (i RemoteImageBuildAuthConfigArgs) ToRemoteImageBuildAuthConfigOutputWithContext(ctx context.Context) RemoteImageBuildAuthConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildAuthConfigOutput) +} + +func (i RemoteImageBuildAuthConfigArgs) ToOutput(ctx context.Context) pulumix.Output[RemoteImageBuildAuthConfig] { + return pulumix.Output[RemoteImageBuildAuthConfig]{ + OutputState: i.ToRemoteImageBuildAuthConfigOutputWithContext(ctx).OutputState, + } +} + +// RemoteImageBuildAuthConfigArrayInput is an input type that accepts RemoteImageBuildAuthConfigArray and RemoteImageBuildAuthConfigArrayOutput values. +// You can construct a concrete instance of `RemoteImageBuildAuthConfigArrayInput` via: +// +// RemoteImageBuildAuthConfigArray{ RemoteImageBuildAuthConfigArgs{...} } +type RemoteImageBuildAuthConfigArrayInput interface { + pulumi.Input + + ToRemoteImageBuildAuthConfigArrayOutput() RemoteImageBuildAuthConfigArrayOutput + ToRemoteImageBuildAuthConfigArrayOutputWithContext(context.Context) RemoteImageBuildAuthConfigArrayOutput +} + +type RemoteImageBuildAuthConfigArray []RemoteImageBuildAuthConfigInput + +func (RemoteImageBuildAuthConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RemoteImageBuildAuthConfig)(nil)).Elem() +} + +func (i RemoteImageBuildAuthConfigArray) ToRemoteImageBuildAuthConfigArrayOutput() RemoteImageBuildAuthConfigArrayOutput { + return i.ToRemoteImageBuildAuthConfigArrayOutputWithContext(context.Background()) +} + +func (i RemoteImageBuildAuthConfigArray) ToRemoteImageBuildAuthConfigArrayOutputWithContext(ctx context.Context) RemoteImageBuildAuthConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildAuthConfigArrayOutput) +} + +func (i RemoteImageBuildAuthConfigArray) ToOutput(ctx context.Context) pulumix.Output[[]RemoteImageBuildAuthConfig] { + return pulumix.Output[[]RemoteImageBuildAuthConfig]{ + OutputState: i.ToRemoteImageBuildAuthConfigArrayOutputWithContext(ctx).OutputState, + } +} + +type RemoteImageBuildAuthConfigOutput struct{ *pulumi.OutputState } + +func (RemoteImageBuildAuthConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RemoteImageBuildAuthConfig)(nil)).Elem() +} + +func (o RemoteImageBuildAuthConfigOutput) ToRemoteImageBuildAuthConfigOutput() RemoteImageBuildAuthConfigOutput { + return o +} + +func (o RemoteImageBuildAuthConfigOutput) ToRemoteImageBuildAuthConfigOutputWithContext(ctx context.Context) RemoteImageBuildAuthConfigOutput { + return o +} + +func (o RemoteImageBuildAuthConfigOutput) ToOutput(ctx context.Context) pulumix.Output[RemoteImageBuildAuthConfig] { + return pulumix.Output[RemoteImageBuildAuthConfig]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageBuildAuthConfigOutput) Auth() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.Auth }).(pulumi.StringPtrOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.Email }).(pulumi.StringPtrOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) HostName() pulumi.StringOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) string { return v.HostName }).(pulumi.StringOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) IdentityToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.IdentityToken }).(pulumi.StringPtrOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.Password }).(pulumi.StringPtrOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) RegistryToken() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.RegistryToken }).(pulumi.StringPtrOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) ServerAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.ServerAddress }).(pulumi.StringPtrOutput) +} + +func (o RemoteImageBuildAuthConfigOutput) UserName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RemoteImageBuildAuthConfig) *string { return v.UserName }).(pulumi.StringPtrOutput) +} + +type RemoteImageBuildAuthConfigArrayOutput struct{ *pulumi.OutputState } + +func (RemoteImageBuildAuthConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RemoteImageBuildAuthConfig)(nil)).Elem() +} + +func (o RemoteImageBuildAuthConfigArrayOutput) ToRemoteImageBuildAuthConfigArrayOutput() RemoteImageBuildAuthConfigArrayOutput { + return o +} + +func (o RemoteImageBuildAuthConfigArrayOutput) ToRemoteImageBuildAuthConfigArrayOutputWithContext(ctx context.Context) RemoteImageBuildAuthConfigArrayOutput { + return o +} + +func (o RemoteImageBuildAuthConfigArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]RemoteImageBuildAuthConfig] { + return pulumix.Output[[]RemoteImageBuildAuthConfig]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageBuildAuthConfigArrayOutput) Index(i pulumi.IntInput) RemoteImageBuildAuthConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RemoteImageBuildAuthConfig { + return vs[0].([]RemoteImageBuildAuthConfig)[vs[1].(int)] + }).(RemoteImageBuildAuthConfigOutput) +} + +type RemoteImageBuildUlimit struct { + Hard int `pulumi:"hard"` + // The name of the Docker image, including any tags or SHA256 repo digests. + Name string `pulumi:"name"` + Soft int `pulumi:"soft"` +} + +// RemoteImageBuildUlimitInput is an input type that accepts RemoteImageBuildUlimitArgs and RemoteImageBuildUlimitOutput values. +// You can construct a concrete instance of `RemoteImageBuildUlimitInput` via: +// +// RemoteImageBuildUlimitArgs{...} +type RemoteImageBuildUlimitInput interface { + pulumi.Input + + ToRemoteImageBuildUlimitOutput() RemoteImageBuildUlimitOutput + ToRemoteImageBuildUlimitOutputWithContext(context.Context) RemoteImageBuildUlimitOutput +} + +type RemoteImageBuildUlimitArgs struct { + Hard pulumi.IntInput `pulumi:"hard"` + // The name of the Docker image, including any tags or SHA256 repo digests. + Name pulumi.StringInput `pulumi:"name"` + Soft pulumi.IntInput `pulumi:"soft"` +} + +func (RemoteImageBuildUlimitArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RemoteImageBuildUlimit)(nil)).Elem() +} + +func (i RemoteImageBuildUlimitArgs) ToRemoteImageBuildUlimitOutput() RemoteImageBuildUlimitOutput { + return i.ToRemoteImageBuildUlimitOutputWithContext(context.Background()) +} + +func (i RemoteImageBuildUlimitArgs) ToRemoteImageBuildUlimitOutputWithContext(ctx context.Context) RemoteImageBuildUlimitOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildUlimitOutput) +} + +func (i RemoteImageBuildUlimitArgs) ToOutput(ctx context.Context) pulumix.Output[RemoteImageBuildUlimit] { + return pulumix.Output[RemoteImageBuildUlimit]{ + OutputState: i.ToRemoteImageBuildUlimitOutputWithContext(ctx).OutputState, + } +} + +// RemoteImageBuildUlimitArrayInput is an input type that accepts RemoteImageBuildUlimitArray and RemoteImageBuildUlimitArrayOutput values. +// You can construct a concrete instance of `RemoteImageBuildUlimitArrayInput` via: +// +// RemoteImageBuildUlimitArray{ RemoteImageBuildUlimitArgs{...} } +type RemoteImageBuildUlimitArrayInput interface { + pulumi.Input + + ToRemoteImageBuildUlimitArrayOutput() RemoteImageBuildUlimitArrayOutput + ToRemoteImageBuildUlimitArrayOutputWithContext(context.Context) RemoteImageBuildUlimitArrayOutput +} + +type RemoteImageBuildUlimitArray []RemoteImageBuildUlimitInput + +func (RemoteImageBuildUlimitArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RemoteImageBuildUlimit)(nil)).Elem() +} + +func (i RemoteImageBuildUlimitArray) ToRemoteImageBuildUlimitArrayOutput() RemoteImageBuildUlimitArrayOutput { + return i.ToRemoteImageBuildUlimitArrayOutputWithContext(context.Background()) +} + +func (i RemoteImageBuildUlimitArray) ToRemoteImageBuildUlimitArrayOutputWithContext(ctx context.Context) RemoteImageBuildUlimitArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageBuildUlimitArrayOutput) +} + +func (i RemoteImageBuildUlimitArray) ToOutput(ctx context.Context) pulumix.Output[[]RemoteImageBuildUlimit] { + return pulumix.Output[[]RemoteImageBuildUlimit]{ + OutputState: i.ToRemoteImageBuildUlimitArrayOutputWithContext(ctx).OutputState, + } +} + +type RemoteImageBuildUlimitOutput struct{ *pulumi.OutputState } + +func (RemoteImageBuildUlimitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RemoteImageBuildUlimit)(nil)).Elem() +} + +func (o RemoteImageBuildUlimitOutput) ToRemoteImageBuildUlimitOutput() RemoteImageBuildUlimitOutput { + return o +} + +func (o RemoteImageBuildUlimitOutput) ToRemoteImageBuildUlimitOutputWithContext(ctx context.Context) RemoteImageBuildUlimitOutput { + return o +} + +func (o RemoteImageBuildUlimitOutput) ToOutput(ctx context.Context) pulumix.Output[RemoteImageBuildUlimit] { + return pulumix.Output[RemoteImageBuildUlimit]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageBuildUlimitOutput) Hard() pulumi.IntOutput { + return o.ApplyT(func(v RemoteImageBuildUlimit) int { return v.Hard }).(pulumi.IntOutput) +} + +// The name of the Docker image, including any tags or SHA256 repo digests. +func (o RemoteImageBuildUlimitOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RemoteImageBuildUlimit) string { return v.Name }).(pulumi.StringOutput) +} + +func (o RemoteImageBuildUlimitOutput) Soft() pulumi.IntOutput { + return o.ApplyT(func(v RemoteImageBuildUlimit) int { return v.Soft }).(pulumi.IntOutput) +} + +type RemoteImageBuildUlimitArrayOutput struct{ *pulumi.OutputState } + +func (RemoteImageBuildUlimitArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RemoteImageBuildUlimit)(nil)).Elem() +} + +func (o RemoteImageBuildUlimitArrayOutput) ToRemoteImageBuildUlimitArrayOutput() RemoteImageBuildUlimitArrayOutput { + return o +} + +func (o RemoteImageBuildUlimitArrayOutput) ToRemoteImageBuildUlimitArrayOutputWithContext(ctx context.Context) RemoteImageBuildUlimitArrayOutput { + return o +} + +func (o RemoteImageBuildUlimitArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]RemoteImageBuildUlimit] { + return pulumix.Output[[]RemoteImageBuildUlimit]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageBuildUlimitArrayOutput) Index(i pulumi.IntInput) RemoteImageBuildUlimitOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RemoteImageBuildUlimit { + return vs[0].([]RemoteImageBuildUlimit)[vs[1].(int)] + }).(RemoteImageBuildUlimitOutput) +} + +type SecretLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// SecretLabelInput is an input type that accepts SecretLabelArgs and SecretLabelOutput values. +// You can construct a concrete instance of `SecretLabelInput` via: +// +// SecretLabelArgs{...} +type SecretLabelInput interface { + pulumi.Input + + ToSecretLabelOutput() SecretLabelOutput + ToSecretLabelOutputWithContext(context.Context) SecretLabelOutput +} + +type SecretLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (SecretLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecretLabel)(nil)).Elem() +} + +func (i SecretLabelArgs) ToSecretLabelOutput() SecretLabelOutput { + return i.ToSecretLabelOutputWithContext(context.Background()) +} + +func (i SecretLabelArgs) ToSecretLabelOutputWithContext(ctx context.Context) SecretLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretLabelOutput) +} + +func (i SecretLabelArgs) ToOutput(ctx context.Context) pulumix.Output[SecretLabel] { + return pulumix.Output[SecretLabel]{ + OutputState: i.ToSecretLabelOutputWithContext(ctx).OutputState, + } +} + +// SecretLabelArrayInput is an input type that accepts SecretLabelArray and SecretLabelArrayOutput values. +// You can construct a concrete instance of `SecretLabelArrayInput` via: +// +// SecretLabelArray{ SecretLabelArgs{...} } +type SecretLabelArrayInput interface { + pulumi.Input + + ToSecretLabelArrayOutput() SecretLabelArrayOutput + ToSecretLabelArrayOutputWithContext(context.Context) SecretLabelArrayOutput +} + +type SecretLabelArray []SecretLabelInput + +func (SecretLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecretLabel)(nil)).Elem() +} + +func (i SecretLabelArray) ToSecretLabelArrayOutput() SecretLabelArrayOutput { + return i.ToSecretLabelArrayOutputWithContext(context.Background()) +} + +func (i SecretLabelArray) ToSecretLabelArrayOutputWithContext(ctx context.Context) SecretLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretLabelArrayOutput) +} + +func (i SecretLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]SecretLabel] { + return pulumix.Output[[]SecretLabel]{ + OutputState: i.ToSecretLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type SecretLabelOutput struct{ *pulumi.OutputState } + +func (SecretLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecretLabel)(nil)).Elem() +} + +func (o SecretLabelOutput) ToSecretLabelOutput() SecretLabelOutput { + return o +} + +func (o SecretLabelOutput) ToSecretLabelOutputWithContext(ctx context.Context) SecretLabelOutput { + return o +} + +func (o SecretLabelOutput) ToOutput(ctx context.Context) pulumix.Output[SecretLabel] { + return pulumix.Output[SecretLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o SecretLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v SecretLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o SecretLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v SecretLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type SecretLabelArrayOutput struct{ *pulumi.OutputState } + +func (SecretLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecretLabel)(nil)).Elem() +} + +func (o SecretLabelArrayOutput) ToSecretLabelArrayOutput() SecretLabelArrayOutput { + return o +} + +func (o SecretLabelArrayOutput) ToSecretLabelArrayOutputWithContext(ctx context.Context) SecretLabelArrayOutput { + return o +} + +func (o SecretLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]SecretLabel] { + return pulumix.Output[[]SecretLabel]{ + OutputState: o.OutputState, + } +} + +func (o SecretLabelArrayOutput) Index(i pulumi.IntInput) SecretLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecretLabel { + return vs[0].([]SecretLabel)[vs[1].(int)] + }).(SecretLabelOutput) +} + +type ServiceAuth struct { + // The password + Password *string `pulumi:"password"` + // The address of the server for the authentication + ServerAddress string `pulumi:"serverAddress"` + // The username + Username *string `pulumi:"username"` +} + +// ServiceAuthInput is an input type that accepts ServiceAuthArgs and ServiceAuthOutput values. +// You can construct a concrete instance of `ServiceAuthInput` via: +// +// ServiceAuthArgs{...} +type ServiceAuthInput interface { + pulumi.Input + + ToServiceAuthOutput() ServiceAuthOutput + ToServiceAuthOutputWithContext(context.Context) ServiceAuthOutput +} + +type ServiceAuthArgs struct { + // The password + Password pulumi.StringPtrInput `pulumi:"password"` + // The address of the server for the authentication + ServerAddress pulumi.StringInput `pulumi:"serverAddress"` + // The username + Username pulumi.StringPtrInput `pulumi:"username"` +} + +func (ServiceAuthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAuth)(nil)).Elem() +} + +func (i ServiceAuthArgs) ToServiceAuthOutput() ServiceAuthOutput { + return i.ToServiceAuthOutputWithContext(context.Background()) +} + +func (i ServiceAuthArgs) ToServiceAuthOutputWithContext(ctx context.Context) ServiceAuthOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAuthOutput) +} + +func (i ServiceAuthArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceAuth] { + return pulumix.Output[ServiceAuth]{ + OutputState: i.ToServiceAuthOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceAuthArgs) ToServiceAuthPtrOutput() ServiceAuthPtrOutput { + return i.ToServiceAuthPtrOutputWithContext(context.Background()) +} + +func (i ServiceAuthArgs) ToServiceAuthPtrOutputWithContext(ctx context.Context) ServiceAuthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAuthOutput).ToServiceAuthPtrOutputWithContext(ctx) +} + +// ServiceAuthPtrInput is an input type that accepts ServiceAuthArgs, ServiceAuthPtr and ServiceAuthPtrOutput values. +// You can construct a concrete instance of `ServiceAuthPtrInput` via: +// +// ServiceAuthArgs{...} +// +// or: +// +// nil +type ServiceAuthPtrInput interface { + pulumi.Input + + ToServiceAuthPtrOutput() ServiceAuthPtrOutput + ToServiceAuthPtrOutputWithContext(context.Context) ServiceAuthPtrOutput +} + +type serviceAuthPtrType ServiceAuthArgs + +func ServiceAuthPtr(v *ServiceAuthArgs) ServiceAuthPtrInput { + return (*serviceAuthPtrType)(v) +} + +func (*serviceAuthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceAuth)(nil)).Elem() +} + +func (i *serviceAuthPtrType) ToServiceAuthPtrOutput() ServiceAuthPtrOutput { + return i.ToServiceAuthPtrOutputWithContext(context.Background()) +} + +func (i *serviceAuthPtrType) ToServiceAuthPtrOutputWithContext(ctx context.Context) ServiceAuthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAuthPtrOutput) +} + +func (i *serviceAuthPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceAuth] { + return pulumix.Output[*ServiceAuth]{ + OutputState: i.ToServiceAuthPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceAuthOutput struct{ *pulumi.OutputState } + +func (ServiceAuthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAuth)(nil)).Elem() +} + +func (o ServiceAuthOutput) ToServiceAuthOutput() ServiceAuthOutput { + return o +} + +func (o ServiceAuthOutput) ToServiceAuthOutputWithContext(ctx context.Context) ServiceAuthOutput { + return o +} + +func (o ServiceAuthOutput) ToServiceAuthPtrOutput() ServiceAuthPtrOutput { + return o.ToServiceAuthPtrOutputWithContext(context.Background()) +} + +func (o ServiceAuthOutput) ToServiceAuthPtrOutputWithContext(ctx context.Context) ServiceAuthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceAuth) *ServiceAuth { + return &v + }).(ServiceAuthPtrOutput) +} + +func (o ServiceAuthOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceAuth] { + return pulumix.Output[ServiceAuth]{ + OutputState: o.OutputState, + } +} + +// The password +func (o ServiceAuthOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAuth) *string { return v.Password }).(pulumi.StringPtrOutput) +} + +// The address of the server for the authentication +func (o ServiceAuthOutput) ServerAddress() pulumi.StringOutput { + return o.ApplyT(func(v ServiceAuth) string { return v.ServerAddress }).(pulumi.StringOutput) +} + +// The username +func (o ServiceAuthOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAuth) *string { return v.Username }).(pulumi.StringPtrOutput) +} + +type ServiceAuthPtrOutput struct{ *pulumi.OutputState } + +func (ServiceAuthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceAuth)(nil)).Elem() +} + +func (o ServiceAuthPtrOutput) ToServiceAuthPtrOutput() ServiceAuthPtrOutput { + return o +} + +func (o ServiceAuthPtrOutput) ToServiceAuthPtrOutputWithContext(ctx context.Context) ServiceAuthPtrOutput { + return o +} + +func (o ServiceAuthPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceAuth] { + return pulumix.Output[*ServiceAuth]{ + OutputState: o.OutputState, + } +} + +func (o ServiceAuthPtrOutput) Elem() ServiceAuthOutput { + return o.ApplyT(func(v *ServiceAuth) ServiceAuth { + if v != nil { + return *v + } + var ret ServiceAuth + return ret + }).(ServiceAuthOutput) +} + +// The password +func (o ServiceAuthPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceAuth) *string { + if v == nil { + return nil + } + return v.Password + }).(pulumi.StringPtrOutput) +} + +// The address of the server for the authentication +func (o ServiceAuthPtrOutput) ServerAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceAuth) *string { + if v == nil { + return nil + } + return &v.ServerAddress + }).(pulumi.StringPtrOutput) +} + +// The username +func (o ServiceAuthPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceAuth) *string { + if v == nil { + return nil + } + return v.Username + }).(pulumi.StringPtrOutput) +} + +type ServiceConvergeConfig struct { + // The interval to check if the desired state is reached `(ms|s)`. Defaults to `7s`. + Delay *string `pulumi:"delay"` + // The timeout of the service to reach the desired state `(s|m)`. Defaults to `3m` + Timeout *string `pulumi:"timeout"` +} + +// ServiceConvergeConfigInput is an input type that accepts ServiceConvergeConfigArgs and ServiceConvergeConfigOutput values. +// You can construct a concrete instance of `ServiceConvergeConfigInput` via: +// +// ServiceConvergeConfigArgs{...} +type ServiceConvergeConfigInput interface { + pulumi.Input + + ToServiceConvergeConfigOutput() ServiceConvergeConfigOutput + ToServiceConvergeConfigOutputWithContext(context.Context) ServiceConvergeConfigOutput +} + +type ServiceConvergeConfigArgs struct { + // The interval to check if the desired state is reached `(ms|s)`. Defaults to `7s`. + Delay pulumi.StringPtrInput `pulumi:"delay"` + // The timeout of the service to reach the desired state `(s|m)`. Defaults to `3m` + Timeout pulumi.StringPtrInput `pulumi:"timeout"` +} + +func (ServiceConvergeConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceConvergeConfig)(nil)).Elem() +} + +func (i ServiceConvergeConfigArgs) ToServiceConvergeConfigOutput() ServiceConvergeConfigOutput { + return i.ToServiceConvergeConfigOutputWithContext(context.Background()) +} + +func (i ServiceConvergeConfigArgs) ToServiceConvergeConfigOutputWithContext(ctx context.Context) ServiceConvergeConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceConvergeConfigOutput) +} + +func (i ServiceConvergeConfigArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceConvergeConfig] { + return pulumix.Output[ServiceConvergeConfig]{ + OutputState: i.ToServiceConvergeConfigOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceConvergeConfigArgs) ToServiceConvergeConfigPtrOutput() ServiceConvergeConfigPtrOutput { + return i.ToServiceConvergeConfigPtrOutputWithContext(context.Background()) +} + +func (i ServiceConvergeConfigArgs) ToServiceConvergeConfigPtrOutputWithContext(ctx context.Context) ServiceConvergeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceConvergeConfigOutput).ToServiceConvergeConfigPtrOutputWithContext(ctx) +} + +// ServiceConvergeConfigPtrInput is an input type that accepts ServiceConvergeConfigArgs, ServiceConvergeConfigPtr and ServiceConvergeConfigPtrOutput values. +// You can construct a concrete instance of `ServiceConvergeConfigPtrInput` via: +// +// ServiceConvergeConfigArgs{...} +// +// or: +// +// nil +type ServiceConvergeConfigPtrInput interface { + pulumi.Input + + ToServiceConvergeConfigPtrOutput() ServiceConvergeConfigPtrOutput + ToServiceConvergeConfigPtrOutputWithContext(context.Context) ServiceConvergeConfigPtrOutput +} + +type serviceConvergeConfigPtrType ServiceConvergeConfigArgs + +func ServiceConvergeConfigPtr(v *ServiceConvergeConfigArgs) ServiceConvergeConfigPtrInput { + return (*serviceConvergeConfigPtrType)(v) +} + +func (*serviceConvergeConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceConvergeConfig)(nil)).Elem() +} + +func (i *serviceConvergeConfigPtrType) ToServiceConvergeConfigPtrOutput() ServiceConvergeConfigPtrOutput { + return i.ToServiceConvergeConfigPtrOutputWithContext(context.Background()) +} + +func (i *serviceConvergeConfigPtrType) ToServiceConvergeConfigPtrOutputWithContext(ctx context.Context) ServiceConvergeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceConvergeConfigPtrOutput) +} + +func (i *serviceConvergeConfigPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceConvergeConfig] { + return pulumix.Output[*ServiceConvergeConfig]{ + OutputState: i.ToServiceConvergeConfigPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceConvergeConfigOutput struct{ *pulumi.OutputState } + +func (ServiceConvergeConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceConvergeConfig)(nil)).Elem() +} + +func (o ServiceConvergeConfigOutput) ToServiceConvergeConfigOutput() ServiceConvergeConfigOutput { + return o +} + +func (o ServiceConvergeConfigOutput) ToServiceConvergeConfigOutputWithContext(ctx context.Context) ServiceConvergeConfigOutput { + return o +} + +func (o ServiceConvergeConfigOutput) ToServiceConvergeConfigPtrOutput() ServiceConvergeConfigPtrOutput { + return o.ToServiceConvergeConfigPtrOutputWithContext(context.Background()) +} + +func (o ServiceConvergeConfigOutput) ToServiceConvergeConfigPtrOutputWithContext(ctx context.Context) ServiceConvergeConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceConvergeConfig) *ServiceConvergeConfig { + return &v + }).(ServiceConvergeConfigPtrOutput) +} + +func (o ServiceConvergeConfigOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceConvergeConfig] { + return pulumix.Output[ServiceConvergeConfig]{ + OutputState: o.OutputState, + } +} + +// The interval to check if the desired state is reached `(ms|s)`. Defaults to `7s`. +func (o ServiceConvergeConfigOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceConvergeConfig) *string { return v.Delay }).(pulumi.StringPtrOutput) +} + +// The timeout of the service to reach the desired state `(s|m)`. Defaults to `3m` +func (o ServiceConvergeConfigOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceConvergeConfig) *string { return v.Timeout }).(pulumi.StringPtrOutput) +} + +type ServiceConvergeConfigPtrOutput struct{ *pulumi.OutputState } + +func (ServiceConvergeConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceConvergeConfig)(nil)).Elem() +} + +func (o ServiceConvergeConfigPtrOutput) ToServiceConvergeConfigPtrOutput() ServiceConvergeConfigPtrOutput { + return o +} + +func (o ServiceConvergeConfigPtrOutput) ToServiceConvergeConfigPtrOutputWithContext(ctx context.Context) ServiceConvergeConfigPtrOutput { + return o +} + +func (o ServiceConvergeConfigPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceConvergeConfig] { + return pulumix.Output[*ServiceConvergeConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceConvergeConfigPtrOutput) Elem() ServiceConvergeConfigOutput { + return o.ApplyT(func(v *ServiceConvergeConfig) ServiceConvergeConfig { + if v != nil { + return *v + } + var ret ServiceConvergeConfig + return ret + }).(ServiceConvergeConfigOutput) +} + +// The interval to check if the desired state is reached `(ms|s)`. Defaults to `7s`. +func (o ServiceConvergeConfigPtrOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceConvergeConfig) *string { + if v == nil { + return nil + } + return v.Delay + }).(pulumi.StringPtrOutput) +} + +// The timeout of the service to reach the desired state `(s|m)`. Defaults to `3m` +func (o ServiceConvergeConfigPtrOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceConvergeConfig) *string { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.StringPtrOutput) +} + +type ServiceEndpointSpec struct { + // The mode of resolution to use for internal load balancing between tasks + Mode *string `pulumi:"mode"` + // List of exposed ports that this service is accessible on from the outside. Ports can only be provided if 'vip' resolution mode is used + Ports []ServiceEndpointSpecPort `pulumi:"ports"` +} + +// ServiceEndpointSpecInput is an input type that accepts ServiceEndpointSpecArgs and ServiceEndpointSpecOutput values. +// You can construct a concrete instance of `ServiceEndpointSpecInput` via: +// +// ServiceEndpointSpecArgs{...} +type ServiceEndpointSpecInput interface { + pulumi.Input + + ToServiceEndpointSpecOutput() ServiceEndpointSpecOutput + ToServiceEndpointSpecOutputWithContext(context.Context) ServiceEndpointSpecOutput +} + +type ServiceEndpointSpecArgs struct { + // The mode of resolution to use for internal load balancing between tasks + Mode pulumi.StringPtrInput `pulumi:"mode"` + // List of exposed ports that this service is accessible on from the outside. Ports can only be provided if 'vip' resolution mode is used + Ports ServiceEndpointSpecPortArrayInput `pulumi:"ports"` +} + +func (ServiceEndpointSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointSpec)(nil)).Elem() +} + +func (i ServiceEndpointSpecArgs) ToServiceEndpointSpecOutput() ServiceEndpointSpecOutput { + return i.ToServiceEndpointSpecOutputWithContext(context.Background()) +} + +func (i ServiceEndpointSpecArgs) ToServiceEndpointSpecOutputWithContext(ctx context.Context) ServiceEndpointSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointSpecOutput) +} + +func (i ServiceEndpointSpecArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceEndpointSpec] { + return pulumix.Output[ServiceEndpointSpec]{ + OutputState: i.ToServiceEndpointSpecOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceEndpointSpecArgs) ToServiceEndpointSpecPtrOutput() ServiceEndpointSpecPtrOutput { + return i.ToServiceEndpointSpecPtrOutputWithContext(context.Background()) +} + +func (i ServiceEndpointSpecArgs) ToServiceEndpointSpecPtrOutputWithContext(ctx context.Context) ServiceEndpointSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointSpecOutput).ToServiceEndpointSpecPtrOutputWithContext(ctx) +} + +// ServiceEndpointSpecPtrInput is an input type that accepts ServiceEndpointSpecArgs, ServiceEndpointSpecPtr and ServiceEndpointSpecPtrOutput values. +// You can construct a concrete instance of `ServiceEndpointSpecPtrInput` via: +// +// ServiceEndpointSpecArgs{...} +// +// or: +// +// nil +type ServiceEndpointSpecPtrInput interface { + pulumi.Input + + ToServiceEndpointSpecPtrOutput() ServiceEndpointSpecPtrOutput + ToServiceEndpointSpecPtrOutputWithContext(context.Context) ServiceEndpointSpecPtrOutput +} + +type serviceEndpointSpecPtrType ServiceEndpointSpecArgs + +func ServiceEndpointSpecPtr(v *ServiceEndpointSpecArgs) ServiceEndpointSpecPtrInput { + return (*serviceEndpointSpecPtrType)(v) +} + +func (*serviceEndpointSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceEndpointSpec)(nil)).Elem() +} + +func (i *serviceEndpointSpecPtrType) ToServiceEndpointSpecPtrOutput() ServiceEndpointSpecPtrOutput { + return i.ToServiceEndpointSpecPtrOutputWithContext(context.Background()) +} + +func (i *serviceEndpointSpecPtrType) ToServiceEndpointSpecPtrOutputWithContext(ctx context.Context) ServiceEndpointSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointSpecPtrOutput) +} + +func (i *serviceEndpointSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceEndpointSpec] { + return pulumix.Output[*ServiceEndpointSpec]{ + OutputState: i.ToServiceEndpointSpecPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceEndpointSpecOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointSpec)(nil)).Elem() +} + +func (o ServiceEndpointSpecOutput) ToServiceEndpointSpecOutput() ServiceEndpointSpecOutput { + return o +} + +func (o ServiceEndpointSpecOutput) ToServiceEndpointSpecOutputWithContext(ctx context.Context) ServiceEndpointSpecOutput { + return o +} + +func (o ServiceEndpointSpecOutput) ToServiceEndpointSpecPtrOutput() ServiceEndpointSpecPtrOutput { + return o.ToServiceEndpointSpecPtrOutputWithContext(context.Background()) +} + +func (o ServiceEndpointSpecOutput) ToServiceEndpointSpecPtrOutputWithContext(ctx context.Context) ServiceEndpointSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceEndpointSpec) *ServiceEndpointSpec { + return &v + }).(ServiceEndpointSpecPtrOutput) +} + +func (o ServiceEndpointSpecOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceEndpointSpec] { + return pulumix.Output[ServiceEndpointSpec]{ + OutputState: o.OutputState, + } +} + +// The mode of resolution to use for internal load balancing between tasks +func (o ServiceEndpointSpecOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointSpec) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +// List of exposed ports that this service is accessible on from the outside. Ports can only be provided if 'vip' resolution mode is used +func (o ServiceEndpointSpecOutput) Ports() ServiceEndpointSpecPortArrayOutput { + return o.ApplyT(func(v ServiceEndpointSpec) []ServiceEndpointSpecPort { return v.Ports }).(ServiceEndpointSpecPortArrayOutput) +} + +type ServiceEndpointSpecPtrOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceEndpointSpec)(nil)).Elem() +} + +func (o ServiceEndpointSpecPtrOutput) ToServiceEndpointSpecPtrOutput() ServiceEndpointSpecPtrOutput { + return o +} + +func (o ServiceEndpointSpecPtrOutput) ToServiceEndpointSpecPtrOutputWithContext(ctx context.Context) ServiceEndpointSpecPtrOutput { + return o +} + +func (o ServiceEndpointSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceEndpointSpec] { + return pulumix.Output[*ServiceEndpointSpec]{ + OutputState: o.OutputState, + } +} + +func (o ServiceEndpointSpecPtrOutput) Elem() ServiceEndpointSpecOutput { + return o.ApplyT(func(v *ServiceEndpointSpec) ServiceEndpointSpec { + if v != nil { + return *v + } + var ret ServiceEndpointSpec + return ret + }).(ServiceEndpointSpecOutput) +} + +// The mode of resolution to use for internal load balancing between tasks +func (o ServiceEndpointSpecPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceEndpointSpec) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +// List of exposed ports that this service is accessible on from the outside. Ports can only be provided if 'vip' resolution mode is used +func (o ServiceEndpointSpecPtrOutput) Ports() ServiceEndpointSpecPortArrayOutput { + return o.ApplyT(func(v *ServiceEndpointSpec) []ServiceEndpointSpecPort { + if v == nil { + return nil + } + return v.Ports + }).(ServiceEndpointSpecPortArrayOutput) +} + +type ServiceEndpointSpecPort struct { + // Name of the service + Name *string `pulumi:"name"` + Protocol *string `pulumi:"protocol"` + PublishMode *string `pulumi:"publishMode"` + PublishedPort *int `pulumi:"publishedPort"` + TargetPort int `pulumi:"targetPort"` +} + +// ServiceEndpointSpecPortInput is an input type that accepts ServiceEndpointSpecPortArgs and ServiceEndpointSpecPortOutput values. +// You can construct a concrete instance of `ServiceEndpointSpecPortInput` via: +// +// ServiceEndpointSpecPortArgs{...} +type ServiceEndpointSpecPortInput interface { + pulumi.Input + + ToServiceEndpointSpecPortOutput() ServiceEndpointSpecPortOutput + ToServiceEndpointSpecPortOutputWithContext(context.Context) ServiceEndpointSpecPortOutput +} + +type ServiceEndpointSpecPortArgs struct { + // Name of the service + Name pulumi.StringPtrInput `pulumi:"name"` + Protocol pulumi.StringPtrInput `pulumi:"protocol"` + PublishMode pulumi.StringPtrInput `pulumi:"publishMode"` + PublishedPort pulumi.IntPtrInput `pulumi:"publishedPort"` + TargetPort pulumi.IntInput `pulumi:"targetPort"` +} + +func (ServiceEndpointSpecPortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointSpecPort)(nil)).Elem() +} + +func (i ServiceEndpointSpecPortArgs) ToServiceEndpointSpecPortOutput() ServiceEndpointSpecPortOutput { + return i.ToServiceEndpointSpecPortOutputWithContext(context.Background()) +} + +func (i ServiceEndpointSpecPortArgs) ToServiceEndpointSpecPortOutputWithContext(ctx context.Context) ServiceEndpointSpecPortOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointSpecPortOutput) +} + +func (i ServiceEndpointSpecPortArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceEndpointSpecPort] { + return pulumix.Output[ServiceEndpointSpecPort]{ + OutputState: i.ToServiceEndpointSpecPortOutputWithContext(ctx).OutputState, + } +} + +// ServiceEndpointSpecPortArrayInput is an input type that accepts ServiceEndpointSpecPortArray and ServiceEndpointSpecPortArrayOutput values. +// You can construct a concrete instance of `ServiceEndpointSpecPortArrayInput` via: +// +// ServiceEndpointSpecPortArray{ ServiceEndpointSpecPortArgs{...} } +type ServiceEndpointSpecPortArrayInput interface { + pulumi.Input + + ToServiceEndpointSpecPortArrayOutput() ServiceEndpointSpecPortArrayOutput + ToServiceEndpointSpecPortArrayOutputWithContext(context.Context) ServiceEndpointSpecPortArrayOutput +} + +type ServiceEndpointSpecPortArray []ServiceEndpointSpecPortInput + +func (ServiceEndpointSpecPortArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointSpecPort)(nil)).Elem() +} + +func (i ServiceEndpointSpecPortArray) ToServiceEndpointSpecPortArrayOutput() ServiceEndpointSpecPortArrayOutput { + return i.ToServiceEndpointSpecPortArrayOutputWithContext(context.Background()) +} + +func (i ServiceEndpointSpecPortArray) ToServiceEndpointSpecPortArrayOutputWithContext(ctx context.Context) ServiceEndpointSpecPortArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceEndpointSpecPortArrayOutput) +} + +func (i ServiceEndpointSpecPortArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceEndpointSpecPort] { + return pulumix.Output[[]ServiceEndpointSpecPort]{ + OutputState: i.ToServiceEndpointSpecPortArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceEndpointSpecPortOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointSpecPortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceEndpointSpecPort)(nil)).Elem() +} + +func (o ServiceEndpointSpecPortOutput) ToServiceEndpointSpecPortOutput() ServiceEndpointSpecPortOutput { + return o +} + +func (o ServiceEndpointSpecPortOutput) ToServiceEndpointSpecPortOutputWithContext(ctx context.Context) ServiceEndpointSpecPortOutput { + return o +} + +func (o ServiceEndpointSpecPortOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceEndpointSpecPort] { + return pulumix.Output[ServiceEndpointSpecPort]{ + OutputState: o.OutputState, + } +} + +// Name of the service +func (o ServiceEndpointSpecPortOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointSpecPort) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o ServiceEndpointSpecPortOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointSpecPort) *string { return v.Protocol }).(pulumi.StringPtrOutput) +} + +func (o ServiceEndpointSpecPortOutput) PublishMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceEndpointSpecPort) *string { return v.PublishMode }).(pulumi.StringPtrOutput) +} + +func (o ServiceEndpointSpecPortOutput) PublishedPort() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceEndpointSpecPort) *int { return v.PublishedPort }).(pulumi.IntPtrOutput) +} + +func (o ServiceEndpointSpecPortOutput) TargetPort() pulumi.IntOutput { + return o.ApplyT(func(v ServiceEndpointSpecPort) int { return v.TargetPort }).(pulumi.IntOutput) +} + +type ServiceEndpointSpecPortArrayOutput struct{ *pulumi.OutputState } + +func (ServiceEndpointSpecPortArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceEndpointSpecPort)(nil)).Elem() +} + +func (o ServiceEndpointSpecPortArrayOutput) ToServiceEndpointSpecPortArrayOutput() ServiceEndpointSpecPortArrayOutput { + return o +} + +func (o ServiceEndpointSpecPortArrayOutput) ToServiceEndpointSpecPortArrayOutputWithContext(ctx context.Context) ServiceEndpointSpecPortArrayOutput { + return o +} + +func (o ServiceEndpointSpecPortArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceEndpointSpecPort] { + return pulumix.Output[[]ServiceEndpointSpecPort]{ + OutputState: o.OutputState, + } +} + +func (o ServiceEndpointSpecPortArrayOutput) Index(i pulumi.IntInput) ServiceEndpointSpecPortOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceEndpointSpecPort { + return vs[0].([]ServiceEndpointSpecPort)[vs[1].(int)] + }).(ServiceEndpointSpecPortOutput) +} + +type ServiceLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// ServiceLabelInput is an input type that accepts ServiceLabelArgs and ServiceLabelOutput values. +// You can construct a concrete instance of `ServiceLabelInput` via: +// +// ServiceLabelArgs{...} +type ServiceLabelInput interface { + pulumi.Input + + ToServiceLabelOutput() ServiceLabelOutput + ToServiceLabelOutputWithContext(context.Context) ServiceLabelOutput +} + +type ServiceLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (ServiceLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceLabel)(nil)).Elem() +} + +func (i ServiceLabelArgs) ToServiceLabelOutput() ServiceLabelOutput { + return i.ToServiceLabelOutputWithContext(context.Background()) +} + +func (i ServiceLabelArgs) ToServiceLabelOutputWithContext(ctx context.Context) ServiceLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLabelOutput) +} + +func (i ServiceLabelArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceLabel] { + return pulumix.Output[ServiceLabel]{ + OutputState: i.ToServiceLabelOutputWithContext(ctx).OutputState, + } +} + +// ServiceLabelArrayInput is an input type that accepts ServiceLabelArray and ServiceLabelArrayOutput values. +// You can construct a concrete instance of `ServiceLabelArrayInput` via: +// +// ServiceLabelArray{ ServiceLabelArgs{...} } +type ServiceLabelArrayInput interface { + pulumi.Input + + ToServiceLabelArrayOutput() ServiceLabelArrayOutput + ToServiceLabelArrayOutputWithContext(context.Context) ServiceLabelArrayOutput +} + +type ServiceLabelArray []ServiceLabelInput + +func (ServiceLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceLabel)(nil)).Elem() +} + +func (i ServiceLabelArray) ToServiceLabelArrayOutput() ServiceLabelArrayOutput { + return i.ToServiceLabelArrayOutputWithContext(context.Background()) +} + +func (i ServiceLabelArray) ToServiceLabelArrayOutputWithContext(ctx context.Context) ServiceLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLabelArrayOutput) +} + +func (i ServiceLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceLabel] { + return pulumix.Output[[]ServiceLabel]{ + OutputState: i.ToServiceLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceLabelOutput struct{ *pulumi.OutputState } + +func (ServiceLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceLabel)(nil)).Elem() +} + +func (o ServiceLabelOutput) ToServiceLabelOutput() ServiceLabelOutput { + return o +} + +func (o ServiceLabelOutput) ToServiceLabelOutputWithContext(ctx context.Context) ServiceLabelOutput { + return o +} + +func (o ServiceLabelOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceLabel] { + return pulumix.Output[ServiceLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o ServiceLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ServiceLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o ServiceLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ServiceLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type ServiceLabelArrayOutput struct{ *pulumi.OutputState } + +func (ServiceLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceLabel)(nil)).Elem() +} + +func (o ServiceLabelArrayOutput) ToServiceLabelArrayOutput() ServiceLabelArrayOutput { + return o +} + +func (o ServiceLabelArrayOutput) ToServiceLabelArrayOutputWithContext(ctx context.Context) ServiceLabelArrayOutput { + return o +} + +func (o ServiceLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceLabel] { + return pulumix.Output[[]ServiceLabel]{ + OutputState: o.OutputState, + } +} + +func (o ServiceLabelArrayOutput) Index(i pulumi.IntInput) ServiceLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceLabel { + return vs[0].([]ServiceLabel)[vs[1].(int)] + }).(ServiceLabelOutput) +} + +type ServiceMode struct { + // The global service mode. Defaults to `false` + Global *bool `pulumi:"global"` + // The replicated service mode + Replicated *ServiceModeReplicated `pulumi:"replicated"` +} + +// ServiceModeInput is an input type that accepts ServiceModeArgs and ServiceModeOutput values. +// You can construct a concrete instance of `ServiceModeInput` via: +// +// ServiceModeArgs{...} +type ServiceModeInput interface { + pulumi.Input + + ToServiceModeOutput() ServiceModeOutput + ToServiceModeOutputWithContext(context.Context) ServiceModeOutput +} + +type ServiceModeArgs struct { + // The global service mode. Defaults to `false` + Global pulumi.BoolPtrInput `pulumi:"global"` + // The replicated service mode + Replicated ServiceModeReplicatedPtrInput `pulumi:"replicated"` +} + +func (ServiceModeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceMode)(nil)).Elem() +} + +func (i ServiceModeArgs) ToServiceModeOutput() ServiceModeOutput { + return i.ToServiceModeOutputWithContext(context.Background()) +} + +func (i ServiceModeArgs) ToServiceModeOutputWithContext(ctx context.Context) ServiceModeOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceModeOutput) +} + +func (i ServiceModeArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceMode] { + return pulumix.Output[ServiceMode]{ + OutputState: i.ToServiceModeOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceModeArgs) ToServiceModePtrOutput() ServiceModePtrOutput { + return i.ToServiceModePtrOutputWithContext(context.Background()) +} + +func (i ServiceModeArgs) ToServiceModePtrOutputWithContext(ctx context.Context) ServiceModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceModeOutput).ToServiceModePtrOutputWithContext(ctx) +} + +// ServiceModePtrInput is an input type that accepts ServiceModeArgs, ServiceModePtr and ServiceModePtrOutput values. +// You can construct a concrete instance of `ServiceModePtrInput` via: +// +// ServiceModeArgs{...} +// +// or: +// +// nil +type ServiceModePtrInput interface { + pulumi.Input + + ToServiceModePtrOutput() ServiceModePtrOutput + ToServiceModePtrOutputWithContext(context.Context) ServiceModePtrOutput +} + +type serviceModePtrType ServiceModeArgs + +func ServiceModePtr(v *ServiceModeArgs) ServiceModePtrInput { + return (*serviceModePtrType)(v) +} + +func (*serviceModePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceMode)(nil)).Elem() +} + +func (i *serviceModePtrType) ToServiceModePtrOutput() ServiceModePtrOutput { + return i.ToServiceModePtrOutputWithContext(context.Background()) +} + +func (i *serviceModePtrType) ToServiceModePtrOutputWithContext(ctx context.Context) ServiceModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceModePtrOutput) +} + +func (i *serviceModePtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceMode] { + return pulumix.Output[*ServiceMode]{ + OutputState: i.ToServiceModePtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceModeOutput struct{ *pulumi.OutputState } + +func (ServiceModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceMode)(nil)).Elem() +} + +func (o ServiceModeOutput) ToServiceModeOutput() ServiceModeOutput { + return o +} + +func (o ServiceModeOutput) ToServiceModeOutputWithContext(ctx context.Context) ServiceModeOutput { + return o +} + +func (o ServiceModeOutput) ToServiceModePtrOutput() ServiceModePtrOutput { + return o.ToServiceModePtrOutputWithContext(context.Background()) +} + +func (o ServiceModeOutput) ToServiceModePtrOutputWithContext(ctx context.Context) ServiceModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceMode) *ServiceMode { + return &v + }).(ServiceModePtrOutput) +} + +func (o ServiceModeOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceMode] { + return pulumix.Output[ServiceMode]{ + OutputState: o.OutputState, + } +} + +// The global service mode. Defaults to `false` +func (o ServiceModeOutput) Global() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceMode) *bool { return v.Global }).(pulumi.BoolPtrOutput) +} + +// The replicated service mode +func (o ServiceModeOutput) Replicated() ServiceModeReplicatedPtrOutput { + return o.ApplyT(func(v ServiceMode) *ServiceModeReplicated { return v.Replicated }).(ServiceModeReplicatedPtrOutput) +} + +type ServiceModePtrOutput struct{ *pulumi.OutputState } + +func (ServiceModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceMode)(nil)).Elem() +} + +func (o ServiceModePtrOutput) ToServiceModePtrOutput() ServiceModePtrOutput { + return o +} + +func (o ServiceModePtrOutput) ToServiceModePtrOutputWithContext(ctx context.Context) ServiceModePtrOutput { + return o +} + +func (o ServiceModePtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceMode] { + return pulumix.Output[*ServiceMode]{ + OutputState: o.OutputState, + } +} + +func (o ServiceModePtrOutput) Elem() ServiceModeOutput { + return o.ApplyT(func(v *ServiceMode) ServiceMode { + if v != nil { + return *v + } + var ret ServiceMode + return ret + }).(ServiceModeOutput) +} + +// The global service mode. Defaults to `false` +func (o ServiceModePtrOutput) Global() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceMode) *bool { + if v == nil { + return nil + } + return v.Global + }).(pulumi.BoolPtrOutput) +} + +// The replicated service mode +func (o ServiceModePtrOutput) Replicated() ServiceModeReplicatedPtrOutput { + return o.ApplyT(func(v *ServiceMode) *ServiceModeReplicated { + if v == nil { + return nil + } + return v.Replicated + }).(ServiceModeReplicatedPtrOutput) +} + +type ServiceModeReplicated struct { + Replicas *int `pulumi:"replicas"` +} + +// ServiceModeReplicatedInput is an input type that accepts ServiceModeReplicatedArgs and ServiceModeReplicatedOutput values. +// You can construct a concrete instance of `ServiceModeReplicatedInput` via: +// +// ServiceModeReplicatedArgs{...} +type ServiceModeReplicatedInput interface { + pulumi.Input + + ToServiceModeReplicatedOutput() ServiceModeReplicatedOutput + ToServiceModeReplicatedOutputWithContext(context.Context) ServiceModeReplicatedOutput +} + +type ServiceModeReplicatedArgs struct { + Replicas pulumi.IntPtrInput `pulumi:"replicas"` +} + +func (ServiceModeReplicatedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceModeReplicated)(nil)).Elem() +} + +func (i ServiceModeReplicatedArgs) ToServiceModeReplicatedOutput() ServiceModeReplicatedOutput { + return i.ToServiceModeReplicatedOutputWithContext(context.Background()) +} + +func (i ServiceModeReplicatedArgs) ToServiceModeReplicatedOutputWithContext(ctx context.Context) ServiceModeReplicatedOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceModeReplicatedOutput) +} + +func (i ServiceModeReplicatedArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceModeReplicated] { + return pulumix.Output[ServiceModeReplicated]{ + OutputState: i.ToServiceModeReplicatedOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceModeReplicatedArgs) ToServiceModeReplicatedPtrOutput() ServiceModeReplicatedPtrOutput { + return i.ToServiceModeReplicatedPtrOutputWithContext(context.Background()) +} + +func (i ServiceModeReplicatedArgs) ToServiceModeReplicatedPtrOutputWithContext(ctx context.Context) ServiceModeReplicatedPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceModeReplicatedOutput).ToServiceModeReplicatedPtrOutputWithContext(ctx) +} + +// ServiceModeReplicatedPtrInput is an input type that accepts ServiceModeReplicatedArgs, ServiceModeReplicatedPtr and ServiceModeReplicatedPtrOutput values. +// You can construct a concrete instance of `ServiceModeReplicatedPtrInput` via: +// +// ServiceModeReplicatedArgs{...} +// +// or: +// +// nil +type ServiceModeReplicatedPtrInput interface { + pulumi.Input + + ToServiceModeReplicatedPtrOutput() ServiceModeReplicatedPtrOutput + ToServiceModeReplicatedPtrOutputWithContext(context.Context) ServiceModeReplicatedPtrOutput +} + +type serviceModeReplicatedPtrType ServiceModeReplicatedArgs + +func ServiceModeReplicatedPtr(v *ServiceModeReplicatedArgs) ServiceModeReplicatedPtrInput { + return (*serviceModeReplicatedPtrType)(v) +} + +func (*serviceModeReplicatedPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceModeReplicated)(nil)).Elem() +} + +func (i *serviceModeReplicatedPtrType) ToServiceModeReplicatedPtrOutput() ServiceModeReplicatedPtrOutput { + return i.ToServiceModeReplicatedPtrOutputWithContext(context.Background()) +} + +func (i *serviceModeReplicatedPtrType) ToServiceModeReplicatedPtrOutputWithContext(ctx context.Context) ServiceModeReplicatedPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceModeReplicatedPtrOutput) +} + +func (i *serviceModeReplicatedPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceModeReplicated] { + return pulumix.Output[*ServiceModeReplicated]{ + OutputState: i.ToServiceModeReplicatedPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceModeReplicatedOutput struct{ *pulumi.OutputState } + +func (ServiceModeReplicatedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceModeReplicated)(nil)).Elem() +} + +func (o ServiceModeReplicatedOutput) ToServiceModeReplicatedOutput() ServiceModeReplicatedOutput { + return o +} + +func (o ServiceModeReplicatedOutput) ToServiceModeReplicatedOutputWithContext(ctx context.Context) ServiceModeReplicatedOutput { + return o +} + +func (o ServiceModeReplicatedOutput) ToServiceModeReplicatedPtrOutput() ServiceModeReplicatedPtrOutput { + return o.ToServiceModeReplicatedPtrOutputWithContext(context.Background()) +} + +func (o ServiceModeReplicatedOutput) ToServiceModeReplicatedPtrOutputWithContext(ctx context.Context) ServiceModeReplicatedPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceModeReplicated) *ServiceModeReplicated { + return &v + }).(ServiceModeReplicatedPtrOutput) +} + +func (o ServiceModeReplicatedOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceModeReplicated] { + return pulumix.Output[ServiceModeReplicated]{ + OutputState: o.OutputState, + } +} + +func (o ServiceModeReplicatedOutput) Replicas() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceModeReplicated) *int { return v.Replicas }).(pulumi.IntPtrOutput) +} + +type ServiceModeReplicatedPtrOutput struct{ *pulumi.OutputState } + +func (ServiceModeReplicatedPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceModeReplicated)(nil)).Elem() +} + +func (o ServiceModeReplicatedPtrOutput) ToServiceModeReplicatedPtrOutput() ServiceModeReplicatedPtrOutput { + return o +} + +func (o ServiceModeReplicatedPtrOutput) ToServiceModeReplicatedPtrOutputWithContext(ctx context.Context) ServiceModeReplicatedPtrOutput { + return o +} + +func (o ServiceModeReplicatedPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceModeReplicated] { + return pulumix.Output[*ServiceModeReplicated]{ + OutputState: o.OutputState, + } +} + +func (o ServiceModeReplicatedPtrOutput) Elem() ServiceModeReplicatedOutput { + return o.ApplyT(func(v *ServiceModeReplicated) ServiceModeReplicated { + if v != nil { + return *v + } + var ret ServiceModeReplicated + return ret + }).(ServiceModeReplicatedOutput) +} + +func (o ServiceModeReplicatedPtrOutput) Replicas() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceModeReplicated) *int { + if v == nil { + return nil + } + return v.Replicas + }).(pulumi.IntPtrOutput) +} + +type ServiceRollbackConfig struct { + // Delay between task rollbacks (ns|us|ms|s|m|h). Defaults to `0s`. + Delay *string `pulumi:"delay"` + // Action on rollback failure: pause | continue. Defaults to `pause`. + FailureAction *string `pulumi:"failureAction"` + // Failure rate to tolerate during a rollback. Defaults to `0.0`. + MaxFailureRatio *string `pulumi:"maxFailureRatio"` + // Duration after each task rollback to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. + Monitor *string `pulumi:"monitor"` + // Rollback order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. + Order *string `pulumi:"order"` + // Maximum number of tasks to be rollbacked in one iteration. Defaults to `1` + Parallelism *int `pulumi:"parallelism"` +} + +// ServiceRollbackConfigInput is an input type that accepts ServiceRollbackConfigArgs and ServiceRollbackConfigOutput values. +// You can construct a concrete instance of `ServiceRollbackConfigInput` via: +// +// ServiceRollbackConfigArgs{...} +type ServiceRollbackConfigInput interface { + pulumi.Input + + ToServiceRollbackConfigOutput() ServiceRollbackConfigOutput + ToServiceRollbackConfigOutputWithContext(context.Context) ServiceRollbackConfigOutput +} + +type ServiceRollbackConfigArgs struct { + // Delay between task rollbacks (ns|us|ms|s|m|h). Defaults to `0s`. + Delay pulumi.StringPtrInput `pulumi:"delay"` + // Action on rollback failure: pause | continue. Defaults to `pause`. + FailureAction pulumi.StringPtrInput `pulumi:"failureAction"` + // Failure rate to tolerate during a rollback. Defaults to `0.0`. + MaxFailureRatio pulumi.StringPtrInput `pulumi:"maxFailureRatio"` + // Duration after each task rollback to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. + Monitor pulumi.StringPtrInput `pulumi:"monitor"` + // Rollback order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. + Order pulumi.StringPtrInput `pulumi:"order"` + // Maximum number of tasks to be rollbacked in one iteration. Defaults to `1` + Parallelism pulumi.IntPtrInput `pulumi:"parallelism"` +} + +func (ServiceRollbackConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceRollbackConfig)(nil)).Elem() +} + +func (i ServiceRollbackConfigArgs) ToServiceRollbackConfigOutput() ServiceRollbackConfigOutput { + return i.ToServiceRollbackConfigOutputWithContext(context.Background()) +} + +func (i ServiceRollbackConfigArgs) ToServiceRollbackConfigOutputWithContext(ctx context.Context) ServiceRollbackConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceRollbackConfigOutput) +} + +func (i ServiceRollbackConfigArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceRollbackConfig] { + return pulumix.Output[ServiceRollbackConfig]{ + OutputState: i.ToServiceRollbackConfigOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceRollbackConfigArgs) ToServiceRollbackConfigPtrOutput() ServiceRollbackConfigPtrOutput { + return i.ToServiceRollbackConfigPtrOutputWithContext(context.Background()) +} + +func (i ServiceRollbackConfigArgs) ToServiceRollbackConfigPtrOutputWithContext(ctx context.Context) ServiceRollbackConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceRollbackConfigOutput).ToServiceRollbackConfigPtrOutputWithContext(ctx) +} + +// ServiceRollbackConfigPtrInput is an input type that accepts ServiceRollbackConfigArgs, ServiceRollbackConfigPtr and ServiceRollbackConfigPtrOutput values. +// You can construct a concrete instance of `ServiceRollbackConfigPtrInput` via: +// +// ServiceRollbackConfigArgs{...} +// +// or: +// +// nil +type ServiceRollbackConfigPtrInput interface { + pulumi.Input + + ToServiceRollbackConfigPtrOutput() ServiceRollbackConfigPtrOutput + ToServiceRollbackConfigPtrOutputWithContext(context.Context) ServiceRollbackConfigPtrOutput +} + +type serviceRollbackConfigPtrType ServiceRollbackConfigArgs + +func ServiceRollbackConfigPtr(v *ServiceRollbackConfigArgs) ServiceRollbackConfigPtrInput { + return (*serviceRollbackConfigPtrType)(v) +} + +func (*serviceRollbackConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceRollbackConfig)(nil)).Elem() +} + +func (i *serviceRollbackConfigPtrType) ToServiceRollbackConfigPtrOutput() ServiceRollbackConfigPtrOutput { + return i.ToServiceRollbackConfigPtrOutputWithContext(context.Background()) +} + +func (i *serviceRollbackConfigPtrType) ToServiceRollbackConfigPtrOutputWithContext(ctx context.Context) ServiceRollbackConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceRollbackConfigPtrOutput) +} + +func (i *serviceRollbackConfigPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceRollbackConfig] { + return pulumix.Output[*ServiceRollbackConfig]{ + OutputState: i.ToServiceRollbackConfigPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceRollbackConfigOutput struct{ *pulumi.OutputState } + +func (ServiceRollbackConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceRollbackConfig)(nil)).Elem() +} + +func (o ServiceRollbackConfigOutput) ToServiceRollbackConfigOutput() ServiceRollbackConfigOutput { + return o +} + +func (o ServiceRollbackConfigOutput) ToServiceRollbackConfigOutputWithContext(ctx context.Context) ServiceRollbackConfigOutput { + return o +} + +func (o ServiceRollbackConfigOutput) ToServiceRollbackConfigPtrOutput() ServiceRollbackConfigPtrOutput { + return o.ToServiceRollbackConfigPtrOutputWithContext(context.Background()) +} + +func (o ServiceRollbackConfigOutput) ToServiceRollbackConfigPtrOutputWithContext(ctx context.Context) ServiceRollbackConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceRollbackConfig) *ServiceRollbackConfig { + return &v + }).(ServiceRollbackConfigPtrOutput) +} + +func (o ServiceRollbackConfigOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceRollbackConfig] { + return pulumix.Output[ServiceRollbackConfig]{ + OutputState: o.OutputState, + } +} + +// Delay between task rollbacks (ns|us|ms|s|m|h). Defaults to `0s`. +func (o ServiceRollbackConfigOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceRollbackConfig) *string { return v.Delay }).(pulumi.StringPtrOutput) +} + +// Action on rollback failure: pause | continue. Defaults to `pause`. +func (o ServiceRollbackConfigOutput) FailureAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceRollbackConfig) *string { return v.FailureAction }).(pulumi.StringPtrOutput) +} + +// Failure rate to tolerate during a rollback. Defaults to `0.0`. +func (o ServiceRollbackConfigOutput) MaxFailureRatio() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceRollbackConfig) *string { return v.MaxFailureRatio }).(pulumi.StringPtrOutput) +} + +// Duration after each task rollback to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. +func (o ServiceRollbackConfigOutput) Monitor() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceRollbackConfig) *string { return v.Monitor }).(pulumi.StringPtrOutput) +} + +// Rollback order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. +func (o ServiceRollbackConfigOutput) Order() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceRollbackConfig) *string { return v.Order }).(pulumi.StringPtrOutput) +} + +// Maximum number of tasks to be rollbacked in one iteration. Defaults to `1` +func (o ServiceRollbackConfigOutput) Parallelism() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceRollbackConfig) *int { return v.Parallelism }).(pulumi.IntPtrOutput) +} + +type ServiceRollbackConfigPtrOutput struct{ *pulumi.OutputState } + +func (ServiceRollbackConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceRollbackConfig)(nil)).Elem() +} + +func (o ServiceRollbackConfigPtrOutput) ToServiceRollbackConfigPtrOutput() ServiceRollbackConfigPtrOutput { + return o +} + +func (o ServiceRollbackConfigPtrOutput) ToServiceRollbackConfigPtrOutputWithContext(ctx context.Context) ServiceRollbackConfigPtrOutput { + return o +} + +func (o ServiceRollbackConfigPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceRollbackConfig] { + return pulumix.Output[*ServiceRollbackConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceRollbackConfigPtrOutput) Elem() ServiceRollbackConfigOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) ServiceRollbackConfig { + if v != nil { + return *v + } + var ret ServiceRollbackConfig + return ret + }).(ServiceRollbackConfigOutput) +} + +// Delay between task rollbacks (ns|us|ms|s|m|h). Defaults to `0s`. +func (o ServiceRollbackConfigPtrOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) *string { + if v == nil { + return nil + } + return v.Delay + }).(pulumi.StringPtrOutput) +} + +// Action on rollback failure: pause | continue. Defaults to `pause`. +func (o ServiceRollbackConfigPtrOutput) FailureAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) *string { + if v == nil { + return nil + } + return v.FailureAction + }).(pulumi.StringPtrOutput) +} + +// Failure rate to tolerate during a rollback. Defaults to `0.0`. +func (o ServiceRollbackConfigPtrOutput) MaxFailureRatio() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) *string { + if v == nil { + return nil + } + return v.MaxFailureRatio + }).(pulumi.StringPtrOutput) +} + +// Duration after each task rollback to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. +func (o ServiceRollbackConfigPtrOutput) Monitor() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) *string { + if v == nil { + return nil + } + return v.Monitor + }).(pulumi.StringPtrOutput) +} + +// Rollback order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. +func (o ServiceRollbackConfigPtrOutput) Order() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) *string { + if v == nil { + return nil + } + return v.Order + }).(pulumi.StringPtrOutput) +} + +// Maximum number of tasks to be rollbacked in one iteration. Defaults to `1` +func (o ServiceRollbackConfigPtrOutput) Parallelism() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceRollbackConfig) *int { + if v == nil { + return nil + } + return v.Parallelism + }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpec struct { + // The spec for each container + ContainerSpec ServiceTaskSpecContainerSpec `pulumi:"containerSpec"` + // A counter that triggers an update even if no relevant parameters have been changed. See the [spec](https://github.com/docker/swarmkit/blob/master/api/specs.proto#L126). + ForceUpdate *int `pulumi:"forceUpdate"` + // Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified + LogDriver *ServiceTaskSpecLogDriver `pulumi:"logDriver"` + // The networks the container is attached to + NetworksAdvanceds []ServiceTaskSpecNetworksAdvanced `pulumi:"networksAdvanceds"` + // The placement preferences + Placement *ServiceTaskSpecPlacement `pulumi:"placement"` + // Resource requirements which apply to each individual container created as part of the service + Resources *ServiceTaskSpecResources `pulumi:"resources"` + // Specification for the restart policy which applies to containers created as part of this service. + RestartPolicy *ServiceTaskSpecRestartPolicy `pulumi:"restartPolicy"` + // Runtime is the type of runtime specified for the task executor. See the [types](https://github.com/moby/moby/blob/master/api/types/swarm/runtime.go). + Runtime *string `pulumi:"runtime"` +} + +// ServiceTaskSpecInput is an input type that accepts ServiceTaskSpecArgs and ServiceTaskSpecOutput values. +// You can construct a concrete instance of `ServiceTaskSpecInput` via: +// +// ServiceTaskSpecArgs{...} +type ServiceTaskSpecInput interface { + pulumi.Input + + ToServiceTaskSpecOutput() ServiceTaskSpecOutput + ToServiceTaskSpecOutputWithContext(context.Context) ServiceTaskSpecOutput +} + +type ServiceTaskSpecArgs struct { + // The spec for each container + ContainerSpec ServiceTaskSpecContainerSpecInput `pulumi:"containerSpec"` + // A counter that triggers an update even if no relevant parameters have been changed. See the [spec](https://github.com/docker/swarmkit/blob/master/api/specs.proto#L126). + ForceUpdate pulumi.IntPtrInput `pulumi:"forceUpdate"` + // Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified + LogDriver ServiceTaskSpecLogDriverPtrInput `pulumi:"logDriver"` + // The networks the container is attached to + NetworksAdvanceds ServiceTaskSpecNetworksAdvancedArrayInput `pulumi:"networksAdvanceds"` + // The placement preferences + Placement ServiceTaskSpecPlacementPtrInput `pulumi:"placement"` + // Resource requirements which apply to each individual container created as part of the service + Resources ServiceTaskSpecResourcesPtrInput `pulumi:"resources"` + // Specification for the restart policy which applies to containers created as part of this service. + RestartPolicy ServiceTaskSpecRestartPolicyPtrInput `pulumi:"restartPolicy"` + // Runtime is the type of runtime specified for the task executor. See the [types](https://github.com/moby/moby/blob/master/api/types/swarm/runtime.go). + Runtime pulumi.StringPtrInput `pulumi:"runtime"` +} + +func (ServiceTaskSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpec)(nil)).Elem() +} + +func (i ServiceTaskSpecArgs) ToServiceTaskSpecOutput() ServiceTaskSpecOutput { + return i.ToServiceTaskSpecOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecArgs) ToServiceTaskSpecOutputWithContext(ctx context.Context) ServiceTaskSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecOutput) +} + +func (i ServiceTaskSpecArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpec] { + return pulumix.Output[ServiceTaskSpec]{ + OutputState: i.ToServiceTaskSpecOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecArgs) ToServiceTaskSpecPtrOutput() ServiceTaskSpecPtrOutput { + return i.ToServiceTaskSpecPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecArgs) ToServiceTaskSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecOutput).ToServiceTaskSpecPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecPtrInput is an input type that accepts ServiceTaskSpecArgs, ServiceTaskSpecPtr and ServiceTaskSpecPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecPtrInput` via: +// +// ServiceTaskSpecArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecPtrInput interface { + pulumi.Input + + ToServiceTaskSpecPtrOutput() ServiceTaskSpecPtrOutput + ToServiceTaskSpecPtrOutputWithContext(context.Context) ServiceTaskSpecPtrOutput +} + +type serviceTaskSpecPtrType ServiceTaskSpecArgs + +func ServiceTaskSpecPtr(v *ServiceTaskSpecArgs) ServiceTaskSpecPtrInput { + return (*serviceTaskSpecPtrType)(v) +} + +func (*serviceTaskSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpec)(nil)).Elem() +} + +func (i *serviceTaskSpecPtrType) ToServiceTaskSpecPtrOutput() ServiceTaskSpecPtrOutput { + return i.ToServiceTaskSpecPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecPtrType) ToServiceTaskSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecPtrOutput) +} + +func (i *serviceTaskSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpec] { + return pulumix.Output[*ServiceTaskSpec]{ + OutputState: i.ToServiceTaskSpecPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpec)(nil)).Elem() +} + +func (o ServiceTaskSpecOutput) ToServiceTaskSpecOutput() ServiceTaskSpecOutput { + return o +} + +func (o ServiceTaskSpecOutput) ToServiceTaskSpecOutputWithContext(ctx context.Context) ServiceTaskSpecOutput { + return o +} + +func (o ServiceTaskSpecOutput) ToServiceTaskSpecPtrOutput() ServiceTaskSpecPtrOutput { + return o.ToServiceTaskSpecPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecOutput) ToServiceTaskSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpec) *ServiceTaskSpec { + return &v + }).(ServiceTaskSpecPtrOutput) +} + +func (o ServiceTaskSpecOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpec] { + return pulumix.Output[ServiceTaskSpec]{ + OutputState: o.OutputState, + } +} + +// The spec for each container +func (o ServiceTaskSpecOutput) ContainerSpec() ServiceTaskSpecContainerSpecOutput { + return o.ApplyT(func(v ServiceTaskSpec) ServiceTaskSpecContainerSpec { return v.ContainerSpec }).(ServiceTaskSpecContainerSpecOutput) +} + +// A counter that triggers an update even if no relevant parameters have been changed. See the [spec](https://github.com/docker/swarmkit/blob/master/api/specs.proto#L126). +func (o ServiceTaskSpecOutput) ForceUpdate() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpec) *int { return v.ForceUpdate }).(pulumi.IntPtrOutput) +} + +// Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified +func (o ServiceTaskSpecOutput) LogDriver() ServiceTaskSpecLogDriverPtrOutput { + return o.ApplyT(func(v ServiceTaskSpec) *ServiceTaskSpecLogDriver { return v.LogDriver }).(ServiceTaskSpecLogDriverPtrOutput) +} + +// The networks the container is attached to +func (o ServiceTaskSpecOutput) NetworksAdvanceds() ServiceTaskSpecNetworksAdvancedArrayOutput { + return o.ApplyT(func(v ServiceTaskSpec) []ServiceTaskSpecNetworksAdvanced { return v.NetworksAdvanceds }).(ServiceTaskSpecNetworksAdvancedArrayOutput) +} + +// The placement preferences +func (o ServiceTaskSpecOutput) Placement() ServiceTaskSpecPlacementPtrOutput { + return o.ApplyT(func(v ServiceTaskSpec) *ServiceTaskSpecPlacement { return v.Placement }).(ServiceTaskSpecPlacementPtrOutput) +} + +// Resource requirements which apply to each individual container created as part of the service +func (o ServiceTaskSpecOutput) Resources() ServiceTaskSpecResourcesPtrOutput { + return o.ApplyT(func(v ServiceTaskSpec) *ServiceTaskSpecResources { return v.Resources }).(ServiceTaskSpecResourcesPtrOutput) +} + +// Specification for the restart policy which applies to containers created as part of this service. +func (o ServiceTaskSpecOutput) RestartPolicy() ServiceTaskSpecRestartPolicyPtrOutput { + return o.ApplyT(func(v ServiceTaskSpec) *ServiceTaskSpecRestartPolicy { return v.RestartPolicy }).(ServiceTaskSpecRestartPolicyPtrOutput) +} + +// Runtime is the type of runtime specified for the task executor. See the [types](https://github.com/moby/moby/blob/master/api/types/swarm/runtime.go). +func (o ServiceTaskSpecOutput) Runtime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpec) *string { return v.Runtime }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpec)(nil)).Elem() +} + +func (o ServiceTaskSpecPtrOutput) ToServiceTaskSpecPtrOutput() ServiceTaskSpecPtrOutput { + return o +} + +func (o ServiceTaskSpecPtrOutput) ToServiceTaskSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPtrOutput { + return o +} + +func (o ServiceTaskSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpec] { + return pulumix.Output[*ServiceTaskSpec]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecPtrOutput) Elem() ServiceTaskSpecOutput { + return o.ApplyT(func(v *ServiceTaskSpec) ServiceTaskSpec { + if v != nil { + return *v + } + var ret ServiceTaskSpec + return ret + }).(ServiceTaskSpecOutput) +} + +// The spec for each container +func (o ServiceTaskSpecPtrOutput) ContainerSpec() ServiceTaskSpecContainerSpecPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *ServiceTaskSpecContainerSpec { + if v == nil { + return nil + } + return &v.ContainerSpec + }).(ServiceTaskSpecContainerSpecPtrOutput) +} + +// A counter that triggers an update even if no relevant parameters have been changed. See the [spec](https://github.com/docker/swarmkit/blob/master/api/specs.proto#L126). +func (o ServiceTaskSpecPtrOutput) ForceUpdate() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *int { + if v == nil { + return nil + } + return v.ForceUpdate + }).(pulumi.IntPtrOutput) +} + +// Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified +func (o ServiceTaskSpecPtrOutput) LogDriver() ServiceTaskSpecLogDriverPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *ServiceTaskSpecLogDriver { + if v == nil { + return nil + } + return v.LogDriver + }).(ServiceTaskSpecLogDriverPtrOutput) +} + +// The networks the container is attached to +func (o ServiceTaskSpecPtrOutput) NetworksAdvanceds() ServiceTaskSpecNetworksAdvancedArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpec) []ServiceTaskSpecNetworksAdvanced { + if v == nil { + return nil + } + return v.NetworksAdvanceds + }).(ServiceTaskSpecNetworksAdvancedArrayOutput) +} + +// The placement preferences +func (o ServiceTaskSpecPtrOutput) Placement() ServiceTaskSpecPlacementPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *ServiceTaskSpecPlacement { + if v == nil { + return nil + } + return v.Placement + }).(ServiceTaskSpecPlacementPtrOutput) +} + +// Resource requirements which apply to each individual container created as part of the service +func (o ServiceTaskSpecPtrOutput) Resources() ServiceTaskSpecResourcesPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *ServiceTaskSpecResources { + if v == nil { + return nil + } + return v.Resources + }).(ServiceTaskSpecResourcesPtrOutput) +} + +// Specification for the restart policy which applies to containers created as part of this service. +func (o ServiceTaskSpecPtrOutput) RestartPolicy() ServiceTaskSpecRestartPolicyPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *ServiceTaskSpecRestartPolicy { + if v == nil { + return nil + } + return v.RestartPolicy + }).(ServiceTaskSpecRestartPolicyPtrOutput) +} + +// Runtime is the type of runtime specified for the task executor. See the [types](https://github.com/moby/moby/blob/master/api/types/swarm/runtime.go). +func (o ServiceTaskSpecPtrOutput) Runtime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpec) *string { + if v == nil { + return nil + } + return v.Runtime + }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpec struct { + Args []string `pulumi:"args"` + Commands []string `pulumi:"commands"` + Configs []ServiceTaskSpecContainerSpecConfig `pulumi:"configs"` + Dir *string `pulumi:"dir"` + DnsConfig *ServiceTaskSpecContainerSpecDnsConfig `pulumi:"dnsConfig"` + Env map[string]string `pulumi:"env"` + Groups []string `pulumi:"groups"` + Healthcheck *ServiceTaskSpecContainerSpecHealthcheck `pulumi:"healthcheck"` + Hostname *string `pulumi:"hostname"` + Hosts []ServiceTaskSpecContainerSpecHost `pulumi:"hosts"` + Image string `pulumi:"image"` + Isolation *string `pulumi:"isolation"` + // User-defined key/value metadata + Labels []ServiceTaskSpecContainerSpecLabel `pulumi:"labels"` + Mounts []ServiceTaskSpecContainerSpecMount `pulumi:"mounts"` + Privileges *ServiceTaskSpecContainerSpecPrivileges `pulumi:"privileges"` + ReadOnly *bool `pulumi:"readOnly"` + Secrets []ServiceTaskSpecContainerSpecSecret `pulumi:"secrets"` + StopGracePeriod *string `pulumi:"stopGracePeriod"` + StopSignal *string `pulumi:"stopSignal"` + Sysctl map[string]interface{} `pulumi:"sysctl"` + User *string `pulumi:"user"` +} + +// ServiceTaskSpecContainerSpecInput is an input type that accepts ServiceTaskSpecContainerSpecArgs and ServiceTaskSpecContainerSpecOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecInput` via: +// +// ServiceTaskSpecContainerSpecArgs{...} +type ServiceTaskSpecContainerSpecInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecOutput() ServiceTaskSpecContainerSpecOutput + ToServiceTaskSpecContainerSpecOutputWithContext(context.Context) ServiceTaskSpecContainerSpecOutput +} + +type ServiceTaskSpecContainerSpecArgs struct { + Args pulumi.StringArrayInput `pulumi:"args"` + Commands pulumi.StringArrayInput `pulumi:"commands"` + Configs ServiceTaskSpecContainerSpecConfigArrayInput `pulumi:"configs"` + Dir pulumi.StringPtrInput `pulumi:"dir"` + DnsConfig ServiceTaskSpecContainerSpecDnsConfigPtrInput `pulumi:"dnsConfig"` + Env pulumi.StringMapInput `pulumi:"env"` + Groups pulumi.StringArrayInput `pulumi:"groups"` + Healthcheck ServiceTaskSpecContainerSpecHealthcheckPtrInput `pulumi:"healthcheck"` + Hostname pulumi.StringPtrInput `pulumi:"hostname"` + Hosts ServiceTaskSpecContainerSpecHostArrayInput `pulumi:"hosts"` + Image pulumi.StringInput `pulumi:"image"` + Isolation pulumi.StringPtrInput `pulumi:"isolation"` + // User-defined key/value metadata + Labels ServiceTaskSpecContainerSpecLabelArrayInput `pulumi:"labels"` + Mounts ServiceTaskSpecContainerSpecMountArrayInput `pulumi:"mounts"` + Privileges ServiceTaskSpecContainerSpecPrivilegesPtrInput `pulumi:"privileges"` + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + Secrets ServiceTaskSpecContainerSpecSecretArrayInput `pulumi:"secrets"` + StopGracePeriod pulumi.StringPtrInput `pulumi:"stopGracePeriod"` + StopSignal pulumi.StringPtrInput `pulumi:"stopSignal"` + Sysctl pulumi.MapInput `pulumi:"sysctl"` + User pulumi.StringPtrInput `pulumi:"user"` +} + +func (ServiceTaskSpecContainerSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpec)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecArgs) ToServiceTaskSpecContainerSpecOutput() ServiceTaskSpecContainerSpecOutput { + return i.ToServiceTaskSpecContainerSpecOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecArgs) ToServiceTaskSpecContainerSpecOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecOutput) +} + +func (i ServiceTaskSpecContainerSpecArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpec] { + return pulumix.Output[ServiceTaskSpecContainerSpec]{ + OutputState: i.ToServiceTaskSpecContainerSpecOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecArgs) ToServiceTaskSpecContainerSpecPtrOutput() ServiceTaskSpecContainerSpecPtrOutput { + return i.ToServiceTaskSpecContainerSpecPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecArgs) ToServiceTaskSpecContainerSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecOutput).ToServiceTaskSpecContainerSpecPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecPtrInput is an input type that accepts ServiceTaskSpecContainerSpecArgs, ServiceTaskSpecContainerSpecPtr and ServiceTaskSpecContainerSpecPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPtrInput` via: +// +// ServiceTaskSpecContainerSpecArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPtrOutput() ServiceTaskSpecContainerSpecPtrOutput + ToServiceTaskSpecContainerSpecPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPtrOutput +} + +type serviceTaskSpecContainerSpecPtrType ServiceTaskSpecContainerSpecArgs + +func ServiceTaskSpecContainerSpecPtr(v *ServiceTaskSpecContainerSpecArgs) ServiceTaskSpecContainerSpecPtrInput { + return (*serviceTaskSpecContainerSpecPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpec)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecPtrType) ToServiceTaskSpecContainerSpecPtrOutput() ServiceTaskSpecContainerSpecPtrOutput { + return i.ToServiceTaskSpecContainerSpecPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecPtrType) ToServiceTaskSpecContainerSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpec] { + return pulumix.Output[*ServiceTaskSpecContainerSpec]{ + OutputState: i.ToServiceTaskSpecContainerSpecPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpec)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecOutput) ToServiceTaskSpecContainerSpecOutput() ServiceTaskSpecContainerSpecOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecOutput) ToServiceTaskSpecContainerSpecOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecOutput) ToServiceTaskSpecContainerSpecPtrOutput() ServiceTaskSpecContainerSpecPtrOutput { + return o.ToServiceTaskSpecContainerSpecPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecOutput) ToServiceTaskSpecContainerSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpec { + return &v + }).(ServiceTaskSpecContainerSpecPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpec] { + return pulumix.Output[ServiceTaskSpecContainerSpec]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecOutput) Args() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []string { return v.Args }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Commands() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []string { return v.Commands }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Configs() ServiceTaskSpecContainerSpecConfigArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecConfig { return v.Configs }).(ServiceTaskSpecContainerSpecConfigArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Dir() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *string { return v.Dir }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) DnsConfig() ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpecDnsConfig { return v.DnsConfig }).(ServiceTaskSpecContainerSpecDnsConfigPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Env() pulumi.StringMapOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) map[string]string { return v.Env }).(pulumi.StringMapOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []string { return v.Groups }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Healthcheck() ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpecHealthcheck { return v.Healthcheck }).(ServiceTaskSpecContainerSpecHealthcheckPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *string { return v.Hostname }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Hosts() ServiceTaskSpecContainerSpecHostArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecHost { return v.Hosts }).(ServiceTaskSpecContainerSpecHostArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) string { return v.Image }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Isolation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *string { return v.Isolation }).(pulumi.StringPtrOutput) +} + +// User-defined key/value metadata +func (o ServiceTaskSpecContainerSpecOutput) Labels() ServiceTaskSpecContainerSpecLabelArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecLabel { return v.Labels }).(ServiceTaskSpecContainerSpecLabelArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Mounts() ServiceTaskSpecContainerSpecMountArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecMount { return v.Mounts }).(ServiceTaskSpecContainerSpecMountArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Privileges() ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpecPrivileges { return v.Privileges }).(ServiceTaskSpecContainerSpecPrivilegesPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Secrets() ServiceTaskSpecContainerSpecSecretArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecSecret { return v.Secrets }).(ServiceTaskSpecContainerSpecSecretArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) StopGracePeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *string { return v.StopGracePeriod }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) StopSignal() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *string { return v.StopSignal }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) Sysctl() pulumi.MapOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) map[string]interface{} { return v.Sysctl }).(pulumi.MapOutput) +} + +func (o ServiceTaskSpecContainerSpecOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpec) *string { return v.User }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpec)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) ToServiceTaskSpecContainerSpecPtrOutput() ServiceTaskSpecContainerSpecPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) ToServiceTaskSpecContainerSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpec] { + return pulumix.Output[*ServiceTaskSpecContainerSpec]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Elem() ServiceTaskSpecContainerSpecOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) ServiceTaskSpecContainerSpec { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpec + return ret + }).(ServiceTaskSpecContainerSpecOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Args() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []string { + if v == nil { + return nil + } + return v.Args + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Commands() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []string { + if v == nil { + return nil + } + return v.Commands + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Configs() ServiceTaskSpecContainerSpecConfigArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecConfig { + if v == nil { + return nil + } + return v.Configs + }).(ServiceTaskSpecContainerSpecConfigArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Dir() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return v.Dir + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) DnsConfig() ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpecDnsConfig { + if v == nil { + return nil + } + return v.DnsConfig + }).(ServiceTaskSpecContainerSpecDnsConfigPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Env() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) map[string]string { + if v == nil { + return nil + } + return v.Env + }).(pulumi.StringMapOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Groups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []string { + if v == nil { + return nil + } + return v.Groups + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Healthcheck() ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpecHealthcheck { + if v == nil { + return nil + } + return v.Healthcheck + }).(ServiceTaskSpecContainerSpecHealthcheckPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Hostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return v.Hostname + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Hosts() ServiceTaskSpecContainerSpecHostArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecHost { + if v == nil { + return nil + } + return v.Hosts + }).(ServiceTaskSpecContainerSpecHostArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Image() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return &v.Image + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Isolation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return v.Isolation + }).(pulumi.StringPtrOutput) +} + +// User-defined key/value metadata +func (o ServiceTaskSpecContainerSpecPtrOutput) Labels() ServiceTaskSpecContainerSpecLabelArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecLabel { + if v == nil { + return nil + } + return v.Labels + }).(ServiceTaskSpecContainerSpecLabelArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Mounts() ServiceTaskSpecContainerSpecMountArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecMount { + if v == nil { + return nil + } + return v.Mounts + }).(ServiceTaskSpecContainerSpecMountArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Privileges() ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *ServiceTaskSpecContainerSpecPrivileges { + if v == nil { + return nil + } + return v.Privileges + }).(ServiceTaskSpecContainerSpecPrivilegesPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *bool { + if v == nil { + return nil + } + return v.ReadOnly + }).(pulumi.BoolPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Secrets() ServiceTaskSpecContainerSpecSecretArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) []ServiceTaskSpecContainerSpecSecret { + if v == nil { + return nil + } + return v.Secrets + }).(ServiceTaskSpecContainerSpecSecretArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) StopGracePeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return v.StopGracePeriod + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) StopSignal() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return v.StopSignal + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) Sysctl() pulumi.MapOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) map[string]interface{} { + if v == nil { + return nil + } + return v.Sysctl + }).(pulumi.MapOutput) +} + +func (o ServiceTaskSpecContainerSpecPtrOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpec) *string { + if v == nil { + return nil + } + return v.User + }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecConfig struct { + ConfigId string `pulumi:"configId"` + ConfigName *string `pulumi:"configName"` + FileGid *string `pulumi:"fileGid"` + FileMode *int `pulumi:"fileMode"` + FileName string `pulumi:"fileName"` + FileUid *string `pulumi:"fileUid"` +} + +// ServiceTaskSpecContainerSpecConfigInput is an input type that accepts ServiceTaskSpecContainerSpecConfigArgs and ServiceTaskSpecContainerSpecConfigOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecConfigInput` via: +// +// ServiceTaskSpecContainerSpecConfigArgs{...} +type ServiceTaskSpecContainerSpecConfigInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecConfigOutput() ServiceTaskSpecContainerSpecConfigOutput + ToServiceTaskSpecContainerSpecConfigOutputWithContext(context.Context) ServiceTaskSpecContainerSpecConfigOutput +} + +type ServiceTaskSpecContainerSpecConfigArgs struct { + ConfigId pulumi.StringInput `pulumi:"configId"` + ConfigName pulumi.StringPtrInput `pulumi:"configName"` + FileGid pulumi.StringPtrInput `pulumi:"fileGid"` + FileMode pulumi.IntPtrInput `pulumi:"fileMode"` + FileName pulumi.StringInput `pulumi:"fileName"` + FileUid pulumi.StringPtrInput `pulumi:"fileUid"` +} + +func (ServiceTaskSpecContainerSpecConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecConfig)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecConfigArgs) ToServiceTaskSpecContainerSpecConfigOutput() ServiceTaskSpecContainerSpecConfigOutput { + return i.ToServiceTaskSpecContainerSpecConfigOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecConfigArgs) ToServiceTaskSpecContainerSpecConfigOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecConfigOutput) +} + +func (i ServiceTaskSpecContainerSpecConfigArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecConfig] { + return pulumix.Output[ServiceTaskSpecContainerSpecConfig]{ + OutputState: i.ToServiceTaskSpecContainerSpecConfigOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecContainerSpecConfigArrayInput is an input type that accepts ServiceTaskSpecContainerSpecConfigArray and ServiceTaskSpecContainerSpecConfigArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecConfigArrayInput` via: +// +// ServiceTaskSpecContainerSpecConfigArray{ ServiceTaskSpecContainerSpecConfigArgs{...} } +type ServiceTaskSpecContainerSpecConfigArrayInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecConfigArrayOutput() ServiceTaskSpecContainerSpecConfigArrayOutput + ToServiceTaskSpecContainerSpecConfigArrayOutputWithContext(context.Context) ServiceTaskSpecContainerSpecConfigArrayOutput +} + +type ServiceTaskSpecContainerSpecConfigArray []ServiceTaskSpecContainerSpecConfigInput + +func (ServiceTaskSpecContainerSpecConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecConfig)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecConfigArray) ToServiceTaskSpecContainerSpecConfigArrayOutput() ServiceTaskSpecContainerSpecConfigArrayOutput { + return i.ToServiceTaskSpecContainerSpecConfigArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecConfigArray) ToServiceTaskSpecContainerSpecConfigArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecConfigArrayOutput) +} + +func (i ServiceTaskSpecContainerSpecConfigArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecConfig] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecConfig]{ + OutputState: i.ToServiceTaskSpecContainerSpecConfigArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecConfigOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecConfig)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) ToServiceTaskSpecContainerSpecConfigOutput() ServiceTaskSpecContainerSpecConfigOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) ToServiceTaskSpecContainerSpecConfigOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecConfigOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecConfig] { + return pulumix.Output[ServiceTaskSpecContainerSpecConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) ConfigId() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecConfig) string { return v.ConfigId }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) ConfigName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecConfig) *string { return v.ConfigName }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) FileGid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecConfig) *string { return v.FileGid }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) FileMode() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecConfig) *int { return v.FileMode }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) FileName() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecConfig) string { return v.FileName }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecConfigOutput) FileUid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecConfig) *string { return v.FileUid }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecConfigArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecConfig)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecConfigArrayOutput) ToServiceTaskSpecContainerSpecConfigArrayOutput() ServiceTaskSpecContainerSpecConfigArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecConfigArrayOutput) ToServiceTaskSpecContainerSpecConfigArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecConfigArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecConfigArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecConfig] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecConfigArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecContainerSpecConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecContainerSpecConfig { + return vs[0].([]ServiceTaskSpecContainerSpecConfig)[vs[1].(int)] + }).(ServiceTaskSpecContainerSpecConfigOutput) +} + +type ServiceTaskSpecContainerSpecDnsConfig struct { + Nameservers []string `pulumi:"nameservers"` + Options []string `pulumi:"options"` + Searches []string `pulumi:"searches"` +} + +// ServiceTaskSpecContainerSpecDnsConfigInput is an input type that accepts ServiceTaskSpecContainerSpecDnsConfigArgs and ServiceTaskSpecContainerSpecDnsConfigOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecDnsConfigInput` via: +// +// ServiceTaskSpecContainerSpecDnsConfigArgs{...} +type ServiceTaskSpecContainerSpecDnsConfigInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecDnsConfigOutput() ServiceTaskSpecContainerSpecDnsConfigOutput + ToServiceTaskSpecContainerSpecDnsConfigOutputWithContext(context.Context) ServiceTaskSpecContainerSpecDnsConfigOutput +} + +type ServiceTaskSpecContainerSpecDnsConfigArgs struct { + Nameservers pulumi.StringArrayInput `pulumi:"nameservers"` + Options pulumi.StringArrayInput `pulumi:"options"` + Searches pulumi.StringArrayInput `pulumi:"searches"` +} + +func (ServiceTaskSpecContainerSpecDnsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecDnsConfig)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecDnsConfigArgs) ToServiceTaskSpecContainerSpecDnsConfigOutput() ServiceTaskSpecContainerSpecDnsConfigOutput { + return i.ToServiceTaskSpecContainerSpecDnsConfigOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecDnsConfigArgs) ToServiceTaskSpecContainerSpecDnsConfigOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecDnsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecDnsConfigOutput) +} + +func (i ServiceTaskSpecContainerSpecDnsConfigArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecDnsConfig] { + return pulumix.Output[ServiceTaskSpecContainerSpecDnsConfig]{ + OutputState: i.ToServiceTaskSpecContainerSpecDnsConfigOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecDnsConfigArgs) ToServiceTaskSpecContainerSpecDnsConfigPtrOutput() ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return i.ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecDnsConfigArgs) ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecDnsConfigOutput).ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecDnsConfigPtrInput is an input type that accepts ServiceTaskSpecContainerSpecDnsConfigArgs, ServiceTaskSpecContainerSpecDnsConfigPtr and ServiceTaskSpecContainerSpecDnsConfigPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecDnsConfigPtrInput` via: +// +// ServiceTaskSpecContainerSpecDnsConfigArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecDnsConfigPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecDnsConfigPtrOutput() ServiceTaskSpecContainerSpecDnsConfigPtrOutput + ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecDnsConfigPtrOutput +} + +type serviceTaskSpecContainerSpecDnsConfigPtrType ServiceTaskSpecContainerSpecDnsConfigArgs + +func ServiceTaskSpecContainerSpecDnsConfigPtr(v *ServiceTaskSpecContainerSpecDnsConfigArgs) ServiceTaskSpecContainerSpecDnsConfigPtrInput { + return (*serviceTaskSpecContainerSpecDnsConfigPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecDnsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecDnsConfig)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecDnsConfigPtrType) ToServiceTaskSpecContainerSpecDnsConfigPtrOutput() ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return i.ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecDnsConfigPtrType) ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecDnsConfigPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecDnsConfigPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecDnsConfig] { + return pulumix.Output[*ServiceTaskSpecContainerSpecDnsConfig]{ + OutputState: i.ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecDnsConfigOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecDnsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecDnsConfig)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) ToServiceTaskSpecContainerSpecDnsConfigOutput() ServiceTaskSpecContainerSpecDnsConfigOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) ToServiceTaskSpecContainerSpecDnsConfigOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecDnsConfigOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) ToServiceTaskSpecContainerSpecDnsConfigPtrOutput() ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return o.ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecDnsConfig) *ServiceTaskSpecContainerSpecDnsConfig { + return &v + }).(ServiceTaskSpecContainerSpecDnsConfigPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecDnsConfig] { + return pulumix.Output[ServiceTaskSpecContainerSpecDnsConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) Nameservers() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecDnsConfig) []string { return v.Nameservers }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) Options() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecDnsConfig) []string { return v.Options }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigOutput) Searches() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecDnsConfig) []string { return v.Searches }).(pulumi.StringArrayOutput) +} + +type ServiceTaskSpecContainerSpecDnsConfigPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecDnsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecDnsConfig)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) ToServiceTaskSpecContainerSpecDnsConfigPtrOutput() ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) ToServiceTaskSpecContainerSpecDnsConfigPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecDnsConfigPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecDnsConfig] { + return pulumix.Output[*ServiceTaskSpecContainerSpecDnsConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) Elem() ServiceTaskSpecContainerSpecDnsConfigOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecDnsConfig) ServiceTaskSpecContainerSpecDnsConfig { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecDnsConfig + return ret + }).(ServiceTaskSpecContainerSpecDnsConfigOutput) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) Nameservers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecDnsConfig) []string { + if v == nil { + return nil + } + return v.Nameservers + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) Options() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecDnsConfig) []string { + if v == nil { + return nil + } + return v.Options + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecDnsConfigPtrOutput) Searches() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecDnsConfig) []string { + if v == nil { + return nil + } + return v.Searches + }).(pulumi.StringArrayOutput) +} + +type ServiceTaskSpecContainerSpecHealthcheck struct { + Interval *string `pulumi:"interval"` + Retries *int `pulumi:"retries"` + StartPeriod *string `pulumi:"startPeriod"` + Tests []string `pulumi:"tests"` + Timeout *string `pulumi:"timeout"` +} + +// ServiceTaskSpecContainerSpecHealthcheckInput is an input type that accepts ServiceTaskSpecContainerSpecHealthcheckArgs and ServiceTaskSpecContainerSpecHealthcheckOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecHealthcheckInput` via: +// +// ServiceTaskSpecContainerSpecHealthcheckArgs{...} +type ServiceTaskSpecContainerSpecHealthcheckInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecHealthcheckOutput() ServiceTaskSpecContainerSpecHealthcheckOutput + ToServiceTaskSpecContainerSpecHealthcheckOutputWithContext(context.Context) ServiceTaskSpecContainerSpecHealthcheckOutput +} + +type ServiceTaskSpecContainerSpecHealthcheckArgs struct { + Interval pulumi.StringPtrInput `pulumi:"interval"` + Retries pulumi.IntPtrInput `pulumi:"retries"` + StartPeriod pulumi.StringPtrInput `pulumi:"startPeriod"` + Tests pulumi.StringArrayInput `pulumi:"tests"` + Timeout pulumi.StringPtrInput `pulumi:"timeout"` +} + +func (ServiceTaskSpecContainerSpecHealthcheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecHealthcheck)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecHealthcheckArgs) ToServiceTaskSpecContainerSpecHealthcheckOutput() ServiceTaskSpecContainerSpecHealthcheckOutput { + return i.ToServiceTaskSpecContainerSpecHealthcheckOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecHealthcheckArgs) ToServiceTaskSpecContainerSpecHealthcheckOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHealthcheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecHealthcheckOutput) +} + +func (i ServiceTaskSpecContainerSpecHealthcheckArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecHealthcheck] { + return pulumix.Output[ServiceTaskSpecContainerSpecHealthcheck]{ + OutputState: i.ToServiceTaskSpecContainerSpecHealthcheckOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecHealthcheckArgs) ToServiceTaskSpecContainerSpecHealthcheckPtrOutput() ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return i.ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecHealthcheckArgs) ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecHealthcheckOutput).ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecHealthcheckPtrInput is an input type that accepts ServiceTaskSpecContainerSpecHealthcheckArgs, ServiceTaskSpecContainerSpecHealthcheckPtr and ServiceTaskSpecContainerSpecHealthcheckPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecHealthcheckPtrInput` via: +// +// ServiceTaskSpecContainerSpecHealthcheckArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecHealthcheckPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecHealthcheckPtrOutput() ServiceTaskSpecContainerSpecHealthcheckPtrOutput + ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecHealthcheckPtrOutput +} + +type serviceTaskSpecContainerSpecHealthcheckPtrType ServiceTaskSpecContainerSpecHealthcheckArgs + +func ServiceTaskSpecContainerSpecHealthcheckPtr(v *ServiceTaskSpecContainerSpecHealthcheckArgs) ServiceTaskSpecContainerSpecHealthcheckPtrInput { + return (*serviceTaskSpecContainerSpecHealthcheckPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecHealthcheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecHealthcheck)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecHealthcheckPtrType) ToServiceTaskSpecContainerSpecHealthcheckPtrOutput() ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return i.ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecHealthcheckPtrType) ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecHealthcheckPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecHealthcheckPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecHealthcheck] { + return pulumix.Output[*ServiceTaskSpecContainerSpecHealthcheck]{ + OutputState: i.ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecHealthcheckOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecHealthcheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecHealthcheck)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) ToServiceTaskSpecContainerSpecHealthcheckOutput() ServiceTaskSpecContainerSpecHealthcheckOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) ToServiceTaskSpecContainerSpecHealthcheckOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHealthcheckOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) ToServiceTaskSpecContainerSpecHealthcheckPtrOutput() ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return o.ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecHealthcheck) *ServiceTaskSpecContainerSpecHealthcheck { + return &v + }).(ServiceTaskSpecContainerSpecHealthcheckPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecHealthcheck] { + return pulumix.Output[ServiceTaskSpecContainerSpecHealthcheck]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHealthcheck) *string { return v.Interval }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) Retries() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHealthcheck) *int { return v.Retries }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) StartPeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHealthcheck) *string { return v.StartPeriod }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) Tests() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHealthcheck) []string { return v.Tests }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHealthcheck) *string { return v.Timeout }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecHealthcheckPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecHealthcheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecHealthcheck)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) ToServiceTaskSpecContainerSpecHealthcheckPtrOutput() ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) ToServiceTaskSpecContainerSpecHealthcheckPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHealthcheckPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecHealthcheck] { + return pulumix.Output[*ServiceTaskSpecContainerSpecHealthcheck]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) Elem() ServiceTaskSpecContainerSpecHealthcheckOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecHealthcheck) ServiceTaskSpecContainerSpecHealthcheck { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecHealthcheck + return ret + }).(ServiceTaskSpecContainerSpecHealthcheckOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) Interval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecHealthcheck) *string { + if v == nil { + return nil + } + return v.Interval + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) Retries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecHealthcheck) *int { + if v == nil { + return nil + } + return v.Retries + }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) StartPeriod() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecHealthcheck) *string { + if v == nil { + return nil + } + return v.StartPeriod + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) Tests() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecHealthcheck) []string { + if v == nil { + return nil + } + return v.Tests + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecHealthcheckPtrOutput) Timeout() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecHealthcheck) *string { + if v == nil { + return nil + } + return v.Timeout + }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecHost struct { + Host string `pulumi:"host"` + Ip string `pulumi:"ip"` +} + +// ServiceTaskSpecContainerSpecHostInput is an input type that accepts ServiceTaskSpecContainerSpecHostArgs and ServiceTaskSpecContainerSpecHostOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecHostInput` via: +// +// ServiceTaskSpecContainerSpecHostArgs{...} +type ServiceTaskSpecContainerSpecHostInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecHostOutput() ServiceTaskSpecContainerSpecHostOutput + ToServiceTaskSpecContainerSpecHostOutputWithContext(context.Context) ServiceTaskSpecContainerSpecHostOutput +} + +type ServiceTaskSpecContainerSpecHostArgs struct { + Host pulumi.StringInput `pulumi:"host"` + Ip pulumi.StringInput `pulumi:"ip"` +} + +func (ServiceTaskSpecContainerSpecHostArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecHost)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecHostArgs) ToServiceTaskSpecContainerSpecHostOutput() ServiceTaskSpecContainerSpecHostOutput { + return i.ToServiceTaskSpecContainerSpecHostOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecHostArgs) ToServiceTaskSpecContainerSpecHostOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHostOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecHostOutput) +} + +func (i ServiceTaskSpecContainerSpecHostArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecHost] { + return pulumix.Output[ServiceTaskSpecContainerSpecHost]{ + OutputState: i.ToServiceTaskSpecContainerSpecHostOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecContainerSpecHostArrayInput is an input type that accepts ServiceTaskSpecContainerSpecHostArray and ServiceTaskSpecContainerSpecHostArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecHostArrayInput` via: +// +// ServiceTaskSpecContainerSpecHostArray{ ServiceTaskSpecContainerSpecHostArgs{...} } +type ServiceTaskSpecContainerSpecHostArrayInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecHostArrayOutput() ServiceTaskSpecContainerSpecHostArrayOutput + ToServiceTaskSpecContainerSpecHostArrayOutputWithContext(context.Context) ServiceTaskSpecContainerSpecHostArrayOutput +} + +type ServiceTaskSpecContainerSpecHostArray []ServiceTaskSpecContainerSpecHostInput + +func (ServiceTaskSpecContainerSpecHostArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecHost)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecHostArray) ToServiceTaskSpecContainerSpecHostArrayOutput() ServiceTaskSpecContainerSpecHostArrayOutput { + return i.ToServiceTaskSpecContainerSpecHostArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecHostArray) ToServiceTaskSpecContainerSpecHostArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHostArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecHostArrayOutput) +} + +func (i ServiceTaskSpecContainerSpecHostArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecHost] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecHost]{ + OutputState: i.ToServiceTaskSpecContainerSpecHostArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecHostOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecHostOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecHost)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecHostOutput) ToServiceTaskSpecContainerSpecHostOutput() ServiceTaskSpecContainerSpecHostOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHostOutput) ToServiceTaskSpecContainerSpecHostOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHostOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHostOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecHost] { + return pulumix.Output[ServiceTaskSpecContainerSpecHost]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecHostOutput) Host() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHost) string { return v.Host }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecHostOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecHost) string { return v.Ip }).(pulumi.StringOutput) +} + +type ServiceTaskSpecContainerSpecHostArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecHostArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecHost)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecHostArrayOutput) ToServiceTaskSpecContainerSpecHostArrayOutput() ServiceTaskSpecContainerSpecHostArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHostArrayOutput) ToServiceTaskSpecContainerSpecHostArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecHostArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecHostArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecHost] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecHost]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecHostArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecContainerSpecHostOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecContainerSpecHost { + return vs[0].([]ServiceTaskSpecContainerSpecHost)[vs[1].(int)] + }).(ServiceTaskSpecContainerSpecHostOutput) +} + +type ServiceTaskSpecContainerSpecLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// ServiceTaskSpecContainerSpecLabelInput is an input type that accepts ServiceTaskSpecContainerSpecLabelArgs and ServiceTaskSpecContainerSpecLabelOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecLabelInput` via: +// +// ServiceTaskSpecContainerSpecLabelArgs{...} +type ServiceTaskSpecContainerSpecLabelInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecLabelOutput() ServiceTaskSpecContainerSpecLabelOutput + ToServiceTaskSpecContainerSpecLabelOutputWithContext(context.Context) ServiceTaskSpecContainerSpecLabelOutput +} + +type ServiceTaskSpecContainerSpecLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (ServiceTaskSpecContainerSpecLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecLabel)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecLabelArgs) ToServiceTaskSpecContainerSpecLabelOutput() ServiceTaskSpecContainerSpecLabelOutput { + return i.ToServiceTaskSpecContainerSpecLabelOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecLabelArgs) ToServiceTaskSpecContainerSpecLabelOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecLabelOutput) +} + +func (i ServiceTaskSpecContainerSpecLabelArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecLabel] { + return pulumix.Output[ServiceTaskSpecContainerSpecLabel]{ + OutputState: i.ToServiceTaskSpecContainerSpecLabelOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecContainerSpecLabelArrayInput is an input type that accepts ServiceTaskSpecContainerSpecLabelArray and ServiceTaskSpecContainerSpecLabelArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecLabelArrayInput` via: +// +// ServiceTaskSpecContainerSpecLabelArray{ ServiceTaskSpecContainerSpecLabelArgs{...} } +type ServiceTaskSpecContainerSpecLabelArrayInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecLabelArrayOutput() ServiceTaskSpecContainerSpecLabelArrayOutput + ToServiceTaskSpecContainerSpecLabelArrayOutputWithContext(context.Context) ServiceTaskSpecContainerSpecLabelArrayOutput +} + +type ServiceTaskSpecContainerSpecLabelArray []ServiceTaskSpecContainerSpecLabelInput + +func (ServiceTaskSpecContainerSpecLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecLabel)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecLabelArray) ToServiceTaskSpecContainerSpecLabelArrayOutput() ServiceTaskSpecContainerSpecLabelArrayOutput { + return i.ToServiceTaskSpecContainerSpecLabelArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecLabelArray) ToServiceTaskSpecContainerSpecLabelArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecLabelArrayOutput) +} + +func (i ServiceTaskSpecContainerSpecLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecLabel] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecLabel]{ + OutputState: i.ToServiceTaskSpecContainerSpecLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecLabelOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecLabel)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecLabelOutput) ToServiceTaskSpecContainerSpecLabelOutput() ServiceTaskSpecContainerSpecLabelOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecLabelOutput) ToServiceTaskSpecContainerSpecLabelOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecLabelOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecLabelOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecLabel] { + return pulumix.Output[ServiceTaskSpecContainerSpecLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o ServiceTaskSpecContainerSpecLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o ServiceTaskSpecContainerSpecLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type ServiceTaskSpecContainerSpecLabelArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecLabel)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecLabelArrayOutput) ToServiceTaskSpecContainerSpecLabelArrayOutput() ServiceTaskSpecContainerSpecLabelArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecLabelArrayOutput) ToServiceTaskSpecContainerSpecLabelArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecLabelArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecLabel] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecLabel]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecLabelArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecContainerSpecLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecContainerSpecLabel { + return vs[0].([]ServiceTaskSpecContainerSpecLabel)[vs[1].(int)] + }).(ServiceTaskSpecContainerSpecLabelOutput) +} + +type ServiceTaskSpecContainerSpecMount struct { + BindOptions *ServiceTaskSpecContainerSpecMountBindOptions `pulumi:"bindOptions"` + ReadOnly *bool `pulumi:"readOnly"` + Source *string `pulumi:"source"` + Target string `pulumi:"target"` + TmpfsOptions *ServiceTaskSpecContainerSpecMountTmpfsOptions `pulumi:"tmpfsOptions"` + Type string `pulumi:"type"` + VolumeOptions *ServiceTaskSpecContainerSpecMountVolumeOptions `pulumi:"volumeOptions"` +} + +// ServiceTaskSpecContainerSpecMountInput is an input type that accepts ServiceTaskSpecContainerSpecMountArgs and ServiceTaskSpecContainerSpecMountOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountInput` via: +// +// ServiceTaskSpecContainerSpecMountArgs{...} +type ServiceTaskSpecContainerSpecMountInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountOutput() ServiceTaskSpecContainerSpecMountOutput + ToServiceTaskSpecContainerSpecMountOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountOutput +} + +type ServiceTaskSpecContainerSpecMountArgs struct { + BindOptions ServiceTaskSpecContainerSpecMountBindOptionsPtrInput `pulumi:"bindOptions"` + ReadOnly pulumi.BoolPtrInput `pulumi:"readOnly"` + Source pulumi.StringPtrInput `pulumi:"source"` + Target pulumi.StringInput `pulumi:"target"` + TmpfsOptions ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrInput `pulumi:"tmpfsOptions"` + Type pulumi.StringInput `pulumi:"type"` + VolumeOptions ServiceTaskSpecContainerSpecMountVolumeOptionsPtrInput `pulumi:"volumeOptions"` +} + +func (ServiceTaskSpecContainerSpecMountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMount)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountArgs) ToServiceTaskSpecContainerSpecMountOutput() ServiceTaskSpecContainerSpecMountOutput { + return i.ToServiceTaskSpecContainerSpecMountOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountArgs) ToServiceTaskSpecContainerSpecMountOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountOutput) +} + +func (i ServiceTaskSpecContainerSpecMountArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMount] { + return pulumix.Output[ServiceTaskSpecContainerSpecMount]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecContainerSpecMountArrayInput is an input type that accepts ServiceTaskSpecContainerSpecMountArray and ServiceTaskSpecContainerSpecMountArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountArrayInput` via: +// +// ServiceTaskSpecContainerSpecMountArray{ ServiceTaskSpecContainerSpecMountArgs{...} } +type ServiceTaskSpecContainerSpecMountArrayInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountArrayOutput() ServiceTaskSpecContainerSpecMountArrayOutput + ToServiceTaskSpecContainerSpecMountArrayOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountArrayOutput +} + +type ServiceTaskSpecContainerSpecMountArray []ServiceTaskSpecContainerSpecMountInput + +func (ServiceTaskSpecContainerSpecMountArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecMount)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountArray) ToServiceTaskSpecContainerSpecMountArrayOutput() ServiceTaskSpecContainerSpecMountArrayOutput { + return i.ToServiceTaskSpecContainerSpecMountArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountArray) ToServiceTaskSpecContainerSpecMountArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountArrayOutput) +} + +func (i ServiceTaskSpecContainerSpecMountArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecMount] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecMount]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecMountOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMount)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountOutput) ToServiceTaskSpecContainerSpecMountOutput() ServiceTaskSpecContainerSpecMountOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountOutput) ToServiceTaskSpecContainerSpecMountOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMount] { + return pulumix.Output[ServiceTaskSpecContainerSpecMount]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountOutput) BindOptions() ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) *ServiceTaskSpecContainerSpecMountBindOptions { + return v.BindOptions + }).(ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountOutput) ReadOnly() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) *bool { return v.ReadOnly }).(pulumi.BoolPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountOutput) Source() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) *string { return v.Source }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountOutput) Target() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) string { return v.Target }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecMountOutput) TmpfsOptions() ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) *ServiceTaskSpecContainerSpecMountTmpfsOptions { + return v.TmpfsOptions + }).(ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) string { return v.Type }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecMountOutput) VolumeOptions() ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMount) *ServiceTaskSpecContainerSpecMountVolumeOptions { + return v.VolumeOptions + }).(ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecMount)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountArrayOutput) ToServiceTaskSpecContainerSpecMountArrayOutput() ServiceTaskSpecContainerSpecMountArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountArrayOutput) ToServiceTaskSpecContainerSpecMountArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecMount] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecMount]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecContainerSpecMountOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecContainerSpecMount { + return vs[0].([]ServiceTaskSpecContainerSpecMount)[vs[1].(int)] + }).(ServiceTaskSpecContainerSpecMountOutput) +} + +type ServiceTaskSpecContainerSpecMountBindOptions struct { + Propagation *string `pulumi:"propagation"` +} + +// ServiceTaskSpecContainerSpecMountBindOptionsInput is an input type that accepts ServiceTaskSpecContainerSpecMountBindOptionsArgs and ServiceTaskSpecContainerSpecMountBindOptionsOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountBindOptionsInput` via: +// +// ServiceTaskSpecContainerSpecMountBindOptionsArgs{...} +type ServiceTaskSpecContainerSpecMountBindOptionsInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountBindOptionsOutput() ServiceTaskSpecContainerSpecMountBindOptionsOutput + ToServiceTaskSpecContainerSpecMountBindOptionsOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountBindOptionsOutput +} + +type ServiceTaskSpecContainerSpecMountBindOptionsArgs struct { + Propagation pulumi.StringPtrInput `pulumi:"propagation"` +} + +func (ServiceTaskSpecContainerSpecMountBindOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountBindOptions)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountBindOptionsArgs) ToServiceTaskSpecContainerSpecMountBindOptionsOutput() ServiceTaskSpecContainerSpecMountBindOptionsOutput { + return i.ToServiceTaskSpecContainerSpecMountBindOptionsOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountBindOptionsArgs) ToServiceTaskSpecContainerSpecMountBindOptionsOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountBindOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountBindOptionsOutput) +} + +func (i ServiceTaskSpecContainerSpecMountBindOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountBindOptions] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountBindOptions]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountBindOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecMountBindOptionsArgs) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutput() ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return i.ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountBindOptionsArgs) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountBindOptionsOutput).ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecMountBindOptionsPtrInput is an input type that accepts ServiceTaskSpecContainerSpecMountBindOptionsArgs, ServiceTaskSpecContainerSpecMountBindOptionsPtr and ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountBindOptionsPtrInput` via: +// +// ServiceTaskSpecContainerSpecMountBindOptionsArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecMountBindOptionsPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutput() ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput + ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput +} + +type serviceTaskSpecContainerSpecMountBindOptionsPtrType ServiceTaskSpecContainerSpecMountBindOptionsArgs + +func ServiceTaskSpecContainerSpecMountBindOptionsPtr(v *ServiceTaskSpecContainerSpecMountBindOptionsArgs) ServiceTaskSpecContainerSpecMountBindOptionsPtrInput { + return (*serviceTaskSpecContainerSpecMountBindOptionsPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecMountBindOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecMountBindOptions)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecMountBindOptionsPtrType) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutput() ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return i.ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecMountBindOptionsPtrType) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecMountBindOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecMountBindOptions] { + return pulumix.Output[*ServiceTaskSpecContainerSpecMountBindOptions]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecMountBindOptionsOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountBindOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountBindOptions)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsOutput) ToServiceTaskSpecContainerSpecMountBindOptionsOutput() ServiceTaskSpecContainerSpecMountBindOptionsOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsOutput) ToServiceTaskSpecContainerSpecMountBindOptionsOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountBindOptionsOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsOutput) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutput() ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return o.ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsOutput) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecMountBindOptions) *ServiceTaskSpecContainerSpecMountBindOptions { + return &v + }).(ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountBindOptions] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountBindOptions]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsOutput) Propagation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountBindOptions) *string { return v.Propagation }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecMountBindOptions)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutput() ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) ToServiceTaskSpecContainerSpecMountBindOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecMountBindOptions] { + return pulumix.Output[*ServiceTaskSpecContainerSpecMountBindOptions]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) Elem() ServiceTaskSpecContainerSpecMountBindOptionsOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountBindOptions) ServiceTaskSpecContainerSpecMountBindOptions { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecMountBindOptions + return ret + }).(ServiceTaskSpecContainerSpecMountBindOptionsOutput) +} + +func (o ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput) Propagation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountBindOptions) *string { + if v == nil { + return nil + } + return v.Propagation + }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountTmpfsOptions struct { + // Scheduling mode for the service + Mode *int `pulumi:"mode"` + SizeBytes *int `pulumi:"sizeBytes"` +} + +// ServiceTaskSpecContainerSpecMountTmpfsOptionsInput is an input type that accepts ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs and ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountTmpfsOptionsInput` via: +// +// ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs{...} +type ServiceTaskSpecContainerSpecMountTmpfsOptionsInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput + ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput +} + +type ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs struct { + // Scheduling mode for the service + Mode pulumi.IntPtrInput `pulumi:"mode"` + SizeBytes pulumi.IntPtrInput `pulumi:"sizeBytes"` +} + +func (ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountTmpfsOptions)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput { + return i.ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) +} + +func (i ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountTmpfsOptions] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountTmpfsOptions]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return i.ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput).ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrInput is an input type that accepts ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs, ServiceTaskSpecContainerSpecMountTmpfsOptionsPtr and ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrInput` via: +// +// ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput + ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput +} + +type serviceTaskSpecContainerSpecMountTmpfsOptionsPtrType ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs + +func ServiceTaskSpecContainerSpecMountTmpfsOptionsPtr(v *ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs) ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrInput { + return (*serviceTaskSpecContainerSpecMountTmpfsOptionsPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecMountTmpfsOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecMountTmpfsOptions)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecMountTmpfsOptionsPtrType) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return i.ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecMountTmpfsOptionsPtrType) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecMountTmpfsOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecMountTmpfsOptions] { + return pulumix.Output[*ServiceTaskSpecContainerSpecMountTmpfsOptions]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountTmpfsOptions)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) ToServiceTaskSpecContainerSpecMountTmpfsOptionsOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return o.ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecMountTmpfsOptions) *ServiceTaskSpecContainerSpecMountTmpfsOptions { + return &v + }).(ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountTmpfsOptions] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountTmpfsOptions]{ + OutputState: o.OutputState, + } +} + +// Scheduling mode for the service +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) Mode() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountTmpfsOptions) *int { return v.Mode }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) SizeBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountTmpfsOptions) *int { return v.SizeBytes }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecMountTmpfsOptions)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput() ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) ToServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecMountTmpfsOptions] { + return pulumix.Output[*ServiceTaskSpecContainerSpecMountTmpfsOptions]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) Elem() ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountTmpfsOptions) ServiceTaskSpecContainerSpecMountTmpfsOptions { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecMountTmpfsOptions + return ret + }).(ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput) +} + +// Scheduling mode for the service +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) Mode() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountTmpfsOptions) *int { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput) SizeBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountTmpfsOptions) *int { + if v == nil { + return nil + } + return v.SizeBytes + }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountVolumeOptions struct { + DriverName *string `pulumi:"driverName"` + DriverOptions map[string]string `pulumi:"driverOptions"` + // User-defined key/value metadata + Labels []ServiceTaskSpecContainerSpecMountVolumeOptionsLabel `pulumi:"labels"` + NoCopy *bool `pulumi:"noCopy"` +} + +// ServiceTaskSpecContainerSpecMountVolumeOptionsInput is an input type that accepts ServiceTaskSpecContainerSpecMountVolumeOptionsArgs and ServiceTaskSpecContainerSpecMountVolumeOptionsOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountVolumeOptionsInput` via: +// +// ServiceTaskSpecContainerSpecMountVolumeOptionsArgs{...} +type ServiceTaskSpecContainerSpecMountVolumeOptionsInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountVolumeOptionsOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsOutput + ToServiceTaskSpecContainerSpecMountVolumeOptionsOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsOutput +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsArgs struct { + DriverName pulumi.StringPtrInput `pulumi:"driverName"` + DriverOptions pulumi.StringMapInput `pulumi:"driverOptions"` + // User-defined key/value metadata + Labels ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayInput `pulumi:"labels"` + NoCopy pulumi.BoolPtrInput `pulumi:"noCopy"` +} + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptions)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ToServiceTaskSpecContainerSpecMountVolumeOptionsOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsOutput { + return i.ToServiceTaskSpecContainerSpecMountVolumeOptionsOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ToServiceTaskSpecContainerSpecMountVolumeOptionsOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptions] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptions]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountVolumeOptionsOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return i.ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountVolumeOptionsOutput).ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecMountVolumeOptionsPtrInput is an input type that accepts ServiceTaskSpecContainerSpecMountVolumeOptionsArgs, ServiceTaskSpecContainerSpecMountVolumeOptionsPtr and ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountVolumeOptionsPtrInput` via: +// +// ServiceTaskSpecContainerSpecMountVolumeOptionsArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecMountVolumeOptionsPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput + ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput +} + +type serviceTaskSpecContainerSpecMountVolumeOptionsPtrType ServiceTaskSpecContainerSpecMountVolumeOptionsArgs + +func ServiceTaskSpecContainerSpecMountVolumeOptionsPtr(v *ServiceTaskSpecContainerSpecMountVolumeOptionsArgs) ServiceTaskSpecContainerSpecMountVolumeOptionsPtrInput { + return (*serviceTaskSpecContainerSpecMountVolumeOptionsPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecMountVolumeOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecMountVolumeOptions)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecMountVolumeOptionsPtrType) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return i.ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecMountVolumeOptionsPtrType) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecMountVolumeOptionsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecMountVolumeOptions] { + return pulumix.Output[*ServiceTaskSpecContainerSpecMountVolumeOptions]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptions)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return o.ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecMountVolumeOptions) *ServiceTaskSpecContainerSpecMountVolumeOptions { + return &v + }).(ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptions] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptions]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) DriverName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountVolumeOptions) *string { return v.DriverName }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) DriverOptions() pulumi.StringMapOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountVolumeOptions) map[string]string { return v.DriverOptions }).(pulumi.StringMapOutput) +} + +// User-defined key/value metadata +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) Labels() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountVolumeOptions) []ServiceTaskSpecContainerSpecMountVolumeOptionsLabel { + return v.Labels + }).(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) NoCopy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountVolumeOptions) *bool { return v.NoCopy }).(pulumi.BoolPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecMountVolumeOptions)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecMountVolumeOptions] { + return pulumix.Output[*ServiceTaskSpecContainerSpecMountVolumeOptions]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) Elem() ServiceTaskSpecContainerSpecMountVolumeOptionsOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountVolumeOptions) ServiceTaskSpecContainerSpecMountVolumeOptions { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecMountVolumeOptions + return ret + }).(ServiceTaskSpecContainerSpecMountVolumeOptionsOutput) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) DriverName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountVolumeOptions) *string { + if v == nil { + return nil + } + return v.DriverName + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) DriverOptions() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountVolumeOptions) map[string]string { + if v == nil { + return nil + } + return v.DriverOptions + }).(pulumi.StringMapOutput) +} + +// User-defined key/value metadata +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) Labels() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountVolumeOptions) []ServiceTaskSpecContainerSpecMountVolumeOptionsLabel { + if v == nil { + return nil + } + return v.Labels + }).(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput) NoCopy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecMountVolumeOptions) *bool { + if v == nil { + return nil + } + return v.NoCopy + }).(pulumi.BoolPtrOutput) +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// ServiceTaskSpecContainerSpecMountVolumeOptionsLabelInput is an input type that accepts ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs and ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountVolumeOptionsLabelInput` via: +// +// ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs{...} +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabelInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput + ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptionsLabel)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput { + return i.ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptionsLabel] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptionsLabel]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayInput is an input type that accepts ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray and ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayInput` via: +// +// ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray{ ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs{...} } +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput + ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutputWithContext(context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray []ServiceTaskSpecContainerSpecMountVolumeOptionsLabelInput + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput { + return i.ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) +} + +func (i ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel]{ + OutputState: i.ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptionsLabel)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptionsLabel] { + return pulumix.Output[ServiceTaskSpecContainerSpecMountVolumeOptionsLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountVolumeOptionsLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecMountVolumeOptionsLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput() ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) ToServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecContainerSpecMountVolumeOptionsLabel { + return vs[0].([]ServiceTaskSpecContainerSpecMountVolumeOptionsLabel)[vs[1].(int)] + }).(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput) +} + +type ServiceTaskSpecContainerSpecPrivileges struct { + CredentialSpec *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec `pulumi:"credentialSpec"` + SeLinuxContext *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext `pulumi:"seLinuxContext"` +} + +// ServiceTaskSpecContainerSpecPrivilegesInput is an input type that accepts ServiceTaskSpecContainerSpecPrivilegesArgs and ServiceTaskSpecContainerSpecPrivilegesOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPrivilegesInput` via: +// +// ServiceTaskSpecContainerSpecPrivilegesArgs{...} +type ServiceTaskSpecContainerSpecPrivilegesInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPrivilegesOutput() ServiceTaskSpecContainerSpecPrivilegesOutput + ToServiceTaskSpecContainerSpecPrivilegesOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPrivilegesOutput +} + +type ServiceTaskSpecContainerSpecPrivilegesArgs struct { + CredentialSpec ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrInput `pulumi:"credentialSpec"` + SeLinuxContext ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrInput `pulumi:"seLinuxContext"` +} + +func (ServiceTaskSpecContainerSpecPrivilegesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivileges)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecPrivilegesArgs) ToServiceTaskSpecContainerSpecPrivilegesOutput() ServiceTaskSpecContainerSpecPrivilegesOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesArgs) ToServiceTaskSpecContainerSpecPrivilegesOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesOutput) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecPrivileges] { + return pulumix.Output[ServiceTaskSpecContainerSpecPrivileges]{ + OutputState: i.ToServiceTaskSpecContainerSpecPrivilegesOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecPrivilegesArgs) ToServiceTaskSpecContainerSpecPrivilegesPtrOutput() ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesArgs) ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesOutput).ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecPrivilegesPtrInput is an input type that accepts ServiceTaskSpecContainerSpecPrivilegesArgs, ServiceTaskSpecContainerSpecPrivilegesPtr and ServiceTaskSpecContainerSpecPrivilegesPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPrivilegesPtrInput` via: +// +// ServiceTaskSpecContainerSpecPrivilegesArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecPrivilegesPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPrivilegesPtrOutput() ServiceTaskSpecContainerSpecPrivilegesPtrOutput + ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPrivilegesPtrOutput +} + +type serviceTaskSpecContainerSpecPrivilegesPtrType ServiceTaskSpecContainerSpecPrivilegesArgs + +func ServiceTaskSpecContainerSpecPrivilegesPtr(v *ServiceTaskSpecContainerSpecPrivilegesArgs) ServiceTaskSpecContainerSpecPrivilegesPtrInput { + return (*serviceTaskSpecContainerSpecPrivilegesPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecPrivilegesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecPrivileges)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecPrivilegesPtrType) ToServiceTaskSpecContainerSpecPrivilegesPtrOutput() ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecPrivilegesPtrType) ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecPrivilegesPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecPrivileges] { + return pulumix.Output[*ServiceTaskSpecContainerSpecPrivileges]{ + OutputState: i.ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecPrivilegesOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPrivilegesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivileges)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) ToServiceTaskSpecContainerSpecPrivilegesOutput() ServiceTaskSpecContainerSpecPrivilegesOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) ToServiceTaskSpecContainerSpecPrivilegesOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) ToServiceTaskSpecContainerSpecPrivilegesPtrOutput() ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return o.ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecPrivileges) *ServiceTaskSpecContainerSpecPrivileges { + return &v + }).(ServiceTaskSpecContainerSpecPrivilegesPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecPrivileges] { + return pulumix.Output[ServiceTaskSpecContainerSpecPrivileges]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) CredentialSpec() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivileges) *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec { + return v.CredentialSpec + }).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesOutput) SeLinuxContext() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivileges) *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext { + return v.SeLinuxContext + }).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) +} + +type ServiceTaskSpecContainerSpecPrivilegesPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPrivilegesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecPrivileges)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPrivilegesPtrOutput) ToServiceTaskSpecContainerSpecPrivilegesPtrOutput() ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesPtrOutput) ToServiceTaskSpecContainerSpecPrivilegesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecPrivileges] { + return pulumix.Output[*ServiceTaskSpecContainerSpecPrivileges]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPrivilegesPtrOutput) Elem() ServiceTaskSpecContainerSpecPrivilegesOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivileges) ServiceTaskSpecContainerSpecPrivileges { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecPrivileges + return ret + }).(ServiceTaskSpecContainerSpecPrivilegesOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesPtrOutput) CredentialSpec() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivileges) *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec { + if v == nil { + return nil + } + return v.CredentialSpec + }).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesPtrOutput) SeLinuxContext() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivileges) *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext { + if v == nil { + return nil + } + return v.SeLinuxContext + }).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) +} + +type ServiceTaskSpecContainerSpecPrivilegesCredentialSpec struct { + File *string `pulumi:"file"` + Registry *string `pulumi:"registry"` +} + +// ServiceTaskSpecContainerSpecPrivilegesCredentialSpecInput is an input type that accepts ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs and ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPrivilegesCredentialSpecInput` via: +// +// ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs{...} +type ServiceTaskSpecContainerSpecPrivilegesCredentialSpecInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput + ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput +} + +type ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs struct { + File pulumi.StringPtrInput `pulumi:"file"` + Registry pulumi.StringPtrInput `pulumi:"registry"` +} + +func (ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesCredentialSpec)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesCredentialSpec] { + return pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesCredentialSpec]{ + OutputState: i.ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput).ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrInput is an input type that accepts ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs, ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtr and ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrInput` via: +// +// ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput + ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput +} + +type serviceTaskSpecContainerSpecPrivilegesCredentialSpecPtrType ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs + +func ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtr(v *ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrInput { + return (*serviceTaskSpecContainerSpecPrivilegesCredentialSpecPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecPrivilegesCredentialSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecPrivilegesCredentialSpec)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecPrivilegesCredentialSpecPtrType) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecPrivilegesCredentialSpecPtrType) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecPrivilegesCredentialSpecPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesCredentialSpec] { + return pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesCredentialSpec]{ + OutputState: i.ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesCredentialSpec)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return o.ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecPrivilegesCredentialSpec) *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec { + return &v + }).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesCredentialSpec] { + return pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesCredentialSpec]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) File() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesCredentialSpec) *string { return v.File }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) Registry() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesCredentialSpec) *string { return v.Registry }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecPrivilegesCredentialSpec)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) ToServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesCredentialSpec] { + return pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesCredentialSpec]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) Elem() ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec) ServiceTaskSpecContainerSpecPrivilegesCredentialSpec { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecPrivilegesCredentialSpec + return ret + }).(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) File() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec) *string { + if v == nil { + return nil + } + return v.File + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput) Registry() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesCredentialSpec) *string { + if v == nil { + return nil + } + return v.Registry + }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext struct { + Disable *bool `pulumi:"disable"` + Level *string `pulumi:"level"` + Role *string `pulumi:"role"` + Type *string `pulumi:"type"` + User *string `pulumi:"user"` +} + +// ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextInput is an input type that accepts ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs and ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextInput` via: +// +// ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs{...} +type ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput + ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput +} + +type ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs struct { + Disable pulumi.BoolPtrInput `pulumi:"disable"` + Level pulumi.StringPtrInput `pulumi:"level"` + Role pulumi.StringPtrInput `pulumi:"role"` + Type pulumi.StringPtrInput `pulumi:"type"` + User pulumi.StringPtrInput `pulumi:"user"` +} + +func (ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext] { + return pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext]{ + OutputState: i.ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput).ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrInput is an input type that accepts ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs, ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtr and ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrInput` via: +// +// ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput + ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput +} + +type serviceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrType ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs + +func ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtr(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrInput { + return (*serviceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrType)(v) +} + +func (*serviceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext)(nil)).Elem() +} + +func (i *serviceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrType) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return i.ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrType) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) +} + +func (i *serviceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext] { + return pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext]{ + OutputState: i.ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return o.ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext { + return &v + }).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext] { + return pulumix.Output[ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) Disable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *bool { return v.Disable }).(pulumi.BoolPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) Level() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { return v.Level }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) Role() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { return v.Role }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { return v.Type }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { return v.User }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) ToServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext] { + return pulumix.Output[*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) Elem() ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext { + if v != nil { + return *v + } + var ret ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext + return ret + }).(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) Disable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *bool { + if v == nil { + return nil + } + return v.Disable + }).(pulumi.BoolPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) Level() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { + if v == nil { + return nil + } + return v.Level + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) Role() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { + if v == nil { + return nil + } + return v.Role + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { + if v == nil { + return nil + } + return v.Type + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput) User() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecContainerSpecPrivilegesSeLinuxContext) *string { + if v == nil { + return nil + } + return v.User + }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecSecret struct { + FileGid *string `pulumi:"fileGid"` + FileMode *int `pulumi:"fileMode"` + FileName string `pulumi:"fileName"` + FileUid *string `pulumi:"fileUid"` + SecretId string `pulumi:"secretId"` + SecretName *string `pulumi:"secretName"` +} + +// ServiceTaskSpecContainerSpecSecretInput is an input type that accepts ServiceTaskSpecContainerSpecSecretArgs and ServiceTaskSpecContainerSpecSecretOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecSecretInput` via: +// +// ServiceTaskSpecContainerSpecSecretArgs{...} +type ServiceTaskSpecContainerSpecSecretInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecSecretOutput() ServiceTaskSpecContainerSpecSecretOutput + ToServiceTaskSpecContainerSpecSecretOutputWithContext(context.Context) ServiceTaskSpecContainerSpecSecretOutput +} + +type ServiceTaskSpecContainerSpecSecretArgs struct { + FileGid pulumi.StringPtrInput `pulumi:"fileGid"` + FileMode pulumi.IntPtrInput `pulumi:"fileMode"` + FileName pulumi.StringInput `pulumi:"fileName"` + FileUid pulumi.StringPtrInput `pulumi:"fileUid"` + SecretId pulumi.StringInput `pulumi:"secretId"` + SecretName pulumi.StringPtrInput `pulumi:"secretName"` +} + +func (ServiceTaskSpecContainerSpecSecretArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecSecret)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecSecretArgs) ToServiceTaskSpecContainerSpecSecretOutput() ServiceTaskSpecContainerSpecSecretOutput { + return i.ToServiceTaskSpecContainerSpecSecretOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecSecretArgs) ToServiceTaskSpecContainerSpecSecretOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecSecretOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecSecretOutput) +} + +func (i ServiceTaskSpecContainerSpecSecretArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecSecret] { + return pulumix.Output[ServiceTaskSpecContainerSpecSecret]{ + OutputState: i.ToServiceTaskSpecContainerSpecSecretOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecContainerSpecSecretArrayInput is an input type that accepts ServiceTaskSpecContainerSpecSecretArray and ServiceTaskSpecContainerSpecSecretArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecContainerSpecSecretArrayInput` via: +// +// ServiceTaskSpecContainerSpecSecretArray{ ServiceTaskSpecContainerSpecSecretArgs{...} } +type ServiceTaskSpecContainerSpecSecretArrayInput interface { + pulumi.Input + + ToServiceTaskSpecContainerSpecSecretArrayOutput() ServiceTaskSpecContainerSpecSecretArrayOutput + ToServiceTaskSpecContainerSpecSecretArrayOutputWithContext(context.Context) ServiceTaskSpecContainerSpecSecretArrayOutput +} + +type ServiceTaskSpecContainerSpecSecretArray []ServiceTaskSpecContainerSpecSecretInput + +func (ServiceTaskSpecContainerSpecSecretArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecSecret)(nil)).Elem() +} + +func (i ServiceTaskSpecContainerSpecSecretArray) ToServiceTaskSpecContainerSpecSecretArrayOutput() ServiceTaskSpecContainerSpecSecretArrayOutput { + return i.ToServiceTaskSpecContainerSpecSecretArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecContainerSpecSecretArray) ToServiceTaskSpecContainerSpecSecretArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecSecretArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecContainerSpecSecretArrayOutput) +} + +func (i ServiceTaskSpecContainerSpecSecretArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecSecret] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecSecret]{ + OutputState: i.ToServiceTaskSpecContainerSpecSecretArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecContainerSpecSecretOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecSecretOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecContainerSpecSecret)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) ToServiceTaskSpecContainerSpecSecretOutput() ServiceTaskSpecContainerSpecSecretOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) ToServiceTaskSpecContainerSpecSecretOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecSecretOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecContainerSpecSecret] { + return pulumix.Output[ServiceTaskSpecContainerSpecSecret]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) FileGid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecSecret) *string { return v.FileGid }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) FileMode() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecSecret) *int { return v.FileMode }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) FileName() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecSecret) string { return v.FileName }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) FileUid() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecSecret) *string { return v.FileUid }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) SecretId() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecSecret) string { return v.SecretId }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecContainerSpecSecretOutput) SecretName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecContainerSpecSecret) *string { return v.SecretName }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecContainerSpecSecretArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecContainerSpecSecretArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecContainerSpecSecret)(nil)).Elem() +} + +func (o ServiceTaskSpecContainerSpecSecretArrayOutput) ToServiceTaskSpecContainerSpecSecretArrayOutput() ServiceTaskSpecContainerSpecSecretArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecSecretArrayOutput) ToServiceTaskSpecContainerSpecSecretArrayOutputWithContext(ctx context.Context) ServiceTaskSpecContainerSpecSecretArrayOutput { + return o +} + +func (o ServiceTaskSpecContainerSpecSecretArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecContainerSpecSecret] { + return pulumix.Output[[]ServiceTaskSpecContainerSpecSecret]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecContainerSpecSecretArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecContainerSpecSecretOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecContainerSpecSecret { + return vs[0].([]ServiceTaskSpecContainerSpecSecret)[vs[1].(int)] + }).(ServiceTaskSpecContainerSpecSecretOutput) +} + +type ServiceTaskSpecLogDriver struct { + // Name of the service + Name string `pulumi:"name"` + Options map[string]string `pulumi:"options"` +} + +// ServiceTaskSpecLogDriverInput is an input type that accepts ServiceTaskSpecLogDriverArgs and ServiceTaskSpecLogDriverOutput values. +// You can construct a concrete instance of `ServiceTaskSpecLogDriverInput` via: +// +// ServiceTaskSpecLogDriverArgs{...} +type ServiceTaskSpecLogDriverInput interface { + pulumi.Input + + ToServiceTaskSpecLogDriverOutput() ServiceTaskSpecLogDriverOutput + ToServiceTaskSpecLogDriverOutputWithContext(context.Context) ServiceTaskSpecLogDriverOutput +} + +type ServiceTaskSpecLogDriverArgs struct { + // Name of the service + Name pulumi.StringInput `pulumi:"name"` + Options pulumi.StringMapInput `pulumi:"options"` +} + +func (ServiceTaskSpecLogDriverArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecLogDriver)(nil)).Elem() +} + +func (i ServiceTaskSpecLogDriverArgs) ToServiceTaskSpecLogDriverOutput() ServiceTaskSpecLogDriverOutput { + return i.ToServiceTaskSpecLogDriverOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecLogDriverArgs) ToServiceTaskSpecLogDriverOutputWithContext(ctx context.Context) ServiceTaskSpecLogDriverOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecLogDriverOutput) +} + +func (i ServiceTaskSpecLogDriverArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecLogDriver] { + return pulumix.Output[ServiceTaskSpecLogDriver]{ + OutputState: i.ToServiceTaskSpecLogDriverOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecLogDriverArgs) ToServiceTaskSpecLogDriverPtrOutput() ServiceTaskSpecLogDriverPtrOutput { + return i.ToServiceTaskSpecLogDriverPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecLogDriverArgs) ToServiceTaskSpecLogDriverPtrOutputWithContext(ctx context.Context) ServiceTaskSpecLogDriverPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecLogDriverOutput).ToServiceTaskSpecLogDriverPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecLogDriverPtrInput is an input type that accepts ServiceTaskSpecLogDriverArgs, ServiceTaskSpecLogDriverPtr and ServiceTaskSpecLogDriverPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecLogDriverPtrInput` via: +// +// ServiceTaskSpecLogDriverArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecLogDriverPtrInput interface { + pulumi.Input + + ToServiceTaskSpecLogDriverPtrOutput() ServiceTaskSpecLogDriverPtrOutput + ToServiceTaskSpecLogDriverPtrOutputWithContext(context.Context) ServiceTaskSpecLogDriverPtrOutput +} + +type serviceTaskSpecLogDriverPtrType ServiceTaskSpecLogDriverArgs + +func ServiceTaskSpecLogDriverPtr(v *ServiceTaskSpecLogDriverArgs) ServiceTaskSpecLogDriverPtrInput { + return (*serviceTaskSpecLogDriverPtrType)(v) +} + +func (*serviceTaskSpecLogDriverPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecLogDriver)(nil)).Elem() +} + +func (i *serviceTaskSpecLogDriverPtrType) ToServiceTaskSpecLogDriverPtrOutput() ServiceTaskSpecLogDriverPtrOutput { + return i.ToServiceTaskSpecLogDriverPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecLogDriverPtrType) ToServiceTaskSpecLogDriverPtrOutputWithContext(ctx context.Context) ServiceTaskSpecLogDriverPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecLogDriverPtrOutput) +} + +func (i *serviceTaskSpecLogDriverPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecLogDriver] { + return pulumix.Output[*ServiceTaskSpecLogDriver]{ + OutputState: i.ToServiceTaskSpecLogDriverPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecLogDriverOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecLogDriverOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecLogDriver)(nil)).Elem() +} + +func (o ServiceTaskSpecLogDriverOutput) ToServiceTaskSpecLogDriverOutput() ServiceTaskSpecLogDriverOutput { + return o +} + +func (o ServiceTaskSpecLogDriverOutput) ToServiceTaskSpecLogDriverOutputWithContext(ctx context.Context) ServiceTaskSpecLogDriverOutput { + return o +} + +func (o ServiceTaskSpecLogDriverOutput) ToServiceTaskSpecLogDriverPtrOutput() ServiceTaskSpecLogDriverPtrOutput { + return o.ToServiceTaskSpecLogDriverPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecLogDriverOutput) ToServiceTaskSpecLogDriverPtrOutputWithContext(ctx context.Context) ServiceTaskSpecLogDriverPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecLogDriver) *ServiceTaskSpecLogDriver { + return &v + }).(ServiceTaskSpecLogDriverPtrOutput) +} + +func (o ServiceTaskSpecLogDriverOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecLogDriver] { + return pulumix.Output[ServiceTaskSpecLogDriver]{ + OutputState: o.OutputState, + } +} + +// Name of the service +func (o ServiceTaskSpecLogDriverOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecLogDriver) string { return v.Name }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecLogDriverOutput) Options() pulumi.StringMapOutput { + return o.ApplyT(func(v ServiceTaskSpecLogDriver) map[string]string { return v.Options }).(pulumi.StringMapOutput) +} + +type ServiceTaskSpecLogDriverPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecLogDriverPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecLogDriver)(nil)).Elem() +} + +func (o ServiceTaskSpecLogDriverPtrOutput) ToServiceTaskSpecLogDriverPtrOutput() ServiceTaskSpecLogDriverPtrOutput { + return o +} + +func (o ServiceTaskSpecLogDriverPtrOutput) ToServiceTaskSpecLogDriverPtrOutputWithContext(ctx context.Context) ServiceTaskSpecLogDriverPtrOutput { + return o +} + +func (o ServiceTaskSpecLogDriverPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecLogDriver] { + return pulumix.Output[*ServiceTaskSpecLogDriver]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecLogDriverPtrOutput) Elem() ServiceTaskSpecLogDriverOutput { + return o.ApplyT(func(v *ServiceTaskSpecLogDriver) ServiceTaskSpecLogDriver { + if v != nil { + return *v + } + var ret ServiceTaskSpecLogDriver + return ret + }).(ServiceTaskSpecLogDriverOutput) +} + +// Name of the service +func (o ServiceTaskSpecLogDriverPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecLogDriver) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecLogDriverPtrOutput) Options() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServiceTaskSpecLogDriver) map[string]string { + if v == nil { + return nil + } + return v.Options + }).(pulumi.StringMapOutput) +} + +type ServiceTaskSpecNetworksAdvanced struct { + Aliases []string `pulumi:"aliases"` + DriverOpts []string `pulumi:"driverOpts"` + // Name of the service + Name string `pulumi:"name"` +} + +// ServiceTaskSpecNetworksAdvancedInput is an input type that accepts ServiceTaskSpecNetworksAdvancedArgs and ServiceTaskSpecNetworksAdvancedOutput values. +// You can construct a concrete instance of `ServiceTaskSpecNetworksAdvancedInput` via: +// +// ServiceTaskSpecNetworksAdvancedArgs{...} +type ServiceTaskSpecNetworksAdvancedInput interface { + pulumi.Input + + ToServiceTaskSpecNetworksAdvancedOutput() ServiceTaskSpecNetworksAdvancedOutput + ToServiceTaskSpecNetworksAdvancedOutputWithContext(context.Context) ServiceTaskSpecNetworksAdvancedOutput +} + +type ServiceTaskSpecNetworksAdvancedArgs struct { + Aliases pulumi.StringArrayInput `pulumi:"aliases"` + DriverOpts pulumi.StringArrayInput `pulumi:"driverOpts"` + // Name of the service + Name pulumi.StringInput `pulumi:"name"` +} + +func (ServiceTaskSpecNetworksAdvancedArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecNetworksAdvanced)(nil)).Elem() +} + +func (i ServiceTaskSpecNetworksAdvancedArgs) ToServiceTaskSpecNetworksAdvancedOutput() ServiceTaskSpecNetworksAdvancedOutput { + return i.ToServiceTaskSpecNetworksAdvancedOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecNetworksAdvancedArgs) ToServiceTaskSpecNetworksAdvancedOutputWithContext(ctx context.Context) ServiceTaskSpecNetworksAdvancedOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecNetworksAdvancedOutput) +} + +func (i ServiceTaskSpecNetworksAdvancedArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecNetworksAdvanced] { + return pulumix.Output[ServiceTaskSpecNetworksAdvanced]{ + OutputState: i.ToServiceTaskSpecNetworksAdvancedOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecNetworksAdvancedArrayInput is an input type that accepts ServiceTaskSpecNetworksAdvancedArray and ServiceTaskSpecNetworksAdvancedArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecNetworksAdvancedArrayInput` via: +// +// ServiceTaskSpecNetworksAdvancedArray{ ServiceTaskSpecNetworksAdvancedArgs{...} } +type ServiceTaskSpecNetworksAdvancedArrayInput interface { + pulumi.Input + + ToServiceTaskSpecNetworksAdvancedArrayOutput() ServiceTaskSpecNetworksAdvancedArrayOutput + ToServiceTaskSpecNetworksAdvancedArrayOutputWithContext(context.Context) ServiceTaskSpecNetworksAdvancedArrayOutput +} + +type ServiceTaskSpecNetworksAdvancedArray []ServiceTaskSpecNetworksAdvancedInput + +func (ServiceTaskSpecNetworksAdvancedArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecNetworksAdvanced)(nil)).Elem() +} + +func (i ServiceTaskSpecNetworksAdvancedArray) ToServiceTaskSpecNetworksAdvancedArrayOutput() ServiceTaskSpecNetworksAdvancedArrayOutput { + return i.ToServiceTaskSpecNetworksAdvancedArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecNetworksAdvancedArray) ToServiceTaskSpecNetworksAdvancedArrayOutputWithContext(ctx context.Context) ServiceTaskSpecNetworksAdvancedArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecNetworksAdvancedArrayOutput) +} + +func (i ServiceTaskSpecNetworksAdvancedArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecNetworksAdvanced] { + return pulumix.Output[[]ServiceTaskSpecNetworksAdvanced]{ + OutputState: i.ToServiceTaskSpecNetworksAdvancedArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecNetworksAdvancedOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecNetworksAdvancedOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecNetworksAdvanced)(nil)).Elem() +} + +func (o ServiceTaskSpecNetworksAdvancedOutput) ToServiceTaskSpecNetworksAdvancedOutput() ServiceTaskSpecNetworksAdvancedOutput { + return o +} + +func (o ServiceTaskSpecNetworksAdvancedOutput) ToServiceTaskSpecNetworksAdvancedOutputWithContext(ctx context.Context) ServiceTaskSpecNetworksAdvancedOutput { + return o +} + +func (o ServiceTaskSpecNetworksAdvancedOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecNetworksAdvanced] { + return pulumix.Output[ServiceTaskSpecNetworksAdvanced]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecNetworksAdvancedOutput) Aliases() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecNetworksAdvanced) []string { return v.Aliases }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecNetworksAdvancedOutput) DriverOpts() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecNetworksAdvanced) []string { return v.DriverOpts }).(pulumi.StringArrayOutput) +} + +// Name of the service +func (o ServiceTaskSpecNetworksAdvancedOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecNetworksAdvanced) string { return v.Name }).(pulumi.StringOutput) +} + +type ServiceTaskSpecNetworksAdvancedArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecNetworksAdvancedArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecNetworksAdvanced)(nil)).Elem() +} + +func (o ServiceTaskSpecNetworksAdvancedArrayOutput) ToServiceTaskSpecNetworksAdvancedArrayOutput() ServiceTaskSpecNetworksAdvancedArrayOutput { + return o +} + +func (o ServiceTaskSpecNetworksAdvancedArrayOutput) ToServiceTaskSpecNetworksAdvancedArrayOutputWithContext(ctx context.Context) ServiceTaskSpecNetworksAdvancedArrayOutput { + return o +} + +func (o ServiceTaskSpecNetworksAdvancedArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecNetworksAdvanced] { + return pulumix.Output[[]ServiceTaskSpecNetworksAdvanced]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecNetworksAdvancedArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecNetworksAdvancedOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecNetworksAdvanced { + return vs[0].([]ServiceTaskSpecNetworksAdvanced)[vs[1].(int)] + }).(ServiceTaskSpecNetworksAdvancedOutput) +} + +type ServiceTaskSpecPlacement struct { + Constraints []string `pulumi:"constraints"` + MaxReplicas *int `pulumi:"maxReplicas"` + Platforms []ServiceTaskSpecPlacementPlatform `pulumi:"platforms"` + Prefs []string `pulumi:"prefs"` +} + +// ServiceTaskSpecPlacementInput is an input type that accepts ServiceTaskSpecPlacementArgs and ServiceTaskSpecPlacementOutput values. +// You can construct a concrete instance of `ServiceTaskSpecPlacementInput` via: +// +// ServiceTaskSpecPlacementArgs{...} +type ServiceTaskSpecPlacementInput interface { + pulumi.Input + + ToServiceTaskSpecPlacementOutput() ServiceTaskSpecPlacementOutput + ToServiceTaskSpecPlacementOutputWithContext(context.Context) ServiceTaskSpecPlacementOutput +} + +type ServiceTaskSpecPlacementArgs struct { + Constraints pulumi.StringArrayInput `pulumi:"constraints"` + MaxReplicas pulumi.IntPtrInput `pulumi:"maxReplicas"` + Platforms ServiceTaskSpecPlacementPlatformArrayInput `pulumi:"platforms"` + Prefs pulumi.StringArrayInput `pulumi:"prefs"` +} + +func (ServiceTaskSpecPlacementArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecPlacement)(nil)).Elem() +} + +func (i ServiceTaskSpecPlacementArgs) ToServiceTaskSpecPlacementOutput() ServiceTaskSpecPlacementOutput { + return i.ToServiceTaskSpecPlacementOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecPlacementArgs) ToServiceTaskSpecPlacementOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecPlacementOutput) +} + +func (i ServiceTaskSpecPlacementArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecPlacement] { + return pulumix.Output[ServiceTaskSpecPlacement]{ + OutputState: i.ToServiceTaskSpecPlacementOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecPlacementArgs) ToServiceTaskSpecPlacementPtrOutput() ServiceTaskSpecPlacementPtrOutput { + return i.ToServiceTaskSpecPlacementPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecPlacementArgs) ToServiceTaskSpecPlacementPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecPlacementOutput).ToServiceTaskSpecPlacementPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecPlacementPtrInput is an input type that accepts ServiceTaskSpecPlacementArgs, ServiceTaskSpecPlacementPtr and ServiceTaskSpecPlacementPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecPlacementPtrInput` via: +// +// ServiceTaskSpecPlacementArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecPlacementPtrInput interface { + pulumi.Input + + ToServiceTaskSpecPlacementPtrOutput() ServiceTaskSpecPlacementPtrOutput + ToServiceTaskSpecPlacementPtrOutputWithContext(context.Context) ServiceTaskSpecPlacementPtrOutput +} + +type serviceTaskSpecPlacementPtrType ServiceTaskSpecPlacementArgs + +func ServiceTaskSpecPlacementPtr(v *ServiceTaskSpecPlacementArgs) ServiceTaskSpecPlacementPtrInput { + return (*serviceTaskSpecPlacementPtrType)(v) +} + +func (*serviceTaskSpecPlacementPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecPlacement)(nil)).Elem() +} + +func (i *serviceTaskSpecPlacementPtrType) ToServiceTaskSpecPlacementPtrOutput() ServiceTaskSpecPlacementPtrOutput { + return i.ToServiceTaskSpecPlacementPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecPlacementPtrType) ToServiceTaskSpecPlacementPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecPlacementPtrOutput) +} + +func (i *serviceTaskSpecPlacementPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecPlacement] { + return pulumix.Output[*ServiceTaskSpecPlacement]{ + OutputState: i.ToServiceTaskSpecPlacementPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecPlacementOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecPlacementOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecPlacement)(nil)).Elem() +} + +func (o ServiceTaskSpecPlacementOutput) ToServiceTaskSpecPlacementOutput() ServiceTaskSpecPlacementOutput { + return o +} + +func (o ServiceTaskSpecPlacementOutput) ToServiceTaskSpecPlacementOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementOutput { + return o +} + +func (o ServiceTaskSpecPlacementOutput) ToServiceTaskSpecPlacementPtrOutput() ServiceTaskSpecPlacementPtrOutput { + return o.ToServiceTaskSpecPlacementPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecPlacementOutput) ToServiceTaskSpecPlacementPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecPlacement) *ServiceTaskSpecPlacement { + return &v + }).(ServiceTaskSpecPlacementPtrOutput) +} + +func (o ServiceTaskSpecPlacementOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecPlacement] { + return pulumix.Output[ServiceTaskSpecPlacement]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecPlacementOutput) Constraints() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecPlacement) []string { return v.Constraints }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecPlacementOutput) MaxReplicas() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecPlacement) *int { return v.MaxReplicas }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecPlacementOutput) Platforms() ServiceTaskSpecPlacementPlatformArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecPlacement) []ServiceTaskSpecPlacementPlatform { return v.Platforms }).(ServiceTaskSpecPlacementPlatformArrayOutput) +} + +func (o ServiceTaskSpecPlacementOutput) Prefs() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecPlacement) []string { return v.Prefs }).(pulumi.StringArrayOutput) +} + +type ServiceTaskSpecPlacementPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecPlacementPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecPlacement)(nil)).Elem() +} + +func (o ServiceTaskSpecPlacementPtrOutput) ToServiceTaskSpecPlacementPtrOutput() ServiceTaskSpecPlacementPtrOutput { + return o +} + +func (o ServiceTaskSpecPlacementPtrOutput) ToServiceTaskSpecPlacementPtrOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPtrOutput { + return o +} + +func (o ServiceTaskSpecPlacementPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecPlacement] { + return pulumix.Output[*ServiceTaskSpecPlacement]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecPlacementPtrOutput) Elem() ServiceTaskSpecPlacementOutput { + return o.ApplyT(func(v *ServiceTaskSpecPlacement) ServiceTaskSpecPlacement { + if v != nil { + return *v + } + var ret ServiceTaskSpecPlacement + return ret + }).(ServiceTaskSpecPlacementOutput) +} + +func (o ServiceTaskSpecPlacementPtrOutput) Constraints() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecPlacement) []string { + if v == nil { + return nil + } + return v.Constraints + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecPlacementPtrOutput) MaxReplicas() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecPlacement) *int { + if v == nil { + return nil + } + return v.MaxReplicas + }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecPlacementPtrOutput) Platforms() ServiceTaskSpecPlacementPlatformArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecPlacement) []ServiceTaskSpecPlacementPlatform { + if v == nil { + return nil + } + return v.Platforms + }).(ServiceTaskSpecPlacementPlatformArrayOutput) +} + +func (o ServiceTaskSpecPlacementPtrOutput) Prefs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecPlacement) []string { + if v == nil { + return nil + } + return v.Prefs + }).(pulumi.StringArrayOutput) +} + +type ServiceTaskSpecPlacementPlatform struct { + Architecture string `pulumi:"architecture"` + Os string `pulumi:"os"` +} + +// ServiceTaskSpecPlacementPlatformInput is an input type that accepts ServiceTaskSpecPlacementPlatformArgs and ServiceTaskSpecPlacementPlatformOutput values. +// You can construct a concrete instance of `ServiceTaskSpecPlacementPlatformInput` via: +// +// ServiceTaskSpecPlacementPlatformArgs{...} +type ServiceTaskSpecPlacementPlatformInput interface { + pulumi.Input + + ToServiceTaskSpecPlacementPlatformOutput() ServiceTaskSpecPlacementPlatformOutput + ToServiceTaskSpecPlacementPlatformOutputWithContext(context.Context) ServiceTaskSpecPlacementPlatformOutput +} + +type ServiceTaskSpecPlacementPlatformArgs struct { + Architecture pulumi.StringInput `pulumi:"architecture"` + Os pulumi.StringInput `pulumi:"os"` +} + +func (ServiceTaskSpecPlacementPlatformArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecPlacementPlatform)(nil)).Elem() +} + +func (i ServiceTaskSpecPlacementPlatformArgs) ToServiceTaskSpecPlacementPlatformOutput() ServiceTaskSpecPlacementPlatformOutput { + return i.ToServiceTaskSpecPlacementPlatformOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecPlacementPlatformArgs) ToServiceTaskSpecPlacementPlatformOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPlatformOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecPlacementPlatformOutput) +} + +func (i ServiceTaskSpecPlacementPlatformArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecPlacementPlatform] { + return pulumix.Output[ServiceTaskSpecPlacementPlatform]{ + OutputState: i.ToServiceTaskSpecPlacementPlatformOutputWithContext(ctx).OutputState, + } +} + +// ServiceTaskSpecPlacementPlatformArrayInput is an input type that accepts ServiceTaskSpecPlacementPlatformArray and ServiceTaskSpecPlacementPlatformArrayOutput values. +// You can construct a concrete instance of `ServiceTaskSpecPlacementPlatformArrayInput` via: +// +// ServiceTaskSpecPlacementPlatformArray{ ServiceTaskSpecPlacementPlatformArgs{...} } +type ServiceTaskSpecPlacementPlatformArrayInput interface { + pulumi.Input + + ToServiceTaskSpecPlacementPlatformArrayOutput() ServiceTaskSpecPlacementPlatformArrayOutput + ToServiceTaskSpecPlacementPlatformArrayOutputWithContext(context.Context) ServiceTaskSpecPlacementPlatformArrayOutput +} + +type ServiceTaskSpecPlacementPlatformArray []ServiceTaskSpecPlacementPlatformInput + +func (ServiceTaskSpecPlacementPlatformArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecPlacementPlatform)(nil)).Elem() +} + +func (i ServiceTaskSpecPlacementPlatformArray) ToServiceTaskSpecPlacementPlatformArrayOutput() ServiceTaskSpecPlacementPlatformArrayOutput { + return i.ToServiceTaskSpecPlacementPlatformArrayOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecPlacementPlatformArray) ToServiceTaskSpecPlacementPlatformArrayOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPlatformArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecPlacementPlatformArrayOutput) +} + +func (i ServiceTaskSpecPlacementPlatformArray) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecPlacementPlatform] { + return pulumix.Output[[]ServiceTaskSpecPlacementPlatform]{ + OutputState: i.ToServiceTaskSpecPlacementPlatformArrayOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecPlacementPlatformOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecPlacementPlatformOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecPlacementPlatform)(nil)).Elem() +} + +func (o ServiceTaskSpecPlacementPlatformOutput) ToServiceTaskSpecPlacementPlatformOutput() ServiceTaskSpecPlacementPlatformOutput { + return o +} + +func (o ServiceTaskSpecPlacementPlatformOutput) ToServiceTaskSpecPlacementPlatformOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPlatformOutput { + return o +} + +func (o ServiceTaskSpecPlacementPlatformOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecPlacementPlatform] { + return pulumix.Output[ServiceTaskSpecPlacementPlatform]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecPlacementPlatformOutput) Architecture() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecPlacementPlatform) string { return v.Architecture }).(pulumi.StringOutput) +} + +func (o ServiceTaskSpecPlacementPlatformOutput) Os() pulumi.StringOutput { + return o.ApplyT(func(v ServiceTaskSpecPlacementPlatform) string { return v.Os }).(pulumi.StringOutput) +} + +type ServiceTaskSpecPlacementPlatformArrayOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecPlacementPlatformArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceTaskSpecPlacementPlatform)(nil)).Elem() +} + +func (o ServiceTaskSpecPlacementPlatformArrayOutput) ToServiceTaskSpecPlacementPlatformArrayOutput() ServiceTaskSpecPlacementPlatformArrayOutput { + return o +} + +func (o ServiceTaskSpecPlacementPlatformArrayOutput) ToServiceTaskSpecPlacementPlatformArrayOutputWithContext(ctx context.Context) ServiceTaskSpecPlacementPlatformArrayOutput { + return o +} + +func (o ServiceTaskSpecPlacementPlatformArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]ServiceTaskSpecPlacementPlatform] { + return pulumix.Output[[]ServiceTaskSpecPlacementPlatform]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecPlacementPlatformArrayOutput) Index(i pulumi.IntInput) ServiceTaskSpecPlacementPlatformOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceTaskSpecPlacementPlatform { + return vs[0].([]ServiceTaskSpecPlacementPlatform)[vs[1].(int)] + }).(ServiceTaskSpecPlacementPlatformOutput) +} + +type ServiceTaskSpecResources struct { + Limits *ServiceTaskSpecResourcesLimits `pulumi:"limits"` + Reservation *ServiceTaskSpecResourcesReservation `pulumi:"reservation"` +} + +// ServiceTaskSpecResourcesInput is an input type that accepts ServiceTaskSpecResourcesArgs and ServiceTaskSpecResourcesOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesInput` via: +// +// ServiceTaskSpecResourcesArgs{...} +type ServiceTaskSpecResourcesInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesOutput() ServiceTaskSpecResourcesOutput + ToServiceTaskSpecResourcesOutputWithContext(context.Context) ServiceTaskSpecResourcesOutput +} + +type ServiceTaskSpecResourcesArgs struct { + Limits ServiceTaskSpecResourcesLimitsPtrInput `pulumi:"limits"` + Reservation ServiceTaskSpecResourcesReservationPtrInput `pulumi:"reservation"` +} + +func (ServiceTaskSpecResourcesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResources)(nil)).Elem() +} + +func (i ServiceTaskSpecResourcesArgs) ToServiceTaskSpecResourcesOutput() ServiceTaskSpecResourcesOutput { + return i.ToServiceTaskSpecResourcesOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesArgs) ToServiceTaskSpecResourcesOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesOutput) +} + +func (i ServiceTaskSpecResourcesArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResources] { + return pulumix.Output[ServiceTaskSpecResources]{ + OutputState: i.ToServiceTaskSpecResourcesOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecResourcesArgs) ToServiceTaskSpecResourcesPtrOutput() ServiceTaskSpecResourcesPtrOutput { + return i.ToServiceTaskSpecResourcesPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesArgs) ToServiceTaskSpecResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesOutput).ToServiceTaskSpecResourcesPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecResourcesPtrInput is an input type that accepts ServiceTaskSpecResourcesArgs, ServiceTaskSpecResourcesPtr and ServiceTaskSpecResourcesPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesPtrInput` via: +// +// ServiceTaskSpecResourcesArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecResourcesPtrInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesPtrOutput() ServiceTaskSpecResourcesPtrOutput + ToServiceTaskSpecResourcesPtrOutputWithContext(context.Context) ServiceTaskSpecResourcesPtrOutput +} + +type serviceTaskSpecResourcesPtrType ServiceTaskSpecResourcesArgs + +func ServiceTaskSpecResourcesPtr(v *ServiceTaskSpecResourcesArgs) ServiceTaskSpecResourcesPtrInput { + return (*serviceTaskSpecResourcesPtrType)(v) +} + +func (*serviceTaskSpecResourcesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResources)(nil)).Elem() +} + +func (i *serviceTaskSpecResourcesPtrType) ToServiceTaskSpecResourcesPtrOutput() ServiceTaskSpecResourcesPtrOutput { + return i.ToServiceTaskSpecResourcesPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecResourcesPtrType) ToServiceTaskSpecResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesPtrOutput) +} + +func (i *serviceTaskSpecResourcesPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResources] { + return pulumix.Output[*ServiceTaskSpecResources]{ + OutputState: i.ToServiceTaskSpecResourcesPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecResourcesOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResources)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesOutput) ToServiceTaskSpecResourcesOutput() ServiceTaskSpecResourcesOutput { + return o +} + +func (o ServiceTaskSpecResourcesOutput) ToServiceTaskSpecResourcesOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesOutput { + return o +} + +func (o ServiceTaskSpecResourcesOutput) ToServiceTaskSpecResourcesPtrOutput() ServiceTaskSpecResourcesPtrOutput { + return o.ToServiceTaskSpecResourcesPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecResourcesOutput) ToServiceTaskSpecResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecResources) *ServiceTaskSpecResources { + return &v + }).(ServiceTaskSpecResourcesPtrOutput) +} + +func (o ServiceTaskSpecResourcesOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResources] { + return pulumix.Output[ServiceTaskSpecResources]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesOutput) Limits() ServiceTaskSpecResourcesLimitsPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResources) *ServiceTaskSpecResourcesLimits { return v.Limits }).(ServiceTaskSpecResourcesLimitsPtrOutput) +} + +func (o ServiceTaskSpecResourcesOutput) Reservation() ServiceTaskSpecResourcesReservationPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResources) *ServiceTaskSpecResourcesReservation { return v.Reservation }).(ServiceTaskSpecResourcesReservationPtrOutput) +} + +type ServiceTaskSpecResourcesPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResources)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesPtrOutput) ToServiceTaskSpecResourcesPtrOutput() ServiceTaskSpecResourcesPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesPtrOutput) ToServiceTaskSpecResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResources] { + return pulumix.Output[*ServiceTaskSpecResources]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesPtrOutput) Elem() ServiceTaskSpecResourcesOutput { + return o.ApplyT(func(v *ServiceTaskSpecResources) ServiceTaskSpecResources { + if v != nil { + return *v + } + var ret ServiceTaskSpecResources + return ret + }).(ServiceTaskSpecResourcesOutput) +} + +func (o ServiceTaskSpecResourcesPtrOutput) Limits() ServiceTaskSpecResourcesLimitsPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResources) *ServiceTaskSpecResourcesLimits { + if v == nil { + return nil + } + return v.Limits + }).(ServiceTaskSpecResourcesLimitsPtrOutput) +} + +func (o ServiceTaskSpecResourcesPtrOutput) Reservation() ServiceTaskSpecResourcesReservationPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResources) *ServiceTaskSpecResourcesReservation { + if v == nil { + return nil + } + return v.Reservation + }).(ServiceTaskSpecResourcesReservationPtrOutput) +} + +type ServiceTaskSpecResourcesLimits struct { + MemoryBytes *int `pulumi:"memoryBytes"` + NanoCpus *int `pulumi:"nanoCpus"` +} + +// ServiceTaskSpecResourcesLimitsInput is an input type that accepts ServiceTaskSpecResourcesLimitsArgs and ServiceTaskSpecResourcesLimitsOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesLimitsInput` via: +// +// ServiceTaskSpecResourcesLimitsArgs{...} +type ServiceTaskSpecResourcesLimitsInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesLimitsOutput() ServiceTaskSpecResourcesLimitsOutput + ToServiceTaskSpecResourcesLimitsOutputWithContext(context.Context) ServiceTaskSpecResourcesLimitsOutput +} + +type ServiceTaskSpecResourcesLimitsArgs struct { + MemoryBytes pulumi.IntPtrInput `pulumi:"memoryBytes"` + NanoCpus pulumi.IntPtrInput `pulumi:"nanoCpus"` +} + +func (ServiceTaskSpecResourcesLimitsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResourcesLimits)(nil)).Elem() +} + +func (i ServiceTaskSpecResourcesLimitsArgs) ToServiceTaskSpecResourcesLimitsOutput() ServiceTaskSpecResourcesLimitsOutput { + return i.ToServiceTaskSpecResourcesLimitsOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesLimitsArgs) ToServiceTaskSpecResourcesLimitsOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesLimitsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesLimitsOutput) +} + +func (i ServiceTaskSpecResourcesLimitsArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResourcesLimits] { + return pulumix.Output[ServiceTaskSpecResourcesLimits]{ + OutputState: i.ToServiceTaskSpecResourcesLimitsOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecResourcesLimitsArgs) ToServiceTaskSpecResourcesLimitsPtrOutput() ServiceTaskSpecResourcesLimitsPtrOutput { + return i.ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesLimitsArgs) ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesLimitsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesLimitsOutput).ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecResourcesLimitsPtrInput is an input type that accepts ServiceTaskSpecResourcesLimitsArgs, ServiceTaskSpecResourcesLimitsPtr and ServiceTaskSpecResourcesLimitsPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesLimitsPtrInput` via: +// +// ServiceTaskSpecResourcesLimitsArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecResourcesLimitsPtrInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesLimitsPtrOutput() ServiceTaskSpecResourcesLimitsPtrOutput + ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(context.Context) ServiceTaskSpecResourcesLimitsPtrOutput +} + +type serviceTaskSpecResourcesLimitsPtrType ServiceTaskSpecResourcesLimitsArgs + +func ServiceTaskSpecResourcesLimitsPtr(v *ServiceTaskSpecResourcesLimitsArgs) ServiceTaskSpecResourcesLimitsPtrInput { + return (*serviceTaskSpecResourcesLimitsPtrType)(v) +} + +func (*serviceTaskSpecResourcesLimitsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResourcesLimits)(nil)).Elem() +} + +func (i *serviceTaskSpecResourcesLimitsPtrType) ToServiceTaskSpecResourcesLimitsPtrOutput() ServiceTaskSpecResourcesLimitsPtrOutput { + return i.ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecResourcesLimitsPtrType) ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesLimitsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesLimitsPtrOutput) +} + +func (i *serviceTaskSpecResourcesLimitsPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResourcesLimits] { + return pulumix.Output[*ServiceTaskSpecResourcesLimits]{ + OutputState: i.ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecResourcesLimitsOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesLimitsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResourcesLimits)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesLimitsOutput) ToServiceTaskSpecResourcesLimitsOutput() ServiceTaskSpecResourcesLimitsOutput { + return o +} + +func (o ServiceTaskSpecResourcesLimitsOutput) ToServiceTaskSpecResourcesLimitsOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesLimitsOutput { + return o +} + +func (o ServiceTaskSpecResourcesLimitsOutput) ToServiceTaskSpecResourcesLimitsPtrOutput() ServiceTaskSpecResourcesLimitsPtrOutput { + return o.ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecResourcesLimitsOutput) ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesLimitsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecResourcesLimits) *ServiceTaskSpecResourcesLimits { + return &v + }).(ServiceTaskSpecResourcesLimitsPtrOutput) +} + +func (o ServiceTaskSpecResourcesLimitsOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResourcesLimits] { + return pulumix.Output[ServiceTaskSpecResourcesLimits]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesLimitsOutput) MemoryBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesLimits) *int { return v.MemoryBytes }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecResourcesLimitsOutput) NanoCpus() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesLimits) *int { return v.NanoCpus }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpecResourcesLimitsPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesLimitsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResourcesLimits)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesLimitsPtrOutput) ToServiceTaskSpecResourcesLimitsPtrOutput() ServiceTaskSpecResourcesLimitsPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesLimitsPtrOutput) ToServiceTaskSpecResourcesLimitsPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesLimitsPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesLimitsPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResourcesLimits] { + return pulumix.Output[*ServiceTaskSpecResourcesLimits]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesLimitsPtrOutput) Elem() ServiceTaskSpecResourcesLimitsOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesLimits) ServiceTaskSpecResourcesLimits { + if v != nil { + return *v + } + var ret ServiceTaskSpecResourcesLimits + return ret + }).(ServiceTaskSpecResourcesLimitsOutput) +} + +func (o ServiceTaskSpecResourcesLimitsPtrOutput) MemoryBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesLimits) *int { + if v == nil { + return nil + } + return v.MemoryBytes + }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecResourcesLimitsPtrOutput) NanoCpus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesLimits) *int { + if v == nil { + return nil + } + return v.NanoCpus + }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpecResourcesReservation struct { + GenericResources *ServiceTaskSpecResourcesReservationGenericResources `pulumi:"genericResources"` + MemoryBytes *int `pulumi:"memoryBytes"` + NanoCpus *int `pulumi:"nanoCpus"` +} + +// ServiceTaskSpecResourcesReservationInput is an input type that accepts ServiceTaskSpecResourcesReservationArgs and ServiceTaskSpecResourcesReservationOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesReservationInput` via: +// +// ServiceTaskSpecResourcesReservationArgs{...} +type ServiceTaskSpecResourcesReservationInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesReservationOutput() ServiceTaskSpecResourcesReservationOutput + ToServiceTaskSpecResourcesReservationOutputWithContext(context.Context) ServiceTaskSpecResourcesReservationOutput +} + +type ServiceTaskSpecResourcesReservationArgs struct { + GenericResources ServiceTaskSpecResourcesReservationGenericResourcesPtrInput `pulumi:"genericResources"` + MemoryBytes pulumi.IntPtrInput `pulumi:"memoryBytes"` + NanoCpus pulumi.IntPtrInput `pulumi:"nanoCpus"` +} + +func (ServiceTaskSpecResourcesReservationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResourcesReservation)(nil)).Elem() +} + +func (i ServiceTaskSpecResourcesReservationArgs) ToServiceTaskSpecResourcesReservationOutput() ServiceTaskSpecResourcesReservationOutput { + return i.ToServiceTaskSpecResourcesReservationOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesReservationArgs) ToServiceTaskSpecResourcesReservationOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesReservationOutput) +} + +func (i ServiceTaskSpecResourcesReservationArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResourcesReservation] { + return pulumix.Output[ServiceTaskSpecResourcesReservation]{ + OutputState: i.ToServiceTaskSpecResourcesReservationOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecResourcesReservationArgs) ToServiceTaskSpecResourcesReservationPtrOutput() ServiceTaskSpecResourcesReservationPtrOutput { + return i.ToServiceTaskSpecResourcesReservationPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesReservationArgs) ToServiceTaskSpecResourcesReservationPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesReservationOutput).ToServiceTaskSpecResourcesReservationPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecResourcesReservationPtrInput is an input type that accepts ServiceTaskSpecResourcesReservationArgs, ServiceTaskSpecResourcesReservationPtr and ServiceTaskSpecResourcesReservationPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesReservationPtrInput` via: +// +// ServiceTaskSpecResourcesReservationArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecResourcesReservationPtrInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesReservationPtrOutput() ServiceTaskSpecResourcesReservationPtrOutput + ToServiceTaskSpecResourcesReservationPtrOutputWithContext(context.Context) ServiceTaskSpecResourcesReservationPtrOutput +} + +type serviceTaskSpecResourcesReservationPtrType ServiceTaskSpecResourcesReservationArgs + +func ServiceTaskSpecResourcesReservationPtr(v *ServiceTaskSpecResourcesReservationArgs) ServiceTaskSpecResourcesReservationPtrInput { + return (*serviceTaskSpecResourcesReservationPtrType)(v) +} + +func (*serviceTaskSpecResourcesReservationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResourcesReservation)(nil)).Elem() +} + +func (i *serviceTaskSpecResourcesReservationPtrType) ToServiceTaskSpecResourcesReservationPtrOutput() ServiceTaskSpecResourcesReservationPtrOutput { + return i.ToServiceTaskSpecResourcesReservationPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecResourcesReservationPtrType) ToServiceTaskSpecResourcesReservationPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesReservationPtrOutput) +} + +func (i *serviceTaskSpecResourcesReservationPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResourcesReservation] { + return pulumix.Output[*ServiceTaskSpecResourcesReservation]{ + OutputState: i.ToServiceTaskSpecResourcesReservationPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecResourcesReservationOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesReservationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResourcesReservation)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesReservationOutput) ToServiceTaskSpecResourcesReservationOutput() ServiceTaskSpecResourcesReservationOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationOutput) ToServiceTaskSpecResourcesReservationOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationOutput) ToServiceTaskSpecResourcesReservationPtrOutput() ServiceTaskSpecResourcesReservationPtrOutput { + return o.ToServiceTaskSpecResourcesReservationPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecResourcesReservationOutput) ToServiceTaskSpecResourcesReservationPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecResourcesReservation) *ServiceTaskSpecResourcesReservation { + return &v + }).(ServiceTaskSpecResourcesReservationPtrOutput) +} + +func (o ServiceTaskSpecResourcesReservationOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResourcesReservation] { + return pulumix.Output[ServiceTaskSpecResourcesReservation]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesReservationOutput) GenericResources() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesReservation) *ServiceTaskSpecResourcesReservationGenericResources { + return v.GenericResources + }).(ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) +} + +func (o ServiceTaskSpecResourcesReservationOutput) MemoryBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesReservation) *int { return v.MemoryBytes }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecResourcesReservationOutput) NanoCpus() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesReservation) *int { return v.NanoCpus }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpecResourcesReservationPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesReservationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResourcesReservation)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) ToServiceTaskSpecResourcesReservationPtrOutput() ServiceTaskSpecResourcesReservationPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) ToServiceTaskSpecResourcesReservationPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResourcesReservation] { + return pulumix.Output[*ServiceTaskSpecResourcesReservation]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) Elem() ServiceTaskSpecResourcesReservationOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservation) ServiceTaskSpecResourcesReservation { + if v != nil { + return *v + } + var ret ServiceTaskSpecResourcesReservation + return ret + }).(ServiceTaskSpecResourcesReservationOutput) +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) GenericResources() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservation) *ServiceTaskSpecResourcesReservationGenericResources { + if v == nil { + return nil + } + return v.GenericResources + }).(ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) MemoryBytes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservation) *int { + if v == nil { + return nil + } + return v.MemoryBytes + }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecResourcesReservationPtrOutput) NanoCpus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservation) *int { + if v == nil { + return nil + } + return v.NanoCpus + }).(pulumi.IntPtrOutput) +} + +type ServiceTaskSpecResourcesReservationGenericResources struct { + DiscreteResourcesSpecs []string `pulumi:"discreteResourcesSpecs"` + NamedResourcesSpecs []string `pulumi:"namedResourcesSpecs"` +} + +// ServiceTaskSpecResourcesReservationGenericResourcesInput is an input type that accepts ServiceTaskSpecResourcesReservationGenericResourcesArgs and ServiceTaskSpecResourcesReservationGenericResourcesOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesReservationGenericResourcesInput` via: +// +// ServiceTaskSpecResourcesReservationGenericResourcesArgs{...} +type ServiceTaskSpecResourcesReservationGenericResourcesInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesReservationGenericResourcesOutput() ServiceTaskSpecResourcesReservationGenericResourcesOutput + ToServiceTaskSpecResourcesReservationGenericResourcesOutputWithContext(context.Context) ServiceTaskSpecResourcesReservationGenericResourcesOutput +} + +type ServiceTaskSpecResourcesReservationGenericResourcesArgs struct { + DiscreteResourcesSpecs pulumi.StringArrayInput `pulumi:"discreteResourcesSpecs"` + NamedResourcesSpecs pulumi.StringArrayInput `pulumi:"namedResourcesSpecs"` +} + +func (ServiceTaskSpecResourcesReservationGenericResourcesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResourcesReservationGenericResources)(nil)).Elem() +} + +func (i ServiceTaskSpecResourcesReservationGenericResourcesArgs) ToServiceTaskSpecResourcesReservationGenericResourcesOutput() ServiceTaskSpecResourcesReservationGenericResourcesOutput { + return i.ToServiceTaskSpecResourcesReservationGenericResourcesOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesReservationGenericResourcesArgs) ToServiceTaskSpecResourcesReservationGenericResourcesOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationGenericResourcesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesReservationGenericResourcesOutput) +} + +func (i ServiceTaskSpecResourcesReservationGenericResourcesArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResourcesReservationGenericResources] { + return pulumix.Output[ServiceTaskSpecResourcesReservationGenericResources]{ + OutputState: i.ToServiceTaskSpecResourcesReservationGenericResourcesOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecResourcesReservationGenericResourcesArgs) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutput() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return i.ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecResourcesReservationGenericResourcesArgs) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesReservationGenericResourcesOutput).ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecResourcesReservationGenericResourcesPtrInput is an input type that accepts ServiceTaskSpecResourcesReservationGenericResourcesArgs, ServiceTaskSpecResourcesReservationGenericResourcesPtr and ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecResourcesReservationGenericResourcesPtrInput` via: +// +// ServiceTaskSpecResourcesReservationGenericResourcesArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecResourcesReservationGenericResourcesPtrInput interface { + pulumi.Input + + ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutput() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput + ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(context.Context) ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput +} + +type serviceTaskSpecResourcesReservationGenericResourcesPtrType ServiceTaskSpecResourcesReservationGenericResourcesArgs + +func ServiceTaskSpecResourcesReservationGenericResourcesPtr(v *ServiceTaskSpecResourcesReservationGenericResourcesArgs) ServiceTaskSpecResourcesReservationGenericResourcesPtrInput { + return (*serviceTaskSpecResourcesReservationGenericResourcesPtrType)(v) +} + +func (*serviceTaskSpecResourcesReservationGenericResourcesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResourcesReservationGenericResources)(nil)).Elem() +} + +func (i *serviceTaskSpecResourcesReservationGenericResourcesPtrType) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutput() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return i.ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecResourcesReservationGenericResourcesPtrType) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) +} + +func (i *serviceTaskSpecResourcesReservationGenericResourcesPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResourcesReservationGenericResources] { + return pulumix.Output[*ServiceTaskSpecResourcesReservationGenericResources]{ + OutputState: i.ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecResourcesReservationGenericResourcesOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesReservationGenericResourcesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecResourcesReservationGenericResources)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) ToServiceTaskSpecResourcesReservationGenericResourcesOutput() ServiceTaskSpecResourcesReservationGenericResourcesOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) ToServiceTaskSpecResourcesReservationGenericResourcesOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationGenericResourcesOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutput() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return o.ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecResourcesReservationGenericResources) *ServiceTaskSpecResourcesReservationGenericResources { + return &v + }).(ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecResourcesReservationGenericResources] { + return pulumix.Output[ServiceTaskSpecResourcesReservationGenericResources]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) DiscreteResourcesSpecs() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesReservationGenericResources) []string { return v.DiscreteResourcesSpecs }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesOutput) NamedResourcesSpecs() pulumi.StringArrayOutput { + return o.ApplyT(func(v ServiceTaskSpecResourcesReservationGenericResources) []string { return v.NamedResourcesSpecs }).(pulumi.StringArrayOutput) +} + +type ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecResourcesReservationGenericResources)(nil)).Elem() +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutput() ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) ToServiceTaskSpecResourcesReservationGenericResourcesPtrOutputWithContext(ctx context.Context) ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput { + return o +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecResourcesReservationGenericResources] { + return pulumix.Output[*ServiceTaskSpecResourcesReservationGenericResources]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) Elem() ServiceTaskSpecResourcesReservationGenericResourcesOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservationGenericResources) ServiceTaskSpecResourcesReservationGenericResources { + if v != nil { + return *v + } + var ret ServiceTaskSpecResourcesReservationGenericResources + return ret + }).(ServiceTaskSpecResourcesReservationGenericResourcesOutput) +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) DiscreteResourcesSpecs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservationGenericResources) []string { + if v == nil { + return nil + } + return v.DiscreteResourcesSpecs + }).(pulumi.StringArrayOutput) +} + +func (o ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput) NamedResourcesSpecs() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ServiceTaskSpecResourcesReservationGenericResources) []string { + if v == nil { + return nil + } + return v.NamedResourcesSpecs + }).(pulumi.StringArrayOutput) +} + +type ServiceTaskSpecRestartPolicy struct { + Condition *string `pulumi:"condition"` + Delay *string `pulumi:"delay"` + MaxAttempts *int `pulumi:"maxAttempts"` + Window *string `pulumi:"window"` +} + +// ServiceTaskSpecRestartPolicyInput is an input type that accepts ServiceTaskSpecRestartPolicyArgs and ServiceTaskSpecRestartPolicyOutput values. +// You can construct a concrete instance of `ServiceTaskSpecRestartPolicyInput` via: +// +// ServiceTaskSpecRestartPolicyArgs{...} +type ServiceTaskSpecRestartPolicyInput interface { + pulumi.Input + + ToServiceTaskSpecRestartPolicyOutput() ServiceTaskSpecRestartPolicyOutput + ToServiceTaskSpecRestartPolicyOutputWithContext(context.Context) ServiceTaskSpecRestartPolicyOutput +} + +type ServiceTaskSpecRestartPolicyArgs struct { + Condition pulumi.StringPtrInput `pulumi:"condition"` + Delay pulumi.StringPtrInput `pulumi:"delay"` + MaxAttempts pulumi.IntPtrInput `pulumi:"maxAttempts"` + Window pulumi.StringPtrInput `pulumi:"window"` +} + +func (ServiceTaskSpecRestartPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecRestartPolicy)(nil)).Elem() +} + +func (i ServiceTaskSpecRestartPolicyArgs) ToServiceTaskSpecRestartPolicyOutput() ServiceTaskSpecRestartPolicyOutput { + return i.ToServiceTaskSpecRestartPolicyOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecRestartPolicyArgs) ToServiceTaskSpecRestartPolicyOutputWithContext(ctx context.Context) ServiceTaskSpecRestartPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecRestartPolicyOutput) +} + +func (i ServiceTaskSpecRestartPolicyArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecRestartPolicy] { + return pulumix.Output[ServiceTaskSpecRestartPolicy]{ + OutputState: i.ToServiceTaskSpecRestartPolicyOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceTaskSpecRestartPolicyArgs) ToServiceTaskSpecRestartPolicyPtrOutput() ServiceTaskSpecRestartPolicyPtrOutput { + return i.ToServiceTaskSpecRestartPolicyPtrOutputWithContext(context.Background()) +} + +func (i ServiceTaskSpecRestartPolicyArgs) ToServiceTaskSpecRestartPolicyPtrOutputWithContext(ctx context.Context) ServiceTaskSpecRestartPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecRestartPolicyOutput).ToServiceTaskSpecRestartPolicyPtrOutputWithContext(ctx) +} + +// ServiceTaskSpecRestartPolicyPtrInput is an input type that accepts ServiceTaskSpecRestartPolicyArgs, ServiceTaskSpecRestartPolicyPtr and ServiceTaskSpecRestartPolicyPtrOutput values. +// You can construct a concrete instance of `ServiceTaskSpecRestartPolicyPtrInput` via: +// +// ServiceTaskSpecRestartPolicyArgs{...} +// +// or: +// +// nil +type ServiceTaskSpecRestartPolicyPtrInput interface { + pulumi.Input + + ToServiceTaskSpecRestartPolicyPtrOutput() ServiceTaskSpecRestartPolicyPtrOutput + ToServiceTaskSpecRestartPolicyPtrOutputWithContext(context.Context) ServiceTaskSpecRestartPolicyPtrOutput +} + +type serviceTaskSpecRestartPolicyPtrType ServiceTaskSpecRestartPolicyArgs + +func ServiceTaskSpecRestartPolicyPtr(v *ServiceTaskSpecRestartPolicyArgs) ServiceTaskSpecRestartPolicyPtrInput { + return (*serviceTaskSpecRestartPolicyPtrType)(v) +} + +func (*serviceTaskSpecRestartPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecRestartPolicy)(nil)).Elem() +} + +func (i *serviceTaskSpecRestartPolicyPtrType) ToServiceTaskSpecRestartPolicyPtrOutput() ServiceTaskSpecRestartPolicyPtrOutput { + return i.ToServiceTaskSpecRestartPolicyPtrOutputWithContext(context.Background()) +} + +func (i *serviceTaskSpecRestartPolicyPtrType) ToServiceTaskSpecRestartPolicyPtrOutputWithContext(ctx context.Context) ServiceTaskSpecRestartPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceTaskSpecRestartPolicyPtrOutput) +} + +func (i *serviceTaskSpecRestartPolicyPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecRestartPolicy] { + return pulumix.Output[*ServiceTaskSpecRestartPolicy]{ + OutputState: i.ToServiceTaskSpecRestartPolicyPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceTaskSpecRestartPolicyOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecRestartPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceTaskSpecRestartPolicy)(nil)).Elem() +} + +func (o ServiceTaskSpecRestartPolicyOutput) ToServiceTaskSpecRestartPolicyOutput() ServiceTaskSpecRestartPolicyOutput { + return o +} + +func (o ServiceTaskSpecRestartPolicyOutput) ToServiceTaskSpecRestartPolicyOutputWithContext(ctx context.Context) ServiceTaskSpecRestartPolicyOutput { + return o +} + +func (o ServiceTaskSpecRestartPolicyOutput) ToServiceTaskSpecRestartPolicyPtrOutput() ServiceTaskSpecRestartPolicyPtrOutput { + return o.ToServiceTaskSpecRestartPolicyPtrOutputWithContext(context.Background()) +} + +func (o ServiceTaskSpecRestartPolicyOutput) ToServiceTaskSpecRestartPolicyPtrOutputWithContext(ctx context.Context) ServiceTaskSpecRestartPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceTaskSpecRestartPolicy) *ServiceTaskSpecRestartPolicy { + return &v + }).(ServiceTaskSpecRestartPolicyPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceTaskSpecRestartPolicy] { + return pulumix.Output[ServiceTaskSpecRestartPolicy]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecRestartPolicyOutput) Condition() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecRestartPolicy) *string { return v.Condition }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecRestartPolicy) *string { return v.Delay }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyOutput) MaxAttempts() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecRestartPolicy) *int { return v.MaxAttempts }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyOutput) Window() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceTaskSpecRestartPolicy) *string { return v.Window }).(pulumi.StringPtrOutput) +} + +type ServiceTaskSpecRestartPolicyPtrOutput struct{ *pulumi.OutputState } + +func (ServiceTaskSpecRestartPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceTaskSpecRestartPolicy)(nil)).Elem() +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) ToServiceTaskSpecRestartPolicyPtrOutput() ServiceTaskSpecRestartPolicyPtrOutput { + return o +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) ToServiceTaskSpecRestartPolicyPtrOutputWithContext(ctx context.Context) ServiceTaskSpecRestartPolicyPtrOutput { + return o +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceTaskSpecRestartPolicy] { + return pulumix.Output[*ServiceTaskSpecRestartPolicy]{ + OutputState: o.OutputState, + } +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) Elem() ServiceTaskSpecRestartPolicyOutput { + return o.ApplyT(func(v *ServiceTaskSpecRestartPolicy) ServiceTaskSpecRestartPolicy { + if v != nil { + return *v + } + var ret ServiceTaskSpecRestartPolicy + return ret + }).(ServiceTaskSpecRestartPolicyOutput) +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) Condition() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecRestartPolicy) *string { + if v == nil { + return nil + } + return v.Condition + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecRestartPolicy) *string { + if v == nil { + return nil + } + return v.Delay + }).(pulumi.StringPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) MaxAttempts() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecRestartPolicy) *int { + if v == nil { + return nil + } + return v.MaxAttempts + }).(pulumi.IntPtrOutput) +} + +func (o ServiceTaskSpecRestartPolicyPtrOutput) Window() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceTaskSpecRestartPolicy) *string { + if v == nil { + return nil + } + return v.Window + }).(pulumi.StringPtrOutput) +} + +type ServiceUpdateConfig struct { + // Delay between task updates `(ns|us|ms|s|m|h)`. Defaults to `0s`. + Delay *string `pulumi:"delay"` + // Action on update failure: `pause`, `continue` or `rollback`. Defaults to `pause`. + FailureAction *string `pulumi:"failureAction"` + // Failure rate to tolerate during an update. Defaults to `0.0`. + MaxFailureRatio *string `pulumi:"maxFailureRatio"` + // Duration after each task update to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. + Monitor *string `pulumi:"monitor"` + // Update order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. + Order *string `pulumi:"order"` + // Maximum number of tasks to be updated in one iteration. Defaults to `1` + Parallelism *int `pulumi:"parallelism"` +} + +// ServiceUpdateConfigInput is an input type that accepts ServiceUpdateConfigArgs and ServiceUpdateConfigOutput values. +// You can construct a concrete instance of `ServiceUpdateConfigInput` via: +// +// ServiceUpdateConfigArgs{...} +type ServiceUpdateConfigInput interface { + pulumi.Input + + ToServiceUpdateConfigOutput() ServiceUpdateConfigOutput + ToServiceUpdateConfigOutputWithContext(context.Context) ServiceUpdateConfigOutput +} + +type ServiceUpdateConfigArgs struct { + // Delay between task updates `(ns|us|ms|s|m|h)`. Defaults to `0s`. + Delay pulumi.StringPtrInput `pulumi:"delay"` + // Action on update failure: `pause`, `continue` or `rollback`. Defaults to `pause`. + FailureAction pulumi.StringPtrInput `pulumi:"failureAction"` + // Failure rate to tolerate during an update. Defaults to `0.0`. + MaxFailureRatio pulumi.StringPtrInput `pulumi:"maxFailureRatio"` + // Duration after each task update to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. + Monitor pulumi.StringPtrInput `pulumi:"monitor"` + // Update order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. + Order pulumi.StringPtrInput `pulumi:"order"` + // Maximum number of tasks to be updated in one iteration. Defaults to `1` + Parallelism pulumi.IntPtrInput `pulumi:"parallelism"` +} + +func (ServiceUpdateConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceUpdateConfig)(nil)).Elem() +} + +func (i ServiceUpdateConfigArgs) ToServiceUpdateConfigOutput() ServiceUpdateConfigOutput { + return i.ToServiceUpdateConfigOutputWithContext(context.Background()) +} + +func (i ServiceUpdateConfigArgs) ToServiceUpdateConfigOutputWithContext(ctx context.Context) ServiceUpdateConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceUpdateConfigOutput) +} + +func (i ServiceUpdateConfigArgs) ToOutput(ctx context.Context) pulumix.Output[ServiceUpdateConfig] { + return pulumix.Output[ServiceUpdateConfig]{ + OutputState: i.ToServiceUpdateConfigOutputWithContext(ctx).OutputState, + } +} + +func (i ServiceUpdateConfigArgs) ToServiceUpdateConfigPtrOutput() ServiceUpdateConfigPtrOutput { + return i.ToServiceUpdateConfigPtrOutputWithContext(context.Background()) +} + +func (i ServiceUpdateConfigArgs) ToServiceUpdateConfigPtrOutputWithContext(ctx context.Context) ServiceUpdateConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceUpdateConfigOutput).ToServiceUpdateConfigPtrOutputWithContext(ctx) +} + +// ServiceUpdateConfigPtrInput is an input type that accepts ServiceUpdateConfigArgs, ServiceUpdateConfigPtr and ServiceUpdateConfigPtrOutput values. +// You can construct a concrete instance of `ServiceUpdateConfigPtrInput` via: +// +// ServiceUpdateConfigArgs{...} +// +// or: +// +// nil +type ServiceUpdateConfigPtrInput interface { + pulumi.Input + + ToServiceUpdateConfigPtrOutput() ServiceUpdateConfigPtrOutput + ToServiceUpdateConfigPtrOutputWithContext(context.Context) ServiceUpdateConfigPtrOutput +} + +type serviceUpdateConfigPtrType ServiceUpdateConfigArgs + +func ServiceUpdateConfigPtr(v *ServiceUpdateConfigArgs) ServiceUpdateConfigPtrInput { + return (*serviceUpdateConfigPtrType)(v) +} + +func (*serviceUpdateConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceUpdateConfig)(nil)).Elem() +} + +func (i *serviceUpdateConfigPtrType) ToServiceUpdateConfigPtrOutput() ServiceUpdateConfigPtrOutput { + return i.ToServiceUpdateConfigPtrOutputWithContext(context.Background()) +} + +func (i *serviceUpdateConfigPtrType) ToServiceUpdateConfigPtrOutputWithContext(ctx context.Context) ServiceUpdateConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceUpdateConfigPtrOutput) +} + +func (i *serviceUpdateConfigPtrType) ToOutput(ctx context.Context) pulumix.Output[*ServiceUpdateConfig] { + return pulumix.Output[*ServiceUpdateConfig]{ + OutputState: i.ToServiceUpdateConfigPtrOutputWithContext(ctx).OutputState, + } +} + +type ServiceUpdateConfigOutput struct{ *pulumi.OutputState } + +func (ServiceUpdateConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceUpdateConfig)(nil)).Elem() +} + +func (o ServiceUpdateConfigOutput) ToServiceUpdateConfigOutput() ServiceUpdateConfigOutput { + return o +} + +func (o ServiceUpdateConfigOutput) ToServiceUpdateConfigOutputWithContext(ctx context.Context) ServiceUpdateConfigOutput { + return o +} + +func (o ServiceUpdateConfigOutput) ToServiceUpdateConfigPtrOutput() ServiceUpdateConfigPtrOutput { + return o.ToServiceUpdateConfigPtrOutputWithContext(context.Background()) +} + +func (o ServiceUpdateConfigOutput) ToServiceUpdateConfigPtrOutputWithContext(ctx context.Context) ServiceUpdateConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceUpdateConfig) *ServiceUpdateConfig { + return &v + }).(ServiceUpdateConfigPtrOutput) +} + +func (o ServiceUpdateConfigOutput) ToOutput(ctx context.Context) pulumix.Output[ServiceUpdateConfig] { + return pulumix.Output[ServiceUpdateConfig]{ + OutputState: o.OutputState, + } +} + +// Delay between task updates `(ns|us|ms|s|m|h)`. Defaults to `0s`. +func (o ServiceUpdateConfigOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceUpdateConfig) *string { return v.Delay }).(pulumi.StringPtrOutput) +} + +// Action on update failure: `pause`, `continue` or `rollback`. Defaults to `pause`. +func (o ServiceUpdateConfigOutput) FailureAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceUpdateConfig) *string { return v.FailureAction }).(pulumi.StringPtrOutput) +} + +// Failure rate to tolerate during an update. Defaults to `0.0`. +func (o ServiceUpdateConfigOutput) MaxFailureRatio() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceUpdateConfig) *string { return v.MaxFailureRatio }).(pulumi.StringPtrOutput) +} + +// Duration after each task update to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. +func (o ServiceUpdateConfigOutput) Monitor() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceUpdateConfig) *string { return v.Monitor }).(pulumi.StringPtrOutput) +} + +// Update order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. +func (o ServiceUpdateConfigOutput) Order() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceUpdateConfig) *string { return v.Order }).(pulumi.StringPtrOutput) +} + +// Maximum number of tasks to be updated in one iteration. Defaults to `1` +func (o ServiceUpdateConfigOutput) Parallelism() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServiceUpdateConfig) *int { return v.Parallelism }).(pulumi.IntPtrOutput) +} + +type ServiceUpdateConfigPtrOutput struct{ *pulumi.OutputState } + +func (ServiceUpdateConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceUpdateConfig)(nil)).Elem() +} + +func (o ServiceUpdateConfigPtrOutput) ToServiceUpdateConfigPtrOutput() ServiceUpdateConfigPtrOutput { + return o +} + +func (o ServiceUpdateConfigPtrOutput) ToServiceUpdateConfigPtrOutputWithContext(ctx context.Context) ServiceUpdateConfigPtrOutput { + return o +} + +func (o ServiceUpdateConfigPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceUpdateConfig] { + return pulumix.Output[*ServiceUpdateConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceUpdateConfigPtrOutput) Elem() ServiceUpdateConfigOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) ServiceUpdateConfig { + if v != nil { + return *v + } + var ret ServiceUpdateConfig + return ret + }).(ServiceUpdateConfigOutput) +} + +// Delay between task updates `(ns|us|ms|s|m|h)`. Defaults to `0s`. +func (o ServiceUpdateConfigPtrOutput) Delay() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) *string { + if v == nil { + return nil + } + return v.Delay + }).(pulumi.StringPtrOutput) +} + +// Action on update failure: `pause`, `continue` or `rollback`. Defaults to `pause`. +func (o ServiceUpdateConfigPtrOutput) FailureAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) *string { + if v == nil { + return nil + } + return v.FailureAction + }).(pulumi.StringPtrOutput) +} + +// Failure rate to tolerate during an update. Defaults to `0.0`. +func (o ServiceUpdateConfigPtrOutput) MaxFailureRatio() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) *string { + if v == nil { + return nil + } + return v.MaxFailureRatio + }).(pulumi.StringPtrOutput) +} + +// Duration after each task update to monitor for failure (ns|us|ms|s|m|h). Defaults to `5s`. +func (o ServiceUpdateConfigPtrOutput) Monitor() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) *string { + if v == nil { + return nil + } + return v.Monitor + }).(pulumi.StringPtrOutput) +} + +// Update order: either 'stop-first' or 'start-first'. Defaults to `stop-first`. +func (o ServiceUpdateConfigPtrOutput) Order() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) *string { + if v == nil { + return nil + } + return v.Order + }).(pulumi.StringPtrOutput) +} + +// Maximum number of tasks to be updated in one iteration. Defaults to `1` +func (o ServiceUpdateConfigPtrOutput) Parallelism() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServiceUpdateConfig) *int { + if v == nil { + return nil + } + return v.Parallelism + }).(pulumi.IntPtrOutput) +} + +type VolumeLabel struct { + // Name of the label + Label string `pulumi:"label"` + // Value of the label + Value string `pulumi:"value"` +} + +// VolumeLabelInput is an input type that accepts VolumeLabelArgs and VolumeLabelOutput values. +// You can construct a concrete instance of `VolumeLabelInput` via: +// +// VolumeLabelArgs{...} +type VolumeLabelInput interface { + pulumi.Input + + ToVolumeLabelOutput() VolumeLabelOutput + ToVolumeLabelOutputWithContext(context.Context) VolumeLabelOutput +} + +type VolumeLabelArgs struct { + // Name of the label + Label pulumi.StringInput `pulumi:"label"` + // Value of the label + Value pulumi.StringInput `pulumi:"value"` +} + +func (VolumeLabelArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VolumeLabel)(nil)).Elem() +} + +func (i VolumeLabelArgs) ToVolumeLabelOutput() VolumeLabelOutput { + return i.ToVolumeLabelOutputWithContext(context.Background()) +} + +func (i VolumeLabelArgs) ToVolumeLabelOutputWithContext(ctx context.Context) VolumeLabelOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeLabelOutput) +} + +func (i VolumeLabelArgs) ToOutput(ctx context.Context) pulumix.Output[VolumeLabel] { + return pulumix.Output[VolumeLabel]{ + OutputState: i.ToVolumeLabelOutputWithContext(ctx).OutputState, + } +} + +// VolumeLabelArrayInput is an input type that accepts VolumeLabelArray and VolumeLabelArrayOutput values. +// You can construct a concrete instance of `VolumeLabelArrayInput` via: +// +// VolumeLabelArray{ VolumeLabelArgs{...} } +type VolumeLabelArrayInput interface { + pulumi.Input + + ToVolumeLabelArrayOutput() VolumeLabelArrayOutput + ToVolumeLabelArrayOutputWithContext(context.Context) VolumeLabelArrayOutput +} + +type VolumeLabelArray []VolumeLabelInput + +func (VolumeLabelArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]VolumeLabel)(nil)).Elem() +} + +func (i VolumeLabelArray) ToVolumeLabelArrayOutput() VolumeLabelArrayOutput { + return i.ToVolumeLabelArrayOutputWithContext(context.Background()) +} + +func (i VolumeLabelArray) ToVolumeLabelArrayOutputWithContext(ctx context.Context) VolumeLabelArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeLabelArrayOutput) +} + +func (i VolumeLabelArray) ToOutput(ctx context.Context) pulumix.Output[[]VolumeLabel] { + return pulumix.Output[[]VolumeLabel]{ + OutputState: i.ToVolumeLabelArrayOutputWithContext(ctx).OutputState, + } +} + +type VolumeLabelOutput struct{ *pulumi.OutputState } + +func (VolumeLabelOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VolumeLabel)(nil)).Elem() +} + +func (o VolumeLabelOutput) ToVolumeLabelOutput() VolumeLabelOutput { + return o +} + +func (o VolumeLabelOutput) ToVolumeLabelOutputWithContext(ctx context.Context) VolumeLabelOutput { + return o +} + +func (o VolumeLabelOutput) ToOutput(ctx context.Context) pulumix.Output[VolumeLabel] { + return pulumix.Output[VolumeLabel]{ + OutputState: o.OutputState, + } +} + +// Name of the label +func (o VolumeLabelOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v VolumeLabel) string { return v.Label }).(pulumi.StringOutput) +} + +// Value of the label +func (o VolumeLabelOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v VolumeLabel) string { return v.Value }).(pulumi.StringOutput) +} + +type VolumeLabelArrayOutput struct{ *pulumi.OutputState } + +func (VolumeLabelArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]VolumeLabel)(nil)).Elem() +} + +func (o VolumeLabelArrayOutput) ToVolumeLabelArrayOutput() VolumeLabelArrayOutput { + return o +} + +func (o VolumeLabelArrayOutput) ToVolumeLabelArrayOutputWithContext(ctx context.Context) VolumeLabelArrayOutput { + return o +} + +func (o VolumeLabelArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]VolumeLabel] { + return pulumix.Output[[]VolumeLabel]{ + OutputState: o.OutputState, + } +} + +func (o VolumeLabelArrayOutput) Index(i pulumi.IntInput) VolumeLabelOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) VolumeLabel { + return vs[0].([]VolumeLabel)[vs[1].(int)] + }).(VolumeLabelOutput) +} + +// Contains a list of images to reference when building using a cache +type CacheFrom struct { + // Specifies cached images + Images []string `pulumi:"images"` +} + +// CacheFromInput is an input type that accepts CacheFromArgs and CacheFromOutput values. +// You can construct a concrete instance of `CacheFromInput` via: +// +// CacheFromArgs{...} +type CacheFromInput interface { + pulumi.Input + + ToCacheFromOutput() CacheFromOutput + ToCacheFromOutputWithContext(context.Context) CacheFromOutput +} + +// Contains a list of images to reference when building using a cache +type CacheFromArgs struct { + // Specifies cached images + Images pulumi.StringArrayInput `pulumi:"images"` +} + +func (CacheFromArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CacheFrom)(nil)).Elem() +} + +func (i CacheFromArgs) ToCacheFromOutput() CacheFromOutput { + return i.ToCacheFromOutputWithContext(context.Background()) +} + +func (i CacheFromArgs) ToCacheFromOutputWithContext(ctx context.Context) CacheFromOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheFromOutput) +} + +func (i CacheFromArgs) ToOutput(ctx context.Context) pulumix.Output[CacheFrom] { + return pulumix.Output[CacheFrom]{ + OutputState: i.ToCacheFromOutputWithContext(ctx).OutputState, + } +} + +func (i CacheFromArgs) ToCacheFromPtrOutput() CacheFromPtrOutput { + return i.ToCacheFromPtrOutputWithContext(context.Background()) +} + +func (i CacheFromArgs) ToCacheFromPtrOutputWithContext(ctx context.Context) CacheFromPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheFromOutput).ToCacheFromPtrOutputWithContext(ctx) +} + +// CacheFromPtrInput is an input type that accepts CacheFromArgs, CacheFromPtr and CacheFromPtrOutput values. +// You can construct a concrete instance of `CacheFromPtrInput` via: +// +// CacheFromArgs{...} +// +// or: +// +// nil +type CacheFromPtrInput interface { + pulumi.Input + + ToCacheFromPtrOutput() CacheFromPtrOutput + ToCacheFromPtrOutputWithContext(context.Context) CacheFromPtrOutput +} + +type cacheFromPtrType CacheFromArgs + +func CacheFromPtr(v *CacheFromArgs) CacheFromPtrInput { + return (*cacheFromPtrType)(v) +} + +func (*cacheFromPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CacheFrom)(nil)).Elem() +} + +func (i *cacheFromPtrType) ToCacheFromPtrOutput() CacheFromPtrOutput { + return i.ToCacheFromPtrOutputWithContext(context.Background()) +} + +func (i *cacheFromPtrType) ToCacheFromPtrOutputWithContext(ctx context.Context) CacheFromPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheFromPtrOutput) +} + +func (i *cacheFromPtrType) ToOutput(ctx context.Context) pulumix.Output[*CacheFrom] { + return pulumix.Output[*CacheFrom]{ + OutputState: i.ToCacheFromPtrOutputWithContext(ctx).OutputState, + } +} + +// Contains a list of images to reference when building using a cache +type CacheFromOutput struct{ *pulumi.OutputState } + +func (CacheFromOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CacheFrom)(nil)).Elem() +} + +func (o CacheFromOutput) ToCacheFromOutput() CacheFromOutput { + return o +} + +func (o CacheFromOutput) ToCacheFromOutputWithContext(ctx context.Context) CacheFromOutput { + return o +} + +func (o CacheFromOutput) ToCacheFromPtrOutput() CacheFromPtrOutput { + return o.ToCacheFromPtrOutputWithContext(context.Background()) +} + +func (o CacheFromOutput) ToCacheFromPtrOutputWithContext(ctx context.Context) CacheFromPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CacheFrom) *CacheFrom { + return &v + }).(CacheFromPtrOutput) +} + +func (o CacheFromOutput) ToOutput(ctx context.Context) pulumix.Output[CacheFrom] { + return pulumix.Output[CacheFrom]{ + OutputState: o.OutputState, + } +} + +// Specifies cached images +func (o CacheFromOutput) Images() pulumi.StringArrayOutput { + return o.ApplyT(func(v CacheFrom) []string { return v.Images }).(pulumi.StringArrayOutput) +} + +type CacheFromPtrOutput struct{ *pulumi.OutputState } + +func (CacheFromPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CacheFrom)(nil)).Elem() +} + +func (o CacheFromPtrOutput) ToCacheFromPtrOutput() CacheFromPtrOutput { + return o +} + +func (o CacheFromPtrOutput) ToCacheFromPtrOutputWithContext(ctx context.Context) CacheFromPtrOutput { + return o +} + +func (o CacheFromPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*CacheFrom] { + return pulumix.Output[*CacheFrom]{ + OutputState: o.OutputState, + } +} + +func (o CacheFromPtrOutput) Elem() CacheFromOutput { + return o.ApplyT(func(v *CacheFrom) CacheFrom { + if v != nil { + return *v + } + var ret CacheFrom + return ret + }).(CacheFromOutput) +} + +// Specifies cached images +func (o CacheFromPtrOutput) Images() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CacheFrom) []string { + if v == nil { + return nil + } + return v.Images + }).(pulumi.StringArrayOutput) +} + +// The Docker build context +type DockerBuild struct { + // An optional map of named build-time argument variables to set during the Docker build. This flag allows you to pass build-time variablesthat can be accessed like environment variables inside the RUN instruction. + Args map[string]string `pulumi:"args"` + // The version of the Docker builder. + BuilderVersion *BuilderVersion `pulumi:"builderVersion"` + // A list of image names to use as build cache. Images provided must have a cache manifest. Must provide authentication to cache registry. + CacheFrom *CacheFrom `pulumi:"cacheFrom"` + // The path to the build context to use. + Context *string `pulumi:"context"` + // The path to the Dockerfile to use. + Dockerfile *string `pulumi:"dockerfile"` + // The architecture of the platform you want to build this image for, e.g. `linux/arm64`. + Platform *string `pulumi:"platform"` + // The target of the Dockerfile to build + Target *string `pulumi:"target"` +} + +// Defaults sets the appropriate defaults for DockerBuild +func (val *DockerBuild) Defaults() *DockerBuild { + if val == nil { + return nil + } + tmp := *val + if tmp.BuilderVersion == nil { + builderVersion_ := BuilderVersion("BuilderBuildKit") + tmp.BuilderVersion = &builderVersion_ + } + return &tmp +} + +// DockerBuildInput is an input type that accepts DockerBuildArgs and DockerBuildOutput values. +// You can construct a concrete instance of `DockerBuildInput` via: +// +// DockerBuildArgs{...} +type DockerBuildInput interface { + pulumi.Input + + ToDockerBuildOutput() DockerBuildOutput + ToDockerBuildOutputWithContext(context.Context) DockerBuildOutput +} + +// The Docker build context +type DockerBuildArgs struct { + // An optional map of named build-time argument variables to set during the Docker build. This flag allows you to pass build-time variablesthat can be accessed like environment variables inside the RUN instruction. + Args pulumi.StringMapInput `pulumi:"args"` + // The version of the Docker builder. + BuilderVersion BuilderVersionPtrInput `pulumi:"builderVersion"` + // A list of image names to use as build cache. Images provided must have a cache manifest. Must provide authentication to cache registry. + CacheFrom CacheFromPtrInput `pulumi:"cacheFrom"` + // The path to the build context to use. + Context pulumi.StringPtrInput `pulumi:"context"` + // The path to the Dockerfile to use. + Dockerfile pulumi.StringPtrInput `pulumi:"dockerfile"` + // The architecture of the platform you want to build this image for, e.g. `linux/arm64`. + Platform pulumi.StringPtrInput `pulumi:"platform"` + // The target of the Dockerfile to build + Target pulumi.StringPtrInput `pulumi:"target"` +} + +// Defaults sets the appropriate defaults for DockerBuildArgs +func (val *DockerBuildArgs) Defaults() *DockerBuildArgs { + if val == nil { + return nil + } + tmp := *val + if tmp.BuilderVersion == nil { + tmp.BuilderVersion = BuilderVersion("BuilderBuildKit") + } + return &tmp +} +func (DockerBuildArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DockerBuild)(nil)).Elem() +} + +func (i DockerBuildArgs) ToDockerBuildOutput() DockerBuildOutput { + return i.ToDockerBuildOutputWithContext(context.Background()) +} + +func (i DockerBuildArgs) ToDockerBuildOutputWithContext(ctx context.Context) DockerBuildOutput { + return pulumi.ToOutputWithContext(ctx, i).(DockerBuildOutput) +} + +func (i DockerBuildArgs) ToOutput(ctx context.Context) pulumix.Output[DockerBuild] { + return pulumix.Output[DockerBuild]{ + OutputState: i.ToDockerBuildOutputWithContext(ctx).OutputState, + } +} + +func (i DockerBuildArgs) ToDockerBuildPtrOutput() DockerBuildPtrOutput { + return i.ToDockerBuildPtrOutputWithContext(context.Background()) +} + +func (i DockerBuildArgs) ToDockerBuildPtrOutputWithContext(ctx context.Context) DockerBuildPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DockerBuildOutput).ToDockerBuildPtrOutputWithContext(ctx) +} + +// DockerBuildPtrInput is an input type that accepts DockerBuildArgs, DockerBuildPtr and DockerBuildPtrOutput values. +// You can construct a concrete instance of `DockerBuildPtrInput` via: +// +// DockerBuildArgs{...} +// +// or: +// +// nil +type DockerBuildPtrInput interface { + pulumi.Input + + ToDockerBuildPtrOutput() DockerBuildPtrOutput + ToDockerBuildPtrOutputWithContext(context.Context) DockerBuildPtrOutput +} + +type dockerBuildPtrType DockerBuildArgs + +func DockerBuildPtr(v *DockerBuildArgs) DockerBuildPtrInput { + return (*dockerBuildPtrType)(v) +} + +func (*dockerBuildPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DockerBuild)(nil)).Elem() +} + +func (i *dockerBuildPtrType) ToDockerBuildPtrOutput() DockerBuildPtrOutput { + return i.ToDockerBuildPtrOutputWithContext(context.Background()) +} + +func (i *dockerBuildPtrType) ToDockerBuildPtrOutputWithContext(ctx context.Context) DockerBuildPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DockerBuildPtrOutput) +} + +func (i *dockerBuildPtrType) ToOutput(ctx context.Context) pulumix.Output[*DockerBuild] { + return pulumix.Output[*DockerBuild]{ + OutputState: i.ToDockerBuildPtrOutputWithContext(ctx).OutputState, + } +} + +// The Docker build context +type DockerBuildOutput struct{ *pulumi.OutputState } + +func (DockerBuildOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DockerBuild)(nil)).Elem() +} + +func (o DockerBuildOutput) ToDockerBuildOutput() DockerBuildOutput { + return o +} + +func (o DockerBuildOutput) ToDockerBuildOutputWithContext(ctx context.Context) DockerBuildOutput { + return o +} + +func (o DockerBuildOutput) ToDockerBuildPtrOutput() DockerBuildPtrOutput { + return o.ToDockerBuildPtrOutputWithContext(context.Background()) +} + +func (o DockerBuildOutput) ToDockerBuildPtrOutputWithContext(ctx context.Context) DockerBuildPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DockerBuild) *DockerBuild { + return &v + }).(DockerBuildPtrOutput) +} + +func (o DockerBuildOutput) ToOutput(ctx context.Context) pulumix.Output[DockerBuild] { + return pulumix.Output[DockerBuild]{ + OutputState: o.OutputState, + } +} + +// An optional map of named build-time argument variables to set during the Docker build. This flag allows you to pass build-time variablesthat can be accessed like environment variables inside the RUN instruction. +func (o DockerBuildOutput) Args() pulumi.StringMapOutput { + return o.ApplyT(func(v DockerBuild) map[string]string { return v.Args }).(pulumi.StringMapOutput) +} + +// The version of the Docker builder. +func (o DockerBuildOutput) BuilderVersion() BuilderVersionPtrOutput { + return o.ApplyT(func(v DockerBuild) *BuilderVersion { return v.BuilderVersion }).(BuilderVersionPtrOutput) +} + +// A list of image names to use as build cache. Images provided must have a cache manifest. Must provide authentication to cache registry. +func (o DockerBuildOutput) CacheFrom() CacheFromPtrOutput { + return o.ApplyT(func(v DockerBuild) *CacheFrom { return v.CacheFrom }).(CacheFromPtrOutput) +} + +// The path to the build context to use. +func (o DockerBuildOutput) Context() pulumi.StringPtrOutput { + return o.ApplyT(func(v DockerBuild) *string { return v.Context }).(pulumi.StringPtrOutput) +} + +// The path to the Dockerfile to use. +func (o DockerBuildOutput) Dockerfile() pulumi.StringPtrOutput { + return o.ApplyT(func(v DockerBuild) *string { return v.Dockerfile }).(pulumi.StringPtrOutput) +} + +// The architecture of the platform you want to build this image for, e.g. `linux/arm64`. +func (o DockerBuildOutput) Platform() pulumi.StringPtrOutput { + return o.ApplyT(func(v DockerBuild) *string { return v.Platform }).(pulumi.StringPtrOutput) +} + +// The target of the Dockerfile to build +func (o DockerBuildOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v DockerBuild) *string { return v.Target }).(pulumi.StringPtrOutput) +} + +type DockerBuildPtrOutput struct{ *pulumi.OutputState } + +func (DockerBuildPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DockerBuild)(nil)).Elem() +} + +func (o DockerBuildPtrOutput) ToDockerBuildPtrOutput() DockerBuildPtrOutput { + return o +} + +func (o DockerBuildPtrOutput) ToDockerBuildPtrOutputWithContext(ctx context.Context) DockerBuildPtrOutput { + return o +} + +func (o DockerBuildPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*DockerBuild] { + return pulumix.Output[*DockerBuild]{ + OutputState: o.OutputState, + } +} + +func (o DockerBuildPtrOutput) Elem() DockerBuildOutput { + return o.ApplyT(func(v *DockerBuild) DockerBuild { + if v != nil { + return *v + } + var ret DockerBuild + return ret + }).(DockerBuildOutput) +} + +// An optional map of named build-time argument variables to set during the Docker build. This flag allows you to pass build-time variablesthat can be accessed like environment variables inside the RUN instruction. +func (o DockerBuildPtrOutput) Args() pulumi.StringMapOutput { + return o.ApplyT(func(v *DockerBuild) map[string]string { + if v == nil { + return nil + } + return v.Args + }).(pulumi.StringMapOutput) +} + +// The version of the Docker builder. +func (o DockerBuildPtrOutput) BuilderVersion() BuilderVersionPtrOutput { + return o.ApplyT(func(v *DockerBuild) *BuilderVersion { + if v == nil { + return nil + } + return v.BuilderVersion + }).(BuilderVersionPtrOutput) +} + +// A list of image names to use as build cache. Images provided must have a cache manifest. Must provide authentication to cache registry. +func (o DockerBuildPtrOutput) CacheFrom() CacheFromPtrOutput { + return o.ApplyT(func(v *DockerBuild) *CacheFrom { + if v == nil { + return nil + } + return v.CacheFrom + }).(CacheFromPtrOutput) +} + +// The path to the build context to use. +func (o DockerBuildPtrOutput) Context() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DockerBuild) *string { + if v == nil { + return nil + } + return v.Context + }).(pulumi.StringPtrOutput) +} + +// The path to the Dockerfile to use. +func (o DockerBuildPtrOutput) Dockerfile() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DockerBuild) *string { + if v == nil { + return nil + } + return v.Dockerfile + }).(pulumi.StringPtrOutput) +} + +// The architecture of the platform you want to build this image for, e.g. `linux/arm64`. +func (o DockerBuildPtrOutput) Platform() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DockerBuild) *string { + if v == nil { + return nil + } + return v.Platform + }).(pulumi.StringPtrOutput) +} + +// The target of the Dockerfile to build +func (o DockerBuildPtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DockerBuild) *string { + if v == nil { + return nil + } + return v.Target + }).(pulumi.StringPtrOutput) +} + +type GetNetworkIpamConfig struct { + AuxAddress map[string]interface{} `pulumi:"auxAddress"` + Gateway *string `pulumi:"gateway"` + IpRange *string `pulumi:"ipRange"` + Subnet *string `pulumi:"subnet"` +} + +// GetNetworkIpamConfigInput is an input type that accepts GetNetworkIpamConfigArgs and GetNetworkIpamConfigOutput values. +// You can construct a concrete instance of `GetNetworkIpamConfigInput` via: +// +// GetNetworkIpamConfigArgs{...} +type GetNetworkIpamConfigInput interface { + pulumi.Input + + ToGetNetworkIpamConfigOutput() GetNetworkIpamConfigOutput + ToGetNetworkIpamConfigOutputWithContext(context.Context) GetNetworkIpamConfigOutput +} + +type GetNetworkIpamConfigArgs struct { + AuxAddress pulumi.MapInput `pulumi:"auxAddress"` + Gateway pulumi.StringPtrInput `pulumi:"gateway"` + IpRange pulumi.StringPtrInput `pulumi:"ipRange"` + Subnet pulumi.StringPtrInput `pulumi:"subnet"` +} + +func (GetNetworkIpamConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetNetworkIpamConfig)(nil)).Elem() +} + +func (i GetNetworkIpamConfigArgs) ToGetNetworkIpamConfigOutput() GetNetworkIpamConfigOutput { + return i.ToGetNetworkIpamConfigOutputWithContext(context.Background()) +} + +func (i GetNetworkIpamConfigArgs) ToGetNetworkIpamConfigOutputWithContext(ctx context.Context) GetNetworkIpamConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetNetworkIpamConfigOutput) +} + +func (i GetNetworkIpamConfigArgs) ToOutput(ctx context.Context) pulumix.Output[GetNetworkIpamConfig] { + return pulumix.Output[GetNetworkIpamConfig]{ + OutputState: i.ToGetNetworkIpamConfigOutputWithContext(ctx).OutputState, + } +} + +// GetNetworkIpamConfigArrayInput is an input type that accepts GetNetworkIpamConfigArray and GetNetworkIpamConfigArrayOutput values. +// You can construct a concrete instance of `GetNetworkIpamConfigArrayInput` via: +// +// GetNetworkIpamConfigArray{ GetNetworkIpamConfigArgs{...} } +type GetNetworkIpamConfigArrayInput interface { + pulumi.Input + + ToGetNetworkIpamConfigArrayOutput() GetNetworkIpamConfigArrayOutput + ToGetNetworkIpamConfigArrayOutputWithContext(context.Context) GetNetworkIpamConfigArrayOutput +} + +type GetNetworkIpamConfigArray []GetNetworkIpamConfigInput + +func (GetNetworkIpamConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetNetworkIpamConfig)(nil)).Elem() +} + +func (i GetNetworkIpamConfigArray) ToGetNetworkIpamConfigArrayOutput() GetNetworkIpamConfigArrayOutput { + return i.ToGetNetworkIpamConfigArrayOutputWithContext(context.Background()) +} + +func (i GetNetworkIpamConfigArray) ToGetNetworkIpamConfigArrayOutputWithContext(ctx context.Context) GetNetworkIpamConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetNetworkIpamConfigArrayOutput) +} + +func (i GetNetworkIpamConfigArray) ToOutput(ctx context.Context) pulumix.Output[[]GetNetworkIpamConfig] { + return pulumix.Output[[]GetNetworkIpamConfig]{ + OutputState: i.ToGetNetworkIpamConfigArrayOutputWithContext(ctx).OutputState, + } +} + +type GetNetworkIpamConfigOutput struct{ *pulumi.OutputState } + +func (GetNetworkIpamConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetNetworkIpamConfig)(nil)).Elem() +} + +func (o GetNetworkIpamConfigOutput) ToGetNetworkIpamConfigOutput() GetNetworkIpamConfigOutput { + return o +} + +func (o GetNetworkIpamConfigOutput) ToGetNetworkIpamConfigOutputWithContext(ctx context.Context) GetNetworkIpamConfigOutput { + return o +} + +func (o GetNetworkIpamConfigOutput) ToOutput(ctx context.Context) pulumix.Output[GetNetworkIpamConfig] { + return pulumix.Output[GetNetworkIpamConfig]{ + OutputState: o.OutputState, + } +} + +func (o GetNetworkIpamConfigOutput) AuxAddress() pulumi.MapOutput { + return o.ApplyT(func(v GetNetworkIpamConfig) map[string]interface{} { return v.AuxAddress }).(pulumi.MapOutput) +} + +func (o GetNetworkIpamConfigOutput) Gateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetNetworkIpamConfig) *string { return v.Gateway }).(pulumi.StringPtrOutput) +} + +func (o GetNetworkIpamConfigOutput) IpRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetNetworkIpamConfig) *string { return v.IpRange }).(pulumi.StringPtrOutput) +} + +func (o GetNetworkIpamConfigOutput) Subnet() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetNetworkIpamConfig) *string { return v.Subnet }).(pulumi.StringPtrOutput) +} + +type GetNetworkIpamConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetNetworkIpamConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetNetworkIpamConfig)(nil)).Elem() +} + +func (o GetNetworkIpamConfigArrayOutput) ToGetNetworkIpamConfigArrayOutput() GetNetworkIpamConfigArrayOutput { + return o +} + +func (o GetNetworkIpamConfigArrayOutput) ToGetNetworkIpamConfigArrayOutputWithContext(ctx context.Context) GetNetworkIpamConfigArrayOutput { + return o +} + +func (o GetNetworkIpamConfigArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]GetNetworkIpamConfig] { + return pulumix.Output[[]GetNetworkIpamConfig]{ + OutputState: o.OutputState, + } +} + +func (o GetNetworkIpamConfigArrayOutput) Index(i pulumi.IntInput) GetNetworkIpamConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetNetworkIpamConfig { + return vs[0].([]GetNetworkIpamConfig)[vs[1].(int)] + }).(GetNetworkIpamConfigOutput) +} + +// Describes a Docker container registry +type Registry struct { + // The password to authenticate to the registry. Does not cause image rebuild when changed. + Password *string `pulumi:"password"` + // The URL of the Docker registry server + Server *string `pulumi:"server"` + // The username to authenticate to the registry. Does not cause image rebuild when changed. + Username *string `pulumi:"username"` +} + +// RegistryInput is an input type that accepts RegistryArgs and RegistryOutput values. +// You can construct a concrete instance of `RegistryInput` via: +// +// RegistryArgs{...} +type RegistryInput interface { + pulumi.Input + + ToRegistryOutput() RegistryOutput + ToRegistryOutputWithContext(context.Context) RegistryOutput +} + +// Describes a Docker container registry +type RegistryArgs struct { + // The password to authenticate to the registry. Does not cause image rebuild when changed. + Password pulumi.StringPtrInput `pulumi:"password"` + // The URL of the Docker registry server + Server pulumi.StringPtrInput `pulumi:"server"` + // The username to authenticate to the registry. Does not cause image rebuild when changed. + Username pulumi.StringPtrInput `pulumi:"username"` +} + +func (RegistryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Registry)(nil)).Elem() +} + +func (i RegistryArgs) ToRegistryOutput() RegistryOutput { + return i.ToRegistryOutputWithContext(context.Background()) +} + +func (i RegistryArgs) ToRegistryOutputWithContext(ctx context.Context) RegistryOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegistryOutput) +} + +func (i RegistryArgs) ToOutput(ctx context.Context) pulumix.Output[Registry] { + return pulumix.Output[Registry]{ + OutputState: i.ToRegistryOutputWithContext(ctx).OutputState, + } +} + +func (i RegistryArgs) ToRegistryPtrOutput() RegistryPtrOutput { + return i.ToRegistryPtrOutputWithContext(context.Background()) +} + +func (i RegistryArgs) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegistryOutput).ToRegistryPtrOutputWithContext(ctx) +} + +// RegistryPtrInput is an input type that accepts RegistryArgs, RegistryPtr and RegistryPtrOutput values. +// You can construct a concrete instance of `RegistryPtrInput` via: +// +// RegistryArgs{...} +// +// or: +// +// nil +type RegistryPtrInput interface { + pulumi.Input + + ToRegistryPtrOutput() RegistryPtrOutput + ToRegistryPtrOutputWithContext(context.Context) RegistryPtrOutput +} + +type registryPtrType RegistryArgs + +func RegistryPtr(v *RegistryArgs) RegistryPtrInput { + return (*registryPtrType)(v) +} + +func (*registryPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Registry)(nil)).Elem() +} + +func (i *registryPtrType) ToRegistryPtrOutput() RegistryPtrOutput { + return i.ToRegistryPtrOutputWithContext(context.Background()) +} + +func (i *registryPtrType) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegistryPtrOutput) +} + +func (i *registryPtrType) ToOutput(ctx context.Context) pulumix.Output[*Registry] { + return pulumix.Output[*Registry]{ + OutputState: i.ToRegistryPtrOutputWithContext(ctx).OutputState, + } +} + +// Describes a Docker container registry +type RegistryOutput struct{ *pulumi.OutputState } + +func (RegistryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Registry)(nil)).Elem() +} + +func (o RegistryOutput) ToRegistryOutput() RegistryOutput { + return o +} + +func (o RegistryOutput) ToRegistryOutputWithContext(ctx context.Context) RegistryOutput { + return o +} + +func (o RegistryOutput) ToRegistryPtrOutput() RegistryPtrOutput { + return o.ToRegistryPtrOutputWithContext(context.Background()) +} + +func (o RegistryOutput) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v Registry) *Registry { + return &v + }).(RegistryPtrOutput) +} + +func (o RegistryOutput) ToOutput(ctx context.Context) pulumix.Output[Registry] { + return pulumix.Output[Registry]{ + OutputState: o.OutputState, + } +} + +// The password to authenticate to the registry. Does not cause image rebuild when changed. +func (o RegistryOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v Registry) *string { return v.Password }).(pulumi.StringPtrOutput) +} + +// The URL of the Docker registry server +func (o RegistryOutput) Server() pulumi.StringPtrOutput { + return o.ApplyT(func(v Registry) *string { return v.Server }).(pulumi.StringPtrOutput) +} + +// The username to authenticate to the registry. Does not cause image rebuild when changed. +func (o RegistryOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v Registry) *string { return v.Username }).(pulumi.StringPtrOutput) +} + +type RegistryPtrOutput struct{ *pulumi.OutputState } + +func (RegistryPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Registry)(nil)).Elem() +} + +func (o RegistryPtrOutput) ToRegistryPtrOutput() RegistryPtrOutput { + return o +} + +func (o RegistryPtrOutput) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput { + return o +} + +func (o RegistryPtrOutput) ToOutput(ctx context.Context) pulumix.Output[*Registry] { + return pulumix.Output[*Registry]{ + OutputState: o.OutputState, + } +} + +func (o RegistryPtrOutput) Elem() RegistryOutput { + return o.ApplyT(func(v *Registry) Registry { + if v != nil { + return *v + } + var ret Registry + return ret + }).(RegistryOutput) +} + +// The password to authenticate to the registry. Does not cause image rebuild when changed. +func (o RegistryPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Registry) *string { + if v == nil { + return nil + } + return v.Password + }).(pulumi.StringPtrOutput) +} + +// The URL of the Docker registry server +func (o RegistryPtrOutput) Server() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Registry) *string { + if v == nil { + return nil + } + return v.Server + }).(pulumi.StringPtrOutput) +} + +// The username to authenticate to the registry. Does not cause image rebuild when changed. +func (o RegistryPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Registry) *string { + if v == nil { + return nil + } + return v.Username + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ContainerCapabilitiesInput)(nil)).Elem(), ContainerCapabilitiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerCapabilitiesPtrInput)(nil)).Elem(), ContainerCapabilitiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerDeviceInput)(nil)).Elem(), ContainerDeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerDeviceArrayInput)(nil)).Elem(), ContainerDeviceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerHealthcheckInput)(nil)).Elem(), ContainerHealthcheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerHealthcheckPtrInput)(nil)).Elem(), ContainerHealthcheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerHostInput)(nil)).Elem(), ContainerHostArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerHostArrayInput)(nil)).Elem(), ContainerHostArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerLabelInput)(nil)).Elem(), ContainerLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerLabelArrayInput)(nil)).Elem(), ContainerLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountInput)(nil)).Elem(), ContainerMountArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountArrayInput)(nil)).Elem(), ContainerMountArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountBindOptionsInput)(nil)).Elem(), ContainerMountBindOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountBindOptionsPtrInput)(nil)).Elem(), ContainerMountBindOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountTmpfsOptionsInput)(nil)).Elem(), ContainerMountTmpfsOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountTmpfsOptionsPtrInput)(nil)).Elem(), ContainerMountTmpfsOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountVolumeOptionsInput)(nil)).Elem(), ContainerMountVolumeOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountVolumeOptionsPtrInput)(nil)).Elem(), ContainerMountVolumeOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountVolumeOptionsLabelInput)(nil)).Elem(), ContainerMountVolumeOptionsLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerMountVolumeOptionsLabelArrayInput)(nil)).Elem(), ContainerMountVolumeOptionsLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerNetworkDataInput)(nil)).Elem(), ContainerNetworkDataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerNetworkDataArrayInput)(nil)).Elem(), ContainerNetworkDataArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerNetworksAdvancedInput)(nil)).Elem(), ContainerNetworksAdvancedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerNetworksAdvancedArrayInput)(nil)).Elem(), ContainerNetworksAdvancedArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerPortInput)(nil)).Elem(), ContainerPortArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerPortArrayInput)(nil)).Elem(), ContainerPortArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerUlimitInput)(nil)).Elem(), ContainerUlimitArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerUlimitArrayInput)(nil)).Elem(), ContainerUlimitArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerUploadInput)(nil)).Elem(), ContainerUploadArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerUploadArrayInput)(nil)).Elem(), ContainerUploadArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerVolumeInput)(nil)).Elem(), ContainerVolumeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerVolumeArrayInput)(nil)).Elem(), ContainerVolumeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkIpamConfigInput)(nil)).Elem(), NetworkIpamConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkIpamConfigArrayInput)(nil)).Elem(), NetworkIpamConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkLabelInput)(nil)).Elem(), NetworkLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NetworkLabelArrayInput)(nil)).Elem(), NetworkLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PluginGrantPermissionInput)(nil)).Elem(), PluginGrantPermissionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PluginGrantPermissionArrayInput)(nil)).Elem(), PluginGrantPermissionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProviderRegistryAuthInput)(nil)).Elem(), ProviderRegistryAuthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProviderRegistryAuthArrayInput)(nil)).Elem(), ProviderRegistryAuthArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageBuildInput)(nil)).Elem(), RemoteImageBuildArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageBuildPtrInput)(nil)).Elem(), RemoteImageBuildArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageBuildAuthConfigInput)(nil)).Elem(), RemoteImageBuildAuthConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageBuildAuthConfigArrayInput)(nil)).Elem(), RemoteImageBuildAuthConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageBuildUlimitInput)(nil)).Elem(), RemoteImageBuildUlimitArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageBuildUlimitArrayInput)(nil)).Elem(), RemoteImageBuildUlimitArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretLabelInput)(nil)).Elem(), SecretLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretLabelArrayInput)(nil)).Elem(), SecretLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceAuthInput)(nil)).Elem(), ServiceAuthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceAuthPtrInput)(nil)).Elem(), ServiceAuthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceConvergeConfigInput)(nil)).Elem(), ServiceConvergeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceConvergeConfigPtrInput)(nil)).Elem(), ServiceConvergeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceEndpointSpecInput)(nil)).Elem(), ServiceEndpointSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceEndpointSpecPtrInput)(nil)).Elem(), ServiceEndpointSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceEndpointSpecPortInput)(nil)).Elem(), ServiceEndpointSpecPortArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceEndpointSpecPortArrayInput)(nil)).Elem(), ServiceEndpointSpecPortArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLabelInput)(nil)).Elem(), ServiceLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLabelArrayInput)(nil)).Elem(), ServiceLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceModeInput)(nil)).Elem(), ServiceModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceModePtrInput)(nil)).Elem(), ServiceModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceModeReplicatedInput)(nil)).Elem(), ServiceModeReplicatedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceModeReplicatedPtrInput)(nil)).Elem(), ServiceModeReplicatedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceRollbackConfigInput)(nil)).Elem(), ServiceRollbackConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceRollbackConfigPtrInput)(nil)).Elem(), ServiceRollbackConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecInput)(nil)).Elem(), ServiceTaskSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecPtrInput)(nil)).Elem(), ServiceTaskSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecInput)(nil)).Elem(), ServiceTaskSpecContainerSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecConfigInput)(nil)).Elem(), ServiceTaskSpecContainerSpecConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecConfigArrayInput)(nil)).Elem(), ServiceTaskSpecContainerSpecConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecDnsConfigInput)(nil)).Elem(), ServiceTaskSpecContainerSpecDnsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecDnsConfigPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecDnsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecHealthcheckInput)(nil)).Elem(), ServiceTaskSpecContainerSpecHealthcheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecHealthcheckPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecHealthcheckArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecHostInput)(nil)).Elem(), ServiceTaskSpecContainerSpecHostArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecHostArrayInput)(nil)).Elem(), ServiceTaskSpecContainerSpecHostArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecLabelInput)(nil)).Elem(), ServiceTaskSpecContainerSpecLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecLabelArrayInput)(nil)).Elem(), ServiceTaskSpecContainerSpecLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountArrayInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountBindOptionsInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountBindOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountBindOptionsPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountBindOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountTmpfsOptionsInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountTmpfsOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptionsInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountVolumeOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptionsPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountVolumeOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptionsLabelInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayInput)(nil)).Elem(), ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesInput)(nil)).Elem(), ServiceTaskSpecContainerSpecPrivilegesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecPrivilegesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesCredentialSpecInput)(nil)).Elem(), ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecPrivilegesCredentialSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextInput)(nil)).Elem(), ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrInput)(nil)).Elem(), ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecSecretInput)(nil)).Elem(), ServiceTaskSpecContainerSpecSecretArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecContainerSpecSecretArrayInput)(nil)).Elem(), ServiceTaskSpecContainerSpecSecretArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecLogDriverInput)(nil)).Elem(), ServiceTaskSpecLogDriverArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecLogDriverPtrInput)(nil)).Elem(), ServiceTaskSpecLogDriverArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecNetworksAdvancedInput)(nil)).Elem(), ServiceTaskSpecNetworksAdvancedArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecNetworksAdvancedArrayInput)(nil)).Elem(), ServiceTaskSpecNetworksAdvancedArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecPlacementInput)(nil)).Elem(), ServiceTaskSpecPlacementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecPlacementPtrInput)(nil)).Elem(), ServiceTaskSpecPlacementArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecPlacementPlatformInput)(nil)).Elem(), ServiceTaskSpecPlacementPlatformArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecPlacementPlatformArrayInput)(nil)).Elem(), ServiceTaskSpecPlacementPlatformArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesInput)(nil)).Elem(), ServiceTaskSpecResourcesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesPtrInput)(nil)).Elem(), ServiceTaskSpecResourcesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesLimitsInput)(nil)).Elem(), ServiceTaskSpecResourcesLimitsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesLimitsPtrInput)(nil)).Elem(), ServiceTaskSpecResourcesLimitsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesReservationInput)(nil)).Elem(), ServiceTaskSpecResourcesReservationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesReservationPtrInput)(nil)).Elem(), ServiceTaskSpecResourcesReservationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesReservationGenericResourcesInput)(nil)).Elem(), ServiceTaskSpecResourcesReservationGenericResourcesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecResourcesReservationGenericResourcesPtrInput)(nil)).Elem(), ServiceTaskSpecResourcesReservationGenericResourcesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecRestartPolicyInput)(nil)).Elem(), ServiceTaskSpecRestartPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceTaskSpecRestartPolicyPtrInput)(nil)).Elem(), ServiceTaskSpecRestartPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceUpdateConfigInput)(nil)).Elem(), ServiceUpdateConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceUpdateConfigPtrInput)(nil)).Elem(), ServiceUpdateConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VolumeLabelInput)(nil)).Elem(), VolumeLabelArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*VolumeLabelArrayInput)(nil)).Elem(), VolumeLabelArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CacheFromInput)(nil)).Elem(), CacheFromArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CacheFromPtrInput)(nil)).Elem(), CacheFromArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DockerBuildInput)(nil)).Elem(), DockerBuildArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DockerBuildPtrInput)(nil)).Elem(), DockerBuildArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetNetworkIpamConfigInput)(nil)).Elem(), GetNetworkIpamConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetNetworkIpamConfigArrayInput)(nil)).Elem(), GetNetworkIpamConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegistryInput)(nil)).Elem(), RegistryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegistryPtrInput)(nil)).Elem(), RegistryArgs{}) + pulumi.RegisterOutputType(ContainerCapabilitiesOutput{}) + pulumi.RegisterOutputType(ContainerCapabilitiesPtrOutput{}) + pulumi.RegisterOutputType(ContainerDeviceOutput{}) + pulumi.RegisterOutputType(ContainerDeviceArrayOutput{}) + pulumi.RegisterOutputType(ContainerHealthcheckOutput{}) + pulumi.RegisterOutputType(ContainerHealthcheckPtrOutput{}) + pulumi.RegisterOutputType(ContainerHostOutput{}) + pulumi.RegisterOutputType(ContainerHostArrayOutput{}) + pulumi.RegisterOutputType(ContainerLabelOutput{}) + pulumi.RegisterOutputType(ContainerLabelArrayOutput{}) + pulumi.RegisterOutputType(ContainerMountOutput{}) + pulumi.RegisterOutputType(ContainerMountArrayOutput{}) + pulumi.RegisterOutputType(ContainerMountBindOptionsOutput{}) + pulumi.RegisterOutputType(ContainerMountBindOptionsPtrOutput{}) + pulumi.RegisterOutputType(ContainerMountTmpfsOptionsOutput{}) + pulumi.RegisterOutputType(ContainerMountTmpfsOptionsPtrOutput{}) + pulumi.RegisterOutputType(ContainerMountVolumeOptionsOutput{}) + pulumi.RegisterOutputType(ContainerMountVolumeOptionsPtrOutput{}) + pulumi.RegisterOutputType(ContainerMountVolumeOptionsLabelOutput{}) + pulumi.RegisterOutputType(ContainerMountVolumeOptionsLabelArrayOutput{}) + pulumi.RegisterOutputType(ContainerNetworkDataOutput{}) + pulumi.RegisterOutputType(ContainerNetworkDataArrayOutput{}) + pulumi.RegisterOutputType(ContainerNetworksAdvancedOutput{}) + pulumi.RegisterOutputType(ContainerNetworksAdvancedArrayOutput{}) + pulumi.RegisterOutputType(ContainerPortOutput{}) + pulumi.RegisterOutputType(ContainerPortArrayOutput{}) + pulumi.RegisterOutputType(ContainerUlimitOutput{}) + pulumi.RegisterOutputType(ContainerUlimitArrayOutput{}) + pulumi.RegisterOutputType(ContainerUploadOutput{}) + pulumi.RegisterOutputType(ContainerUploadArrayOutput{}) + pulumi.RegisterOutputType(ContainerVolumeOutput{}) + pulumi.RegisterOutputType(ContainerVolumeArrayOutput{}) + pulumi.RegisterOutputType(NetworkIpamConfigOutput{}) + pulumi.RegisterOutputType(NetworkIpamConfigArrayOutput{}) + pulumi.RegisterOutputType(NetworkLabelOutput{}) + pulumi.RegisterOutputType(NetworkLabelArrayOutput{}) + pulumi.RegisterOutputType(PluginGrantPermissionOutput{}) + pulumi.RegisterOutputType(PluginGrantPermissionArrayOutput{}) + pulumi.RegisterOutputType(ProviderRegistryAuthOutput{}) + pulumi.RegisterOutputType(ProviderRegistryAuthArrayOutput{}) + pulumi.RegisterOutputType(RemoteImageBuildOutput{}) + pulumi.RegisterOutputType(RemoteImageBuildPtrOutput{}) + pulumi.RegisterOutputType(RemoteImageBuildAuthConfigOutput{}) + pulumi.RegisterOutputType(RemoteImageBuildAuthConfigArrayOutput{}) + pulumi.RegisterOutputType(RemoteImageBuildUlimitOutput{}) + pulumi.RegisterOutputType(RemoteImageBuildUlimitArrayOutput{}) + pulumi.RegisterOutputType(SecretLabelOutput{}) + pulumi.RegisterOutputType(SecretLabelArrayOutput{}) + pulumi.RegisterOutputType(ServiceAuthOutput{}) + pulumi.RegisterOutputType(ServiceAuthPtrOutput{}) + pulumi.RegisterOutputType(ServiceConvergeConfigOutput{}) + pulumi.RegisterOutputType(ServiceConvergeConfigPtrOutput{}) + pulumi.RegisterOutputType(ServiceEndpointSpecOutput{}) + pulumi.RegisterOutputType(ServiceEndpointSpecPtrOutput{}) + pulumi.RegisterOutputType(ServiceEndpointSpecPortOutput{}) + pulumi.RegisterOutputType(ServiceEndpointSpecPortArrayOutput{}) + pulumi.RegisterOutputType(ServiceLabelOutput{}) + pulumi.RegisterOutputType(ServiceLabelArrayOutput{}) + pulumi.RegisterOutputType(ServiceModeOutput{}) + pulumi.RegisterOutputType(ServiceModePtrOutput{}) + pulumi.RegisterOutputType(ServiceModeReplicatedOutput{}) + pulumi.RegisterOutputType(ServiceModeReplicatedPtrOutput{}) + pulumi.RegisterOutputType(ServiceRollbackConfigOutput{}) + pulumi.RegisterOutputType(ServiceRollbackConfigPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecConfigOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecConfigArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecDnsConfigOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecDnsConfigPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecHealthcheckOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecHealthcheckPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecHostOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecHostArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecLabelOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecLabelArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountBindOptionsOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountBindOptionsPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountTmpfsOptionsOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountTmpfsOptionsPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountVolumeOptionsOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountVolumeOptionsPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecMountVolumeOptionsLabelArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPrivilegesOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPrivilegesPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPrivilegesCredentialSpecPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecPrivilegesSeLinuxContextPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecSecretOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecContainerSpecSecretArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecLogDriverOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecLogDriverPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecNetworksAdvancedOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecNetworksAdvancedArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecPlacementOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecPlacementPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecPlacementPlatformOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecPlacementPlatformArrayOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesLimitsOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesLimitsPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesReservationOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesReservationPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesReservationGenericResourcesOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecResourcesReservationGenericResourcesPtrOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecRestartPolicyOutput{}) + pulumi.RegisterOutputType(ServiceTaskSpecRestartPolicyPtrOutput{}) + pulumi.RegisterOutputType(ServiceUpdateConfigOutput{}) + pulumi.RegisterOutputType(ServiceUpdateConfigPtrOutput{}) + pulumi.RegisterOutputType(VolumeLabelOutput{}) + pulumi.RegisterOutputType(VolumeLabelArrayOutput{}) + pulumi.RegisterOutputType(CacheFromOutput{}) + pulumi.RegisterOutputType(CacheFromPtrOutput{}) + pulumi.RegisterOutputType(DockerBuildOutput{}) + pulumi.RegisterOutputType(DockerBuildPtrOutput{}) + pulumi.RegisterOutputType(GetNetworkIpamConfigOutput{}) + pulumi.RegisterOutputType(GetNetworkIpamConfigArrayOutput{}) + pulumi.RegisterOutputType(RegistryOutput{}) + pulumi.RegisterOutputType(RegistryPtrOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/registryImage.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/registryImage.go new file mode 100644 index 000000000..2da579f4b --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/registryImage.go @@ -0,0 +1,348 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// +// Manages the lifecycle of docker image in a registry. You can upload images to a registry (= `docker push`) and also delete them again +// +// ## Example Usage +// +// Build an image with the `RemoteImage` resource and then push it to a registry: +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.NewRegistryImage(ctx, "helloworld", &docker.RegistryImageArgs{ +// KeepRemotely: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = docker.NewRemoteImage(ctx, "image", &docker.RemoteImageArgs{ +// Name: pulumi.String("registry.com/somename:1.0"), +// Build: &docker.RemoteImageBuildArgs{ +// Context: pulumi.String(fmt.Sprintf("%v/absolutePathToContextFolder", path.Cwd)), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type RegistryImage struct { + pulumi.CustomResourceState + + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify pulumi.BoolPtrOutput `pulumi:"insecureSkipVerify"` + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker registry on destroy operation. Defaults to `false` + KeepRemotely pulumi.BoolPtrOutput `pulumi:"keepRemotely"` + // The name of the Docker image. + Name pulumi.StringOutput `pulumi:"name"` + // The sha256 digest of the image. + Sha256Digest pulumi.StringOutput `pulumi:"sha256Digest"` + // A map of arbitrary strings that, when changed, will force the `RegistryImage` resource to be replaced. This can be used to repush a local image + Triggers pulumi.MapOutput `pulumi:"triggers"` +} + +// NewRegistryImage registers a new resource with the given unique name, arguments, and options. +func NewRegistryImage(ctx *pulumi.Context, + name string, args *RegistryImageArgs, opts ...pulumi.ResourceOption) (*RegistryImage, error) { + if args == nil { + args = &RegistryImageArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource RegistryImage + err := ctx.RegisterResource("docker:index/registryImage:RegistryImage", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRegistryImage gets an existing RegistryImage resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRegistryImage(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RegistryImageState, opts ...pulumi.ResourceOption) (*RegistryImage, error) { + var resource RegistryImage + err := ctx.ReadResource("docker:index/registryImage:RegistryImage", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RegistryImage resources. +type registryImageState struct { + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify *bool `pulumi:"insecureSkipVerify"` + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker registry on destroy operation. Defaults to `false` + KeepRemotely *bool `pulumi:"keepRemotely"` + // The name of the Docker image. + Name *string `pulumi:"name"` + // The sha256 digest of the image. + Sha256Digest *string `pulumi:"sha256Digest"` + // A map of arbitrary strings that, when changed, will force the `RegistryImage` resource to be replaced. This can be used to repush a local image + Triggers map[string]interface{} `pulumi:"triggers"` +} + +type RegistryImageState struct { + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify pulumi.BoolPtrInput + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker registry on destroy operation. Defaults to `false` + KeepRemotely pulumi.BoolPtrInput + // The name of the Docker image. + Name pulumi.StringPtrInput + // The sha256 digest of the image. + Sha256Digest pulumi.StringPtrInput + // A map of arbitrary strings that, when changed, will force the `RegistryImage` resource to be replaced. This can be used to repush a local image + Triggers pulumi.MapInput +} + +func (RegistryImageState) ElementType() reflect.Type { + return reflect.TypeOf((*registryImageState)(nil)).Elem() +} + +type registryImageArgs struct { + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify *bool `pulumi:"insecureSkipVerify"` + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker registry on destroy operation. Defaults to `false` + KeepRemotely *bool `pulumi:"keepRemotely"` + // The name of the Docker image. + Name *string `pulumi:"name"` + // A map of arbitrary strings that, when changed, will force the `RegistryImage` resource to be replaced. This can be used to repush a local image + Triggers map[string]interface{} `pulumi:"triggers"` +} + +// The set of arguments for constructing a RegistryImage resource. +type RegistryImageArgs struct { + // If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` + InsecureSkipVerify pulumi.BoolPtrInput + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker registry on destroy operation. Defaults to `false` + KeepRemotely pulumi.BoolPtrInput + // The name of the Docker image. + Name pulumi.StringPtrInput + // A map of arbitrary strings that, when changed, will force the `RegistryImage` resource to be replaced. This can be used to repush a local image + Triggers pulumi.MapInput +} + +func (RegistryImageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*registryImageArgs)(nil)).Elem() +} + +type RegistryImageInput interface { + pulumi.Input + + ToRegistryImageOutput() RegistryImageOutput + ToRegistryImageOutputWithContext(ctx context.Context) RegistryImageOutput +} + +func (*RegistryImage) ElementType() reflect.Type { + return reflect.TypeOf((**RegistryImage)(nil)).Elem() +} + +func (i *RegistryImage) ToRegistryImageOutput() RegistryImageOutput { + return i.ToRegistryImageOutputWithContext(context.Background()) +} + +func (i *RegistryImage) ToRegistryImageOutputWithContext(ctx context.Context) RegistryImageOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegistryImageOutput) +} + +func (i *RegistryImage) ToOutput(ctx context.Context) pulumix.Output[*RegistryImage] { + return pulumix.Output[*RegistryImage]{ + OutputState: i.ToRegistryImageOutputWithContext(ctx).OutputState, + } +} + +// RegistryImageArrayInput is an input type that accepts RegistryImageArray and RegistryImageArrayOutput values. +// You can construct a concrete instance of `RegistryImageArrayInput` via: +// +// RegistryImageArray{ RegistryImageArgs{...} } +type RegistryImageArrayInput interface { + pulumi.Input + + ToRegistryImageArrayOutput() RegistryImageArrayOutput + ToRegistryImageArrayOutputWithContext(context.Context) RegistryImageArrayOutput +} + +type RegistryImageArray []RegistryImageInput + +func (RegistryImageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RegistryImage)(nil)).Elem() +} + +func (i RegistryImageArray) ToRegistryImageArrayOutput() RegistryImageArrayOutput { + return i.ToRegistryImageArrayOutputWithContext(context.Background()) +} + +func (i RegistryImageArray) ToRegistryImageArrayOutputWithContext(ctx context.Context) RegistryImageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegistryImageArrayOutput) +} + +func (i RegistryImageArray) ToOutput(ctx context.Context) pulumix.Output[[]*RegistryImage] { + return pulumix.Output[[]*RegistryImage]{ + OutputState: i.ToRegistryImageArrayOutputWithContext(ctx).OutputState, + } +} + +// RegistryImageMapInput is an input type that accepts RegistryImageMap and RegistryImageMapOutput values. +// You can construct a concrete instance of `RegistryImageMapInput` via: +// +// RegistryImageMap{ "key": RegistryImageArgs{...} } +type RegistryImageMapInput interface { + pulumi.Input + + ToRegistryImageMapOutput() RegistryImageMapOutput + ToRegistryImageMapOutputWithContext(context.Context) RegistryImageMapOutput +} + +type RegistryImageMap map[string]RegistryImageInput + +func (RegistryImageMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RegistryImage)(nil)).Elem() +} + +func (i RegistryImageMap) ToRegistryImageMapOutput() RegistryImageMapOutput { + return i.ToRegistryImageMapOutputWithContext(context.Background()) +} + +func (i RegistryImageMap) ToRegistryImageMapOutputWithContext(ctx context.Context) RegistryImageMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RegistryImageMapOutput) +} + +func (i RegistryImageMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*RegistryImage] { + return pulumix.Output[map[string]*RegistryImage]{ + OutputState: i.ToRegistryImageMapOutputWithContext(ctx).OutputState, + } +} + +type RegistryImageOutput struct{ *pulumi.OutputState } + +func (RegistryImageOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RegistryImage)(nil)).Elem() +} + +func (o RegistryImageOutput) ToRegistryImageOutput() RegistryImageOutput { + return o +} + +func (o RegistryImageOutput) ToRegistryImageOutputWithContext(ctx context.Context) RegistryImageOutput { + return o +} + +func (o RegistryImageOutput) ToOutput(ctx context.Context) pulumix.Output[*RegistryImage] { + return pulumix.Output[*RegistryImage]{ + OutputState: o.OutputState, + } +} + +// If `true`, the verification of TLS certificates of the server/registry is disabled. Defaults to `false` +func (o RegistryImageOutput) InsecureSkipVerify() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegistryImage) pulumi.BoolPtrOutput { return v.InsecureSkipVerify }).(pulumi.BoolPtrOutput) +} + +// If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker registry on destroy operation. Defaults to `false` +func (o RegistryImageOutput) KeepRemotely() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RegistryImage) pulumi.BoolPtrOutput { return v.KeepRemotely }).(pulumi.BoolPtrOutput) +} + +// The name of the Docker image. +func (o RegistryImageOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *RegistryImage) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The sha256 digest of the image. +func (o RegistryImageOutput) Sha256Digest() pulumi.StringOutput { + return o.ApplyT(func(v *RegistryImage) pulumi.StringOutput { return v.Sha256Digest }).(pulumi.StringOutput) +} + +// A map of arbitrary strings that, when changed, will force the `RegistryImage` resource to be replaced. This can be used to repush a local image +func (o RegistryImageOutput) Triggers() pulumi.MapOutput { + return o.ApplyT(func(v *RegistryImage) pulumi.MapOutput { return v.Triggers }).(pulumi.MapOutput) +} + +type RegistryImageArrayOutput struct{ *pulumi.OutputState } + +func (RegistryImageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RegistryImage)(nil)).Elem() +} + +func (o RegistryImageArrayOutput) ToRegistryImageArrayOutput() RegistryImageArrayOutput { + return o +} + +func (o RegistryImageArrayOutput) ToRegistryImageArrayOutputWithContext(ctx context.Context) RegistryImageArrayOutput { + return o +} + +func (o RegistryImageArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*RegistryImage] { + return pulumix.Output[[]*RegistryImage]{ + OutputState: o.OutputState, + } +} + +func (o RegistryImageArrayOutput) Index(i pulumi.IntInput) RegistryImageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RegistryImage { + return vs[0].([]*RegistryImage)[vs[1].(int)] + }).(RegistryImageOutput) +} + +type RegistryImageMapOutput struct{ *pulumi.OutputState } + +func (RegistryImageMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RegistryImage)(nil)).Elem() +} + +func (o RegistryImageMapOutput) ToRegistryImageMapOutput() RegistryImageMapOutput { + return o +} + +func (o RegistryImageMapOutput) ToRegistryImageMapOutputWithContext(ctx context.Context) RegistryImageMapOutput { + return o +} + +func (o RegistryImageMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*RegistryImage] { + return pulumix.Output[map[string]*RegistryImage]{ + OutputState: o.OutputState, + } +} + +func (o RegistryImageMapOutput) MapIndex(k pulumi.StringInput) RegistryImageOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RegistryImage { + return vs[0].(map[string]*RegistryImage)[vs[1].(string)] + }).(RegistryImageOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RegistryImageInput)(nil)).Elem(), &RegistryImage{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegistryImageArrayInput)(nil)).Elem(), RegistryImageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RegistryImageMapInput)(nil)).Elem(), RegistryImageMap{}) + pulumi.RegisterOutputType(RegistryImageOutput{}) + pulumi.RegisterOutputType(RegistryImageArrayOutput{}) + pulumi.RegisterOutputType(RegistryImageMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/remoteImage.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/remoteImage.go new file mode 100644 index 000000000..4d2db4ad8 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/remoteImage.go @@ -0,0 +1,438 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// +// Pulls a Docker image to a given Docker host from a Docker Registry. +// +// This resource will *not* pull new layers of the image automatically unless used in conjunction with RegistryImage data source to update the `pullTriggers` field. +// +// ## Example Usage +// ### Basic +// +// Finds and downloads the latest `ubuntu:precise` image but does not check +// for further updates of the image +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.NewRemoteImage(ctx, "ubuntu", &docker.RemoteImageArgs{ +// Name: pulumi.String("ubuntu:precise"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Dynamic updates +// +// To be able to update an image dynamically when the `sha256` sum changes, +// you need to use it in combination with `RegistryImage` as follows: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ubuntuRegistryImage, err := docker.LookupRegistryImage(ctx, &docker.LookupRegistryImageArgs{ +// Name: "ubuntu:precise", +// }, nil) +// if err != nil { +// return err +// } +// _, err = docker.NewRemoteImage(ctx, "ubuntuRemoteImage", &docker.RemoteImageArgs{ +// Name: *pulumi.String(ubuntuRegistryImage.Name), +// PullTriggers: pulumi.StringArray{ +// *pulumi.String(ubuntuRegistryImage.Sha256Digest), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type RemoteImage struct { + pulumi.CustomResourceState + + // Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too. + Build RemoteImageBuildPtrOutput `pulumi:"build"` + // If true, then the image is removed forcibly when the resource is destroyed. + ForceRemove pulumi.BoolPtrOutput `pulumi:"forceRemove"` + // The ID of the image (as seen when executing `docker inspect` on the image). Can be used to reference the image via its ID in other resources. + ImageId pulumi.StringOutput `pulumi:"imageId"` + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation. + KeepLocally pulumi.BoolPtrOutput `pulumi:"keepLocally"` + // The name of the Docker image, including any tags or SHA256 repo digests. + Name pulumi.StringOutput `pulumi:"name"` + // The platform to use when pulling the image. Defaults to the platform of the current machine. + Platform pulumi.StringPtrOutput `pulumi:"platform"` + // List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the docker*registry*image. + PullTriggers pulumi.StringArrayOutput `pulumi:"pullTriggers"` + // The image sha256 digest in the form of `repo[:tag]@sha256:`. + RepoDigest pulumi.StringOutput `pulumi:"repoDigest"` + // A map of arbitrary strings that, when changed, will force the `RemoteImage` resource to be replaced. This can be used to rebuild an image when contents of source code folders change + Triggers pulumi.MapOutput `pulumi:"triggers"` +} + +// NewRemoteImage registers a new resource with the given unique name, arguments, and options. +func NewRemoteImage(ctx *pulumi.Context, + name string, args *RemoteImageArgs, opts ...pulumi.ResourceOption) (*RemoteImage, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Name == nil { + return nil, errors.New("invalid value for required argument 'Name'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource RemoteImage + err := ctx.RegisterResource("docker:index/remoteImage:RemoteImage", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRemoteImage gets an existing RemoteImage resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRemoteImage(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RemoteImageState, opts ...pulumi.ResourceOption) (*RemoteImage, error) { + var resource RemoteImage + err := ctx.ReadResource("docker:index/remoteImage:RemoteImage", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RemoteImage resources. +type remoteImageState struct { + // Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too. + Build *RemoteImageBuild `pulumi:"build"` + // If true, then the image is removed forcibly when the resource is destroyed. + ForceRemove *bool `pulumi:"forceRemove"` + // The ID of the image (as seen when executing `docker inspect` on the image). Can be used to reference the image via its ID in other resources. + ImageId *string `pulumi:"imageId"` + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation. + KeepLocally *bool `pulumi:"keepLocally"` + // The name of the Docker image, including any tags or SHA256 repo digests. + Name *string `pulumi:"name"` + // The platform to use when pulling the image. Defaults to the platform of the current machine. + Platform *string `pulumi:"platform"` + // List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the docker*registry*image. + PullTriggers []string `pulumi:"pullTriggers"` + // The image sha256 digest in the form of `repo[:tag]@sha256:`. + RepoDigest *string `pulumi:"repoDigest"` + // A map of arbitrary strings that, when changed, will force the `RemoteImage` resource to be replaced. This can be used to rebuild an image when contents of source code folders change + Triggers map[string]interface{} `pulumi:"triggers"` +} + +type RemoteImageState struct { + // Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too. + Build RemoteImageBuildPtrInput + // If true, then the image is removed forcibly when the resource is destroyed. + ForceRemove pulumi.BoolPtrInput + // The ID of the image (as seen when executing `docker inspect` on the image). Can be used to reference the image via its ID in other resources. + ImageId pulumi.StringPtrInput + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation. + KeepLocally pulumi.BoolPtrInput + // The name of the Docker image, including any tags or SHA256 repo digests. + Name pulumi.StringPtrInput + // The platform to use when pulling the image. Defaults to the platform of the current machine. + Platform pulumi.StringPtrInput + // List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the docker*registry*image. + PullTriggers pulumi.StringArrayInput + // The image sha256 digest in the form of `repo[:tag]@sha256:`. + RepoDigest pulumi.StringPtrInput + // A map of arbitrary strings that, when changed, will force the `RemoteImage` resource to be replaced. This can be used to rebuild an image when contents of source code folders change + Triggers pulumi.MapInput +} + +func (RemoteImageState) ElementType() reflect.Type { + return reflect.TypeOf((*remoteImageState)(nil)).Elem() +} + +type remoteImageArgs struct { + // Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too. + Build *RemoteImageBuild `pulumi:"build"` + // If true, then the image is removed forcibly when the resource is destroyed. + ForceRemove *bool `pulumi:"forceRemove"` + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation. + KeepLocally *bool `pulumi:"keepLocally"` + // The name of the Docker image, including any tags or SHA256 repo digests. + Name string `pulumi:"name"` + // The platform to use when pulling the image. Defaults to the platform of the current machine. + Platform *string `pulumi:"platform"` + // List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the docker*registry*image. + PullTriggers []string `pulumi:"pullTriggers"` + // A map of arbitrary strings that, when changed, will force the `RemoteImage` resource to be replaced. This can be used to rebuild an image when contents of source code folders change + Triggers map[string]interface{} `pulumi:"triggers"` +} + +// The set of arguments for constructing a RemoteImage resource. +type RemoteImageArgs struct { + // Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too. + Build RemoteImageBuildPtrInput + // If true, then the image is removed forcibly when the resource is destroyed. + ForceRemove pulumi.BoolPtrInput + // If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation. + KeepLocally pulumi.BoolPtrInput + // The name of the Docker image, including any tags or SHA256 repo digests. + Name pulumi.StringInput + // The platform to use when pulling the image. Defaults to the platform of the current machine. + Platform pulumi.StringPtrInput + // List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the docker*registry*image. + PullTriggers pulumi.StringArrayInput + // A map of arbitrary strings that, when changed, will force the `RemoteImage` resource to be replaced. This can be used to rebuild an image when contents of source code folders change + Triggers pulumi.MapInput +} + +func (RemoteImageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*remoteImageArgs)(nil)).Elem() +} + +type RemoteImageInput interface { + pulumi.Input + + ToRemoteImageOutput() RemoteImageOutput + ToRemoteImageOutputWithContext(ctx context.Context) RemoteImageOutput +} + +func (*RemoteImage) ElementType() reflect.Type { + return reflect.TypeOf((**RemoteImage)(nil)).Elem() +} + +func (i *RemoteImage) ToRemoteImageOutput() RemoteImageOutput { + return i.ToRemoteImageOutputWithContext(context.Background()) +} + +func (i *RemoteImage) ToRemoteImageOutputWithContext(ctx context.Context) RemoteImageOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageOutput) +} + +func (i *RemoteImage) ToOutput(ctx context.Context) pulumix.Output[*RemoteImage] { + return pulumix.Output[*RemoteImage]{ + OutputState: i.ToRemoteImageOutputWithContext(ctx).OutputState, + } +} + +// RemoteImageArrayInput is an input type that accepts RemoteImageArray and RemoteImageArrayOutput values. +// You can construct a concrete instance of `RemoteImageArrayInput` via: +// +// RemoteImageArray{ RemoteImageArgs{...} } +type RemoteImageArrayInput interface { + pulumi.Input + + ToRemoteImageArrayOutput() RemoteImageArrayOutput + ToRemoteImageArrayOutputWithContext(context.Context) RemoteImageArrayOutput +} + +type RemoteImageArray []RemoteImageInput + +func (RemoteImageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RemoteImage)(nil)).Elem() +} + +func (i RemoteImageArray) ToRemoteImageArrayOutput() RemoteImageArrayOutput { + return i.ToRemoteImageArrayOutputWithContext(context.Background()) +} + +func (i RemoteImageArray) ToRemoteImageArrayOutputWithContext(ctx context.Context) RemoteImageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageArrayOutput) +} + +func (i RemoteImageArray) ToOutput(ctx context.Context) pulumix.Output[[]*RemoteImage] { + return pulumix.Output[[]*RemoteImage]{ + OutputState: i.ToRemoteImageArrayOutputWithContext(ctx).OutputState, + } +} + +// RemoteImageMapInput is an input type that accepts RemoteImageMap and RemoteImageMapOutput values. +// You can construct a concrete instance of `RemoteImageMapInput` via: +// +// RemoteImageMap{ "key": RemoteImageArgs{...} } +type RemoteImageMapInput interface { + pulumi.Input + + ToRemoteImageMapOutput() RemoteImageMapOutput + ToRemoteImageMapOutputWithContext(context.Context) RemoteImageMapOutput +} + +type RemoteImageMap map[string]RemoteImageInput + +func (RemoteImageMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RemoteImage)(nil)).Elem() +} + +func (i RemoteImageMap) ToRemoteImageMapOutput() RemoteImageMapOutput { + return i.ToRemoteImageMapOutputWithContext(context.Background()) +} + +func (i RemoteImageMap) ToRemoteImageMapOutputWithContext(ctx context.Context) RemoteImageMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RemoteImageMapOutput) +} + +func (i RemoteImageMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*RemoteImage] { + return pulumix.Output[map[string]*RemoteImage]{ + OutputState: i.ToRemoteImageMapOutputWithContext(ctx).OutputState, + } +} + +type RemoteImageOutput struct{ *pulumi.OutputState } + +func (RemoteImageOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RemoteImage)(nil)).Elem() +} + +func (o RemoteImageOutput) ToRemoteImageOutput() RemoteImageOutput { + return o +} + +func (o RemoteImageOutput) ToRemoteImageOutputWithContext(ctx context.Context) RemoteImageOutput { + return o +} + +func (o RemoteImageOutput) ToOutput(ctx context.Context) pulumix.Output[*RemoteImage] { + return pulumix.Output[*RemoteImage]{ + OutputState: o.OutputState, + } +} + +// Configuration to build an image. Please see [docker build command reference](https://docs.docker.com/engine/reference/commandline/build/#options) too. +func (o RemoteImageOutput) Build() RemoteImageBuildPtrOutput { + return o.ApplyT(func(v *RemoteImage) RemoteImageBuildPtrOutput { return v.Build }).(RemoteImageBuildPtrOutput) +} + +// If true, then the image is removed forcibly when the resource is destroyed. +func (o RemoteImageOutput) ForceRemove() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.BoolPtrOutput { return v.ForceRemove }).(pulumi.BoolPtrOutput) +} + +// The ID of the image (as seen when executing `docker inspect` on the image). Can be used to reference the image via its ID in other resources. +func (o RemoteImageOutput) ImageId() pulumi.StringOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.StringOutput { return v.ImageId }).(pulumi.StringOutput) +} + +// If true, then the Docker image won't be deleted on destroy operation. If this is false, it will delete the image from the docker local storage on destroy operation. +func (o RemoteImageOutput) KeepLocally() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.BoolPtrOutput { return v.KeepLocally }).(pulumi.BoolPtrOutput) +} + +// The name of the Docker image, including any tags or SHA256 repo digests. +func (o RemoteImageOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The platform to use when pulling the image. Defaults to the platform of the current machine. +func (o RemoteImageOutput) Platform() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.StringPtrOutput { return v.Platform }).(pulumi.StringPtrOutput) +} + +// List of values which cause an image pull when changed. This is used to store the image digest from the registry when using the docker*registry*image. +func (o RemoteImageOutput) PullTriggers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.StringArrayOutput { return v.PullTriggers }).(pulumi.StringArrayOutput) +} + +// The image sha256 digest in the form of `repo[:tag]@sha256:`. +func (o RemoteImageOutput) RepoDigest() pulumi.StringOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.StringOutput { return v.RepoDigest }).(pulumi.StringOutput) +} + +// A map of arbitrary strings that, when changed, will force the `RemoteImage` resource to be replaced. This can be used to rebuild an image when contents of source code folders change +func (o RemoteImageOutput) Triggers() pulumi.MapOutput { + return o.ApplyT(func(v *RemoteImage) pulumi.MapOutput { return v.Triggers }).(pulumi.MapOutput) +} + +type RemoteImageArrayOutput struct{ *pulumi.OutputState } + +func (RemoteImageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RemoteImage)(nil)).Elem() +} + +func (o RemoteImageArrayOutput) ToRemoteImageArrayOutput() RemoteImageArrayOutput { + return o +} + +func (o RemoteImageArrayOutput) ToRemoteImageArrayOutputWithContext(ctx context.Context) RemoteImageArrayOutput { + return o +} + +func (o RemoteImageArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*RemoteImage] { + return pulumix.Output[[]*RemoteImage]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageArrayOutput) Index(i pulumi.IntInput) RemoteImageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RemoteImage { + return vs[0].([]*RemoteImage)[vs[1].(int)] + }).(RemoteImageOutput) +} + +type RemoteImageMapOutput struct{ *pulumi.OutputState } + +func (RemoteImageMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RemoteImage)(nil)).Elem() +} + +func (o RemoteImageMapOutput) ToRemoteImageMapOutput() RemoteImageMapOutput { + return o +} + +func (o RemoteImageMapOutput) ToRemoteImageMapOutputWithContext(ctx context.Context) RemoteImageMapOutput { + return o +} + +func (o RemoteImageMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*RemoteImage] { + return pulumix.Output[map[string]*RemoteImage]{ + OutputState: o.OutputState, + } +} + +func (o RemoteImageMapOutput) MapIndex(k pulumi.StringInput) RemoteImageOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RemoteImage { + return vs[0].(map[string]*RemoteImage)[vs[1].(string)] + }).(RemoteImageOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageInput)(nil)).Elem(), &RemoteImage{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageArrayInput)(nil)).Elem(), RemoteImageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RemoteImageMapInput)(nil)).Elem(), RemoteImageMap{}) + pulumi.RegisterOutputType(RemoteImageOutput{}) + pulumi.RegisterOutputType(RemoteImageArrayOutput{}) + pulumi.RegisterOutputType(RemoteImageMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/secret.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/secret.go new file mode 100644 index 000000000..35672a2d1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/secret.go @@ -0,0 +1,295 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// ## Import +// +// #!/bin/bash Docker secret cannot be imported as the secret data, once set, is never exposed again. +type Secret struct { + pulumi.CustomResourceState + + // Base64-url-safe-encoded secret data + Data pulumi.StringOutput `pulumi:"data"` + // User-defined key/value metadata + Labels SecretLabelArrayOutput `pulumi:"labels"` + // User-defined name of the secret + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewSecret registers a new resource with the given unique name, arguments, and options. +func NewSecret(ctx *pulumi.Context, + name string, args *SecretArgs, opts ...pulumi.ResourceOption) (*Secret, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Data == nil { + return nil, errors.New("invalid value for required argument 'Data'") + } + if args.Data != nil { + args.Data = pulumi.ToSecret(args.Data).(pulumi.StringInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "data", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Secret + err := ctx.RegisterResource("docker:index/secret:Secret", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSecret gets an existing Secret resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSecret(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SecretState, opts ...pulumi.ResourceOption) (*Secret, error) { + var resource Secret + err := ctx.ReadResource("docker:index/secret:Secret", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Secret resources. +type secretState struct { + // Base64-url-safe-encoded secret data + Data *string `pulumi:"data"` + // User-defined key/value metadata + Labels []SecretLabel `pulumi:"labels"` + // User-defined name of the secret + Name *string `pulumi:"name"` +} + +type SecretState struct { + // Base64-url-safe-encoded secret data + Data pulumi.StringPtrInput + // User-defined key/value metadata + Labels SecretLabelArrayInput + // User-defined name of the secret + Name pulumi.StringPtrInput +} + +func (SecretState) ElementType() reflect.Type { + return reflect.TypeOf((*secretState)(nil)).Elem() +} + +type secretArgs struct { + // Base64-url-safe-encoded secret data + Data string `pulumi:"data"` + // User-defined key/value metadata + Labels []SecretLabel `pulumi:"labels"` + // User-defined name of the secret + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a Secret resource. +type SecretArgs struct { + // Base64-url-safe-encoded secret data + Data pulumi.StringInput + // User-defined key/value metadata + Labels SecretLabelArrayInput + // User-defined name of the secret + Name pulumi.StringPtrInput +} + +func (SecretArgs) ElementType() reflect.Type { + return reflect.TypeOf((*secretArgs)(nil)).Elem() +} + +type SecretInput interface { + pulumi.Input + + ToSecretOutput() SecretOutput + ToSecretOutputWithContext(ctx context.Context) SecretOutput +} + +func (*Secret) ElementType() reflect.Type { + return reflect.TypeOf((**Secret)(nil)).Elem() +} + +func (i *Secret) ToSecretOutput() SecretOutput { + return i.ToSecretOutputWithContext(context.Background()) +} + +func (i *Secret) ToSecretOutputWithContext(ctx context.Context) SecretOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretOutput) +} + +func (i *Secret) ToOutput(ctx context.Context) pulumix.Output[*Secret] { + return pulumix.Output[*Secret]{ + OutputState: i.ToSecretOutputWithContext(ctx).OutputState, + } +} + +// SecretArrayInput is an input type that accepts SecretArray and SecretArrayOutput values. +// You can construct a concrete instance of `SecretArrayInput` via: +// +// SecretArray{ SecretArgs{...} } +type SecretArrayInput interface { + pulumi.Input + + ToSecretArrayOutput() SecretArrayOutput + ToSecretArrayOutputWithContext(context.Context) SecretArrayOutput +} + +type SecretArray []SecretInput + +func (SecretArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Secret)(nil)).Elem() +} + +func (i SecretArray) ToSecretArrayOutput() SecretArrayOutput { + return i.ToSecretArrayOutputWithContext(context.Background()) +} + +func (i SecretArray) ToSecretArrayOutputWithContext(ctx context.Context) SecretArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretArrayOutput) +} + +func (i SecretArray) ToOutput(ctx context.Context) pulumix.Output[[]*Secret] { + return pulumix.Output[[]*Secret]{ + OutputState: i.ToSecretArrayOutputWithContext(ctx).OutputState, + } +} + +// SecretMapInput is an input type that accepts SecretMap and SecretMapOutput values. +// You can construct a concrete instance of `SecretMapInput` via: +// +// SecretMap{ "key": SecretArgs{...} } +type SecretMapInput interface { + pulumi.Input + + ToSecretMapOutput() SecretMapOutput + ToSecretMapOutputWithContext(context.Context) SecretMapOutput +} + +type SecretMap map[string]SecretInput + +func (SecretMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Secret)(nil)).Elem() +} + +func (i SecretMap) ToSecretMapOutput() SecretMapOutput { + return i.ToSecretMapOutputWithContext(context.Background()) +} + +func (i SecretMap) ToSecretMapOutputWithContext(ctx context.Context) SecretMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecretMapOutput) +} + +func (i SecretMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Secret] { + return pulumix.Output[map[string]*Secret]{ + OutputState: i.ToSecretMapOutputWithContext(ctx).OutputState, + } +} + +type SecretOutput struct{ *pulumi.OutputState } + +func (SecretOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Secret)(nil)).Elem() +} + +func (o SecretOutput) ToSecretOutput() SecretOutput { + return o +} + +func (o SecretOutput) ToSecretOutputWithContext(ctx context.Context) SecretOutput { + return o +} + +func (o SecretOutput) ToOutput(ctx context.Context) pulumix.Output[*Secret] { + return pulumix.Output[*Secret]{ + OutputState: o.OutputState, + } +} + +// Base64-url-safe-encoded secret data +func (o SecretOutput) Data() pulumi.StringOutput { + return o.ApplyT(func(v *Secret) pulumi.StringOutput { return v.Data }).(pulumi.StringOutput) +} + +// User-defined key/value metadata +func (o SecretOutput) Labels() SecretLabelArrayOutput { + return o.ApplyT(func(v *Secret) SecretLabelArrayOutput { return v.Labels }).(SecretLabelArrayOutput) +} + +// User-defined name of the secret +func (o SecretOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Secret) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type SecretArrayOutput struct{ *pulumi.OutputState } + +func (SecretArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Secret)(nil)).Elem() +} + +func (o SecretArrayOutput) ToSecretArrayOutput() SecretArrayOutput { + return o +} + +func (o SecretArrayOutput) ToSecretArrayOutputWithContext(ctx context.Context) SecretArrayOutput { + return o +} + +func (o SecretArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Secret] { + return pulumix.Output[[]*Secret]{ + OutputState: o.OutputState, + } +} + +func (o SecretArrayOutput) Index(i pulumi.IntInput) SecretOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Secret { + return vs[0].([]*Secret)[vs[1].(int)] + }).(SecretOutput) +} + +type SecretMapOutput struct{ *pulumi.OutputState } + +func (SecretMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Secret)(nil)).Elem() +} + +func (o SecretMapOutput) ToSecretMapOutput() SecretMapOutput { + return o +} + +func (o SecretMapOutput) ToSecretMapOutputWithContext(ctx context.Context) SecretMapOutput { + return o +} + +func (o SecretMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Secret] { + return pulumix.Output[map[string]*Secret]{ + OutputState: o.OutputState, + } +} + +func (o SecretMapOutput) MapIndex(k pulumi.StringInput) SecretOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Secret { + return vs[0].(map[string]*Secret)[vs[1].(string)] + }).(SecretOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecretInput)(nil)).Elem(), &Secret{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretArrayInput)(nil)).Elem(), SecretArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecretMapInput)(nil)).Elem(), SecretMap{}) + pulumi.RegisterOutputType(SecretOutput{}) + pulumi.RegisterOutputType(SecretArrayOutput{}) + pulumi.RegisterOutputType(SecretMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/service.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/service.go new file mode 100644 index 000000000..2c38947fe --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/service.go @@ -0,0 +1,410 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// ## Import +// +// ### Example Assuming you created a `service` as follows #!/bin/bash docker service create --name foo -p 8080:80 nginx prints th ID 4pcphbxkfn2rffhbhe6czytgi you provide the definition for the resource as follows terraform resource "docker_service" "foo" { +// +// name = "foo" +// +// task_spec { +// +// container_spec { +// +// image = "nginx" +// +// } +// +// } +// +// endpoint_spec { +// +// ports { +// +// target_port +// +// = "80" +// +// published_port = "8080" +// +// } +// +// } } then the import command is as follows #!/bin/bash +// +// ```sh +// +// $ pulumi import docker:index/service:Service foo 4pcphbxkfn2rffhbhe6czytgi +// +// ``` +type Service struct { + pulumi.CustomResourceState + + // Configuration for the authentication for pulling the images of the service + Auth ServiceAuthPtrOutput `pulumi:"auth"` + // A configuration to ensure that a service converges aka reaches the desired that of all task up and running + ConvergeConfig ServiceConvergeConfigPtrOutput `pulumi:"convergeConfig"` + // Properties that can be configured to access and load balance a service + EndpointSpec ServiceEndpointSpecOutput `pulumi:"endpointSpec"` + // User-defined key/value metadata + Labels ServiceLabelArrayOutput `pulumi:"labels"` + // Scheduling mode for the service + Mode ServiceModeOutput `pulumi:"mode"` + // Name of the service + Name pulumi.StringOutput `pulumi:"name"` + // Specification for the rollback strategy of the service + RollbackConfig ServiceRollbackConfigPtrOutput `pulumi:"rollbackConfig"` + // User modifiable task configuration + TaskSpec ServiceTaskSpecOutput `pulumi:"taskSpec"` + // Specification for the update strategy of the service + UpdateConfig ServiceUpdateConfigPtrOutput `pulumi:"updateConfig"` +} + +// NewService registers a new resource with the given unique name, arguments, and options. +func NewService(ctx *pulumi.Context, + name string, args *ServiceArgs, opts ...pulumi.ResourceOption) (*Service, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.TaskSpec == nil { + return nil, errors.New("invalid value for required argument 'TaskSpec'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Service + err := ctx.RegisterResource("docker:index/service:Service", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetService gets an existing Service resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetService(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServiceState, opts ...pulumi.ResourceOption) (*Service, error) { + var resource Service + err := ctx.ReadResource("docker:index/service:Service", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Service resources. +type serviceState struct { + // Configuration for the authentication for pulling the images of the service + Auth *ServiceAuth `pulumi:"auth"` + // A configuration to ensure that a service converges aka reaches the desired that of all task up and running + ConvergeConfig *ServiceConvergeConfig `pulumi:"convergeConfig"` + // Properties that can be configured to access and load balance a service + EndpointSpec *ServiceEndpointSpec `pulumi:"endpointSpec"` + // User-defined key/value metadata + Labels []ServiceLabel `pulumi:"labels"` + // Scheduling mode for the service + Mode *ServiceMode `pulumi:"mode"` + // Name of the service + Name *string `pulumi:"name"` + // Specification for the rollback strategy of the service + RollbackConfig *ServiceRollbackConfig `pulumi:"rollbackConfig"` + // User modifiable task configuration + TaskSpec *ServiceTaskSpec `pulumi:"taskSpec"` + // Specification for the update strategy of the service + UpdateConfig *ServiceUpdateConfig `pulumi:"updateConfig"` +} + +type ServiceState struct { + // Configuration for the authentication for pulling the images of the service + Auth ServiceAuthPtrInput + // A configuration to ensure that a service converges aka reaches the desired that of all task up and running + ConvergeConfig ServiceConvergeConfigPtrInput + // Properties that can be configured to access and load balance a service + EndpointSpec ServiceEndpointSpecPtrInput + // User-defined key/value metadata + Labels ServiceLabelArrayInput + // Scheduling mode for the service + Mode ServiceModePtrInput + // Name of the service + Name pulumi.StringPtrInput + // Specification for the rollback strategy of the service + RollbackConfig ServiceRollbackConfigPtrInput + // User modifiable task configuration + TaskSpec ServiceTaskSpecPtrInput + // Specification for the update strategy of the service + UpdateConfig ServiceUpdateConfigPtrInput +} + +func (ServiceState) ElementType() reflect.Type { + return reflect.TypeOf((*serviceState)(nil)).Elem() +} + +type serviceArgs struct { + // Configuration for the authentication for pulling the images of the service + Auth *ServiceAuth `pulumi:"auth"` + // A configuration to ensure that a service converges aka reaches the desired that of all task up and running + ConvergeConfig *ServiceConvergeConfig `pulumi:"convergeConfig"` + // Properties that can be configured to access and load balance a service + EndpointSpec *ServiceEndpointSpec `pulumi:"endpointSpec"` + // User-defined key/value metadata + Labels []ServiceLabel `pulumi:"labels"` + // Scheduling mode for the service + Mode *ServiceMode `pulumi:"mode"` + // Name of the service + Name *string `pulumi:"name"` + // Specification for the rollback strategy of the service + RollbackConfig *ServiceRollbackConfig `pulumi:"rollbackConfig"` + // User modifiable task configuration + TaskSpec ServiceTaskSpec `pulumi:"taskSpec"` + // Specification for the update strategy of the service + UpdateConfig *ServiceUpdateConfig `pulumi:"updateConfig"` +} + +// The set of arguments for constructing a Service resource. +type ServiceArgs struct { + // Configuration for the authentication for pulling the images of the service + Auth ServiceAuthPtrInput + // A configuration to ensure that a service converges aka reaches the desired that of all task up and running + ConvergeConfig ServiceConvergeConfigPtrInput + // Properties that can be configured to access and load balance a service + EndpointSpec ServiceEndpointSpecPtrInput + // User-defined key/value metadata + Labels ServiceLabelArrayInput + // Scheduling mode for the service + Mode ServiceModePtrInput + // Name of the service + Name pulumi.StringPtrInput + // Specification for the rollback strategy of the service + RollbackConfig ServiceRollbackConfigPtrInput + // User modifiable task configuration + TaskSpec ServiceTaskSpecInput + // Specification for the update strategy of the service + UpdateConfig ServiceUpdateConfigPtrInput +} + +func (ServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serviceArgs)(nil)).Elem() +} + +type ServiceInput interface { + pulumi.Input + + ToServiceOutput() ServiceOutput + ToServiceOutputWithContext(ctx context.Context) ServiceOutput +} + +func (*Service) ElementType() reflect.Type { + return reflect.TypeOf((**Service)(nil)).Elem() +} + +func (i *Service) ToServiceOutput() ServiceOutput { + return i.ToServiceOutputWithContext(context.Background()) +} + +func (i *Service) ToServiceOutputWithContext(ctx context.Context) ServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceOutput) +} + +func (i *Service) ToOutput(ctx context.Context) pulumix.Output[*Service] { + return pulumix.Output[*Service]{ + OutputState: i.ToServiceOutputWithContext(ctx).OutputState, + } +} + +// ServiceArrayInput is an input type that accepts ServiceArray and ServiceArrayOutput values. +// You can construct a concrete instance of `ServiceArrayInput` via: +// +// ServiceArray{ ServiceArgs{...} } +type ServiceArrayInput interface { + pulumi.Input + + ToServiceArrayOutput() ServiceArrayOutput + ToServiceArrayOutputWithContext(context.Context) ServiceArrayOutput +} + +type ServiceArray []ServiceInput + +func (ServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Service)(nil)).Elem() +} + +func (i ServiceArray) ToServiceArrayOutput() ServiceArrayOutput { + return i.ToServiceArrayOutputWithContext(context.Background()) +} + +func (i ServiceArray) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceArrayOutput) +} + +func (i ServiceArray) ToOutput(ctx context.Context) pulumix.Output[[]*Service] { + return pulumix.Output[[]*Service]{ + OutputState: i.ToServiceArrayOutputWithContext(ctx).OutputState, + } +} + +// ServiceMapInput is an input type that accepts ServiceMap and ServiceMapOutput values. +// You can construct a concrete instance of `ServiceMapInput` via: +// +// ServiceMap{ "key": ServiceArgs{...} } +type ServiceMapInput interface { + pulumi.Input + + ToServiceMapOutput() ServiceMapOutput + ToServiceMapOutputWithContext(context.Context) ServiceMapOutput +} + +type ServiceMap map[string]ServiceInput + +func (ServiceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Service)(nil)).Elem() +} + +func (i ServiceMap) ToServiceMapOutput() ServiceMapOutput { + return i.ToServiceMapOutputWithContext(context.Background()) +} + +func (i ServiceMap) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceMapOutput) +} + +func (i ServiceMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Service] { + return pulumix.Output[map[string]*Service]{ + OutputState: i.ToServiceMapOutputWithContext(ctx).OutputState, + } +} + +type ServiceOutput struct{ *pulumi.OutputState } + +func (ServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Service)(nil)).Elem() +} + +func (o ServiceOutput) ToServiceOutput() ServiceOutput { + return o +} + +func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOutput { + return o +} + +func (o ServiceOutput) ToOutput(ctx context.Context) pulumix.Output[*Service] { + return pulumix.Output[*Service]{ + OutputState: o.OutputState, + } +} + +// Configuration for the authentication for pulling the images of the service +func (o ServiceOutput) Auth() ServiceAuthPtrOutput { + return o.ApplyT(func(v *Service) ServiceAuthPtrOutput { return v.Auth }).(ServiceAuthPtrOutput) +} + +// A configuration to ensure that a service converges aka reaches the desired that of all task up and running +func (o ServiceOutput) ConvergeConfig() ServiceConvergeConfigPtrOutput { + return o.ApplyT(func(v *Service) ServiceConvergeConfigPtrOutput { return v.ConvergeConfig }).(ServiceConvergeConfigPtrOutput) +} + +// Properties that can be configured to access and load balance a service +func (o ServiceOutput) EndpointSpec() ServiceEndpointSpecOutput { + return o.ApplyT(func(v *Service) ServiceEndpointSpecOutput { return v.EndpointSpec }).(ServiceEndpointSpecOutput) +} + +// User-defined key/value metadata +func (o ServiceOutput) Labels() ServiceLabelArrayOutput { + return o.ApplyT(func(v *Service) ServiceLabelArrayOutput { return v.Labels }).(ServiceLabelArrayOutput) +} + +// Scheduling mode for the service +func (o ServiceOutput) Mode() ServiceModeOutput { + return o.ApplyT(func(v *Service) ServiceModeOutput { return v.Mode }).(ServiceModeOutput) +} + +// Name of the service +func (o ServiceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Service) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Specification for the rollback strategy of the service +func (o ServiceOutput) RollbackConfig() ServiceRollbackConfigPtrOutput { + return o.ApplyT(func(v *Service) ServiceRollbackConfigPtrOutput { return v.RollbackConfig }).(ServiceRollbackConfigPtrOutput) +} + +// User modifiable task configuration +func (o ServiceOutput) TaskSpec() ServiceTaskSpecOutput { + return o.ApplyT(func(v *Service) ServiceTaskSpecOutput { return v.TaskSpec }).(ServiceTaskSpecOutput) +} + +// Specification for the update strategy of the service +func (o ServiceOutput) UpdateConfig() ServiceUpdateConfigPtrOutput { + return o.ApplyT(func(v *Service) ServiceUpdateConfigPtrOutput { return v.UpdateConfig }).(ServiceUpdateConfigPtrOutput) +} + +type ServiceArrayOutput struct{ *pulumi.OutputState } + +func (ServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Service)(nil)).Elem() +} + +func (o ServiceArrayOutput) ToServiceArrayOutput() ServiceArrayOutput { + return o +} + +func (o ServiceArrayOutput) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput { + return o +} + +func (o ServiceArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Service] { + return pulumix.Output[[]*Service]{ + OutputState: o.OutputState, + } +} + +func (o ServiceArrayOutput) Index(i pulumi.IntInput) ServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Service { + return vs[0].([]*Service)[vs[1].(int)] + }).(ServiceOutput) +} + +type ServiceMapOutput struct{ *pulumi.OutputState } + +func (ServiceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Service)(nil)).Elem() +} + +func (o ServiceMapOutput) ToServiceMapOutput() ServiceMapOutput { + return o +} + +func (o ServiceMapOutput) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput { + return o +} + +func (o ServiceMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Service] { + return pulumix.Output[map[string]*Service]{ + OutputState: o.OutputState, + } +} + +func (o ServiceMapOutput) MapIndex(k pulumi.StringInput) ServiceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Service { + return vs[0].(map[string]*Service)[vs[1].(string)] + }).(ServiceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServiceInput)(nil)).Elem(), &Service{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceArrayInput)(nil)).Elem(), ServiceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceMapInput)(nil)).Elem(), ServiceMap{}) + pulumi.RegisterOutputType(ServiceOutput{}) + pulumi.RegisterOutputType(ServiceArrayOutput{}) + pulumi.RegisterOutputType(ServiceMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/serviceConfig.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/serviceConfig.go new file mode 100644 index 000000000..16920323e --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/serviceConfig.go @@ -0,0 +1,285 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// ## Import +// +// ### Example Assuming you created a `config` as follows #!/bin/bash printf '{"a":"b"}' | docker config create foo - prints the id +// +// 08c26c477474478d971139f750984775a7f019dbe8a2e7f09d66a187c009e66d you provide the definition for the resource as follows terraform resource "docker_config" "foo" { +// +// name = "foo" +// +// data = base64encode("{\"a\"\"b\"}") } then the import command is as follows #!/bin/bash +// +// ```sh +// +// $ pulumi import docker:index/serviceConfig:ServiceConfig foo 08c26c477474478d971139f750984775a7f019dbe8a2e7f09d66a187c009e66d +// +// ``` +type ServiceConfig struct { + pulumi.CustomResourceState + + // Base64-url-safe-encoded config data + Data pulumi.StringOutput `pulumi:"data"` + // User-defined name of the config + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewServiceConfig registers a new resource with the given unique name, arguments, and options. +func NewServiceConfig(ctx *pulumi.Context, + name string, args *ServiceConfigArgs, opts ...pulumi.ResourceOption) (*ServiceConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Data == nil { + return nil, errors.New("invalid value for required argument 'Data'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ServiceConfig + err := ctx.RegisterResource("docker:index/serviceConfig:ServiceConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetServiceConfig gets an existing ServiceConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetServiceConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServiceConfigState, opts ...pulumi.ResourceOption) (*ServiceConfig, error) { + var resource ServiceConfig + err := ctx.ReadResource("docker:index/serviceConfig:ServiceConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ServiceConfig resources. +type serviceConfigState struct { + // Base64-url-safe-encoded config data + Data *string `pulumi:"data"` + // User-defined name of the config + Name *string `pulumi:"name"` +} + +type ServiceConfigState struct { + // Base64-url-safe-encoded config data + Data pulumi.StringPtrInput + // User-defined name of the config + Name pulumi.StringPtrInput +} + +func (ServiceConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*serviceConfigState)(nil)).Elem() +} + +type serviceConfigArgs struct { + // Base64-url-safe-encoded config data + Data string `pulumi:"data"` + // User-defined name of the config + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a ServiceConfig resource. +type ServiceConfigArgs struct { + // Base64-url-safe-encoded config data + Data pulumi.StringInput + // User-defined name of the config + Name pulumi.StringPtrInput +} + +func (ServiceConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serviceConfigArgs)(nil)).Elem() +} + +type ServiceConfigInput interface { + pulumi.Input + + ToServiceConfigOutput() ServiceConfigOutput + ToServiceConfigOutputWithContext(ctx context.Context) ServiceConfigOutput +} + +func (*ServiceConfig) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceConfig)(nil)).Elem() +} + +func (i *ServiceConfig) ToServiceConfigOutput() ServiceConfigOutput { + return i.ToServiceConfigOutputWithContext(context.Background()) +} + +func (i *ServiceConfig) ToServiceConfigOutputWithContext(ctx context.Context) ServiceConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceConfigOutput) +} + +func (i *ServiceConfig) ToOutput(ctx context.Context) pulumix.Output[*ServiceConfig] { + return pulumix.Output[*ServiceConfig]{ + OutputState: i.ToServiceConfigOutputWithContext(ctx).OutputState, + } +} + +// ServiceConfigArrayInput is an input type that accepts ServiceConfigArray and ServiceConfigArrayOutput values. +// You can construct a concrete instance of `ServiceConfigArrayInput` via: +// +// ServiceConfigArray{ ServiceConfigArgs{...} } +type ServiceConfigArrayInput interface { + pulumi.Input + + ToServiceConfigArrayOutput() ServiceConfigArrayOutput + ToServiceConfigArrayOutputWithContext(context.Context) ServiceConfigArrayOutput +} + +type ServiceConfigArray []ServiceConfigInput + +func (ServiceConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServiceConfig)(nil)).Elem() +} + +func (i ServiceConfigArray) ToServiceConfigArrayOutput() ServiceConfigArrayOutput { + return i.ToServiceConfigArrayOutputWithContext(context.Background()) +} + +func (i ServiceConfigArray) ToServiceConfigArrayOutputWithContext(ctx context.Context) ServiceConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceConfigArrayOutput) +} + +func (i ServiceConfigArray) ToOutput(ctx context.Context) pulumix.Output[[]*ServiceConfig] { + return pulumix.Output[[]*ServiceConfig]{ + OutputState: i.ToServiceConfigArrayOutputWithContext(ctx).OutputState, + } +} + +// ServiceConfigMapInput is an input type that accepts ServiceConfigMap and ServiceConfigMapOutput values. +// You can construct a concrete instance of `ServiceConfigMapInput` via: +// +// ServiceConfigMap{ "key": ServiceConfigArgs{...} } +type ServiceConfigMapInput interface { + pulumi.Input + + ToServiceConfigMapOutput() ServiceConfigMapOutput + ToServiceConfigMapOutputWithContext(context.Context) ServiceConfigMapOutput +} + +type ServiceConfigMap map[string]ServiceConfigInput + +func (ServiceConfigMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServiceConfig)(nil)).Elem() +} + +func (i ServiceConfigMap) ToServiceConfigMapOutput() ServiceConfigMapOutput { + return i.ToServiceConfigMapOutputWithContext(context.Background()) +} + +func (i ServiceConfigMap) ToServiceConfigMapOutputWithContext(ctx context.Context) ServiceConfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceConfigMapOutput) +} + +func (i ServiceConfigMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*ServiceConfig] { + return pulumix.Output[map[string]*ServiceConfig]{ + OutputState: i.ToServiceConfigMapOutputWithContext(ctx).OutputState, + } +} + +type ServiceConfigOutput struct{ *pulumi.OutputState } + +func (ServiceConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceConfig)(nil)).Elem() +} + +func (o ServiceConfigOutput) ToServiceConfigOutput() ServiceConfigOutput { + return o +} + +func (o ServiceConfigOutput) ToServiceConfigOutputWithContext(ctx context.Context) ServiceConfigOutput { + return o +} + +func (o ServiceConfigOutput) ToOutput(ctx context.Context) pulumix.Output[*ServiceConfig] { + return pulumix.Output[*ServiceConfig]{ + OutputState: o.OutputState, + } +} + +// Base64-url-safe-encoded config data +func (o ServiceConfigOutput) Data() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceConfig) pulumi.StringOutput { return v.Data }).(pulumi.StringOutput) +} + +// User-defined name of the config +func (o ServiceConfigOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceConfig) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type ServiceConfigArrayOutput struct{ *pulumi.OutputState } + +func (ServiceConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ServiceConfig)(nil)).Elem() +} + +func (o ServiceConfigArrayOutput) ToServiceConfigArrayOutput() ServiceConfigArrayOutput { + return o +} + +func (o ServiceConfigArrayOutput) ToServiceConfigArrayOutputWithContext(ctx context.Context) ServiceConfigArrayOutput { + return o +} + +func (o ServiceConfigArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*ServiceConfig] { + return pulumix.Output[[]*ServiceConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceConfigArrayOutput) Index(i pulumi.IntInput) ServiceConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ServiceConfig { + return vs[0].([]*ServiceConfig)[vs[1].(int)] + }).(ServiceConfigOutput) +} + +type ServiceConfigMapOutput struct{ *pulumi.OutputState } + +func (ServiceConfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ServiceConfig)(nil)).Elem() +} + +func (o ServiceConfigMapOutput) ToServiceConfigMapOutput() ServiceConfigMapOutput { + return o +} + +func (o ServiceConfigMapOutput) ToServiceConfigMapOutputWithContext(ctx context.Context) ServiceConfigMapOutput { + return o +} + +func (o ServiceConfigMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*ServiceConfig] { + return pulumix.Output[map[string]*ServiceConfig]{ + OutputState: o.OutputState, + } +} + +func (o ServiceConfigMapOutput) MapIndex(k pulumi.StringInput) ServiceConfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ServiceConfig { + return vs[0].(map[string]*ServiceConfig)[vs[1].(string)] + }).(ServiceConfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServiceConfigInput)(nil)).Elem(), &ServiceConfig{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceConfigArrayInput)(nil)).Elem(), ServiceConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceConfigMapInput)(nil)).Elem(), ServiceConfigMap{}) + pulumi.RegisterOutputType(ServiceConfigOutput{}) + pulumi.RegisterOutputType(ServiceConfigArrayOutput{}) + pulumi.RegisterOutputType(ServiceConfigMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/tag.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/tag.go new file mode 100644 index 000000000..a8db11a2a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/tag.go @@ -0,0 +1,285 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// Creates a docker tag. It has the exact same functionality as the `docker tag` command. Deleting the resource will neither delete the source nor target images. The source image must exist on the machine running the docker daemon. +type Tag struct { + pulumi.CustomResourceState + + // Name of the source image. + SourceImage pulumi.StringOutput `pulumi:"sourceImage"` + // ImageID of the source image in the format of `sha256:<>` + SourceImageId pulumi.StringOutput `pulumi:"sourceImageId"` + // Name of the target image. + TargetImage pulumi.StringOutput `pulumi:"targetImage"` +} + +// NewTag registers a new resource with the given unique name, arguments, and options. +func NewTag(ctx *pulumi.Context, + name string, args *TagArgs, opts ...pulumi.ResourceOption) (*Tag, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.SourceImage == nil { + return nil, errors.New("invalid value for required argument 'SourceImage'") + } + if args.TargetImage == nil { + return nil, errors.New("invalid value for required argument 'TargetImage'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Tag + err := ctx.RegisterResource("docker:index/tag:Tag", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTag gets an existing Tag resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetTag(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TagState, opts ...pulumi.ResourceOption) (*Tag, error) { + var resource Tag + err := ctx.ReadResource("docker:index/tag:Tag", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Tag resources. +type tagState struct { + // Name of the source image. + SourceImage *string `pulumi:"sourceImage"` + // ImageID of the source image in the format of `sha256:<>` + SourceImageId *string `pulumi:"sourceImageId"` + // Name of the target image. + TargetImage *string `pulumi:"targetImage"` +} + +type TagState struct { + // Name of the source image. + SourceImage pulumi.StringPtrInput + // ImageID of the source image in the format of `sha256:<>` + SourceImageId pulumi.StringPtrInput + // Name of the target image. + TargetImage pulumi.StringPtrInput +} + +func (TagState) ElementType() reflect.Type { + return reflect.TypeOf((*tagState)(nil)).Elem() +} + +type tagArgs struct { + // Name of the source image. + SourceImage string `pulumi:"sourceImage"` + // Name of the target image. + TargetImage string `pulumi:"targetImage"` +} + +// The set of arguments for constructing a Tag resource. +type TagArgs struct { + // Name of the source image. + SourceImage pulumi.StringInput + // Name of the target image. + TargetImage pulumi.StringInput +} + +func (TagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*tagArgs)(nil)).Elem() +} + +type TagInput interface { + pulumi.Input + + ToTagOutput() TagOutput + ToTagOutputWithContext(ctx context.Context) TagOutput +} + +func (*Tag) ElementType() reflect.Type { + return reflect.TypeOf((**Tag)(nil)).Elem() +} + +func (i *Tag) ToTagOutput() TagOutput { + return i.ToTagOutputWithContext(context.Background()) +} + +func (i *Tag) ToTagOutputWithContext(ctx context.Context) TagOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagOutput) +} + +func (i *Tag) ToOutput(ctx context.Context) pulumix.Output[*Tag] { + return pulumix.Output[*Tag]{ + OutputState: i.ToTagOutputWithContext(ctx).OutputState, + } +} + +// TagArrayInput is an input type that accepts TagArray and TagArrayOutput values. +// You can construct a concrete instance of `TagArrayInput` via: +// +// TagArray{ TagArgs{...} } +type TagArrayInput interface { + pulumi.Input + + ToTagArrayOutput() TagArrayOutput + ToTagArrayOutputWithContext(context.Context) TagArrayOutput +} + +type TagArray []TagInput + +func (TagArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Tag)(nil)).Elem() +} + +func (i TagArray) ToTagArrayOutput() TagArrayOutput { + return i.ToTagArrayOutputWithContext(context.Background()) +} + +func (i TagArray) ToTagArrayOutputWithContext(ctx context.Context) TagArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagArrayOutput) +} + +func (i TagArray) ToOutput(ctx context.Context) pulumix.Output[[]*Tag] { + return pulumix.Output[[]*Tag]{ + OutputState: i.ToTagArrayOutputWithContext(ctx).OutputState, + } +} + +// TagMapInput is an input type that accepts TagMap and TagMapOutput values. +// You can construct a concrete instance of `TagMapInput` via: +// +// TagMap{ "key": TagArgs{...} } +type TagMapInput interface { + pulumi.Input + + ToTagMapOutput() TagMapOutput + ToTagMapOutputWithContext(context.Context) TagMapOutput +} + +type TagMap map[string]TagInput + +func (TagMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Tag)(nil)).Elem() +} + +func (i TagMap) ToTagMapOutput() TagMapOutput { + return i.ToTagMapOutputWithContext(context.Background()) +} + +func (i TagMap) ToTagMapOutputWithContext(ctx context.Context) TagMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagMapOutput) +} + +func (i TagMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Tag] { + return pulumix.Output[map[string]*Tag]{ + OutputState: i.ToTagMapOutputWithContext(ctx).OutputState, + } +} + +type TagOutput struct{ *pulumi.OutputState } + +func (TagOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Tag)(nil)).Elem() +} + +func (o TagOutput) ToTagOutput() TagOutput { + return o +} + +func (o TagOutput) ToTagOutputWithContext(ctx context.Context) TagOutput { + return o +} + +func (o TagOutput) ToOutput(ctx context.Context) pulumix.Output[*Tag] { + return pulumix.Output[*Tag]{ + OutputState: o.OutputState, + } +} + +// Name of the source image. +func (o TagOutput) SourceImage() pulumi.StringOutput { + return o.ApplyT(func(v *Tag) pulumi.StringOutput { return v.SourceImage }).(pulumi.StringOutput) +} + +// ImageID of the source image in the format of `sha256:<>` +func (o TagOutput) SourceImageId() pulumi.StringOutput { + return o.ApplyT(func(v *Tag) pulumi.StringOutput { return v.SourceImageId }).(pulumi.StringOutput) +} + +// Name of the target image. +func (o TagOutput) TargetImage() pulumi.StringOutput { + return o.ApplyT(func(v *Tag) pulumi.StringOutput { return v.TargetImage }).(pulumi.StringOutput) +} + +type TagArrayOutput struct{ *pulumi.OutputState } + +func (TagArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Tag)(nil)).Elem() +} + +func (o TagArrayOutput) ToTagArrayOutput() TagArrayOutput { + return o +} + +func (o TagArrayOutput) ToTagArrayOutputWithContext(ctx context.Context) TagArrayOutput { + return o +} + +func (o TagArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Tag] { + return pulumix.Output[[]*Tag]{ + OutputState: o.OutputState, + } +} + +func (o TagArrayOutput) Index(i pulumi.IntInput) TagOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Tag { + return vs[0].([]*Tag)[vs[1].(int)] + }).(TagOutput) +} + +type TagMapOutput struct{ *pulumi.OutputState } + +func (TagMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Tag)(nil)).Elem() +} + +func (o TagMapOutput) ToTagMapOutput() TagMapOutput { + return o +} + +func (o TagMapOutput) ToTagMapOutputWithContext(ctx context.Context) TagMapOutput { + return o +} + +func (o TagMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Tag] { + return pulumix.Output[map[string]*Tag]{ + OutputState: o.OutputState, + } +} + +func (o TagMapOutput) MapIndex(k pulumi.StringInput) TagOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Tag { + return vs[0].(map[string]*Tag)[vs[1].(string)] + }).(TagOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TagInput)(nil)).Elem(), &Tag{}) + pulumi.RegisterInputType(reflect.TypeOf((*TagArrayInput)(nil)).Elem(), TagArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*TagMapInput)(nil)).Elem(), TagMap{}) + pulumi.RegisterOutputType(TagOutput{}) + pulumi.RegisterOutputType(TagArrayOutput{}) + pulumi.RegisterOutputType(TagMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/volume.go b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/volume.go new file mode 100644 index 000000000..6e5cbc720 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-docker/sdk/v4/go/docker/volume.go @@ -0,0 +1,345 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package docker + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" +) + +// +// Creates and destroys a volume in Docker. This can be used alongside Container to prepare volumes that can be shared across containers. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-docker/sdk/v4/go/docker" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := docker.NewVolume(ctx, "sharedVolume", nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ### Example Assuming you created a `volume` as follows #!/bin/bash docker volume create prints the long ID 524b0457aa2a87dd2b75c74c3e4e53f406974249e63ab3ed9bf21e5644f9dc7d you provide the definition for the resource as follows terraform resource "docker_volume" "foo" { +// +// name = "524b0457aa2a87dd2b75c74c3e4e53f406974249e63ab3ed9bf21e5644f9dc7d" } then the import command is as follows #!/bin/bash +// +// ```sh +// +// $ pulumi import docker:index/volume:Volume foo 524b0457aa2a87dd2b75c74c3e4e53f406974249e63ab3ed9bf21e5644f9dc7d +// +// ``` +type Volume struct { + pulumi.CustomResourceState + + // Driver type for the volume. Defaults to `local`. + Driver pulumi.StringOutput `pulumi:"driver"` + // Options specific to the driver. + DriverOpts pulumi.MapOutput `pulumi:"driverOpts"` + // User-defined key/value metadata + Labels VolumeLabelArrayOutput `pulumi:"labels"` + // The mountpoint of the volume. + Mountpoint pulumi.StringOutput `pulumi:"mountpoint"` + // The name of the Docker volume (will be generated if not provided). + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewVolume registers a new resource with the given unique name, arguments, and options. +func NewVolume(ctx *pulumi.Context, + name string, args *VolumeArgs, opts ...pulumi.ResourceOption) (*Volume, error) { + if args == nil { + args = &VolumeArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Volume + err := ctx.RegisterResource("docker:index/volume:Volume", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetVolume gets an existing Volume resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetVolume(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *VolumeState, opts ...pulumi.ResourceOption) (*Volume, error) { + var resource Volume + err := ctx.ReadResource("docker:index/volume:Volume", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Volume resources. +type volumeState struct { + // Driver type for the volume. Defaults to `local`. + Driver *string `pulumi:"driver"` + // Options specific to the driver. + DriverOpts map[string]interface{} `pulumi:"driverOpts"` + // User-defined key/value metadata + Labels []VolumeLabel `pulumi:"labels"` + // The mountpoint of the volume. + Mountpoint *string `pulumi:"mountpoint"` + // The name of the Docker volume (will be generated if not provided). + Name *string `pulumi:"name"` +} + +type VolumeState struct { + // Driver type for the volume. Defaults to `local`. + Driver pulumi.StringPtrInput + // Options specific to the driver. + DriverOpts pulumi.MapInput + // User-defined key/value metadata + Labels VolumeLabelArrayInput + // The mountpoint of the volume. + Mountpoint pulumi.StringPtrInput + // The name of the Docker volume (will be generated if not provided). + Name pulumi.StringPtrInput +} + +func (VolumeState) ElementType() reflect.Type { + return reflect.TypeOf((*volumeState)(nil)).Elem() +} + +type volumeArgs struct { + // Driver type for the volume. Defaults to `local`. + Driver *string `pulumi:"driver"` + // Options specific to the driver. + DriverOpts map[string]interface{} `pulumi:"driverOpts"` + // User-defined key/value metadata + Labels []VolumeLabel `pulumi:"labels"` + // The name of the Docker volume (will be generated if not provided). + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a Volume resource. +type VolumeArgs struct { + // Driver type for the volume. Defaults to `local`. + Driver pulumi.StringPtrInput + // Options specific to the driver. + DriverOpts pulumi.MapInput + // User-defined key/value metadata + Labels VolumeLabelArrayInput + // The name of the Docker volume (will be generated if not provided). + Name pulumi.StringPtrInput +} + +func (VolumeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*volumeArgs)(nil)).Elem() +} + +type VolumeInput interface { + pulumi.Input + + ToVolumeOutput() VolumeOutput + ToVolumeOutputWithContext(ctx context.Context) VolumeOutput +} + +func (*Volume) ElementType() reflect.Type { + return reflect.TypeOf((**Volume)(nil)).Elem() +} + +func (i *Volume) ToVolumeOutput() VolumeOutput { + return i.ToVolumeOutputWithContext(context.Background()) +} + +func (i *Volume) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeOutput) +} + +func (i *Volume) ToOutput(ctx context.Context) pulumix.Output[*Volume] { + return pulumix.Output[*Volume]{ + OutputState: i.ToVolumeOutputWithContext(ctx).OutputState, + } +} + +// VolumeArrayInput is an input type that accepts VolumeArray and VolumeArrayOutput values. +// You can construct a concrete instance of `VolumeArrayInput` via: +// +// VolumeArray{ VolumeArgs{...} } +type VolumeArrayInput interface { + pulumi.Input + + ToVolumeArrayOutput() VolumeArrayOutput + ToVolumeArrayOutputWithContext(context.Context) VolumeArrayOutput +} + +type VolumeArray []VolumeInput + +func (VolumeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Volume)(nil)).Elem() +} + +func (i VolumeArray) ToVolumeArrayOutput() VolumeArrayOutput { + return i.ToVolumeArrayOutputWithContext(context.Background()) +} + +func (i VolumeArray) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeArrayOutput) +} + +func (i VolumeArray) ToOutput(ctx context.Context) pulumix.Output[[]*Volume] { + return pulumix.Output[[]*Volume]{ + OutputState: i.ToVolumeArrayOutputWithContext(ctx).OutputState, + } +} + +// VolumeMapInput is an input type that accepts VolumeMap and VolumeMapOutput values. +// You can construct a concrete instance of `VolumeMapInput` via: +// +// VolumeMap{ "key": VolumeArgs{...} } +type VolumeMapInput interface { + pulumi.Input + + ToVolumeMapOutput() VolumeMapOutput + ToVolumeMapOutputWithContext(context.Context) VolumeMapOutput +} + +type VolumeMap map[string]VolumeInput + +func (VolumeMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Volume)(nil)).Elem() +} + +func (i VolumeMap) ToVolumeMapOutput() VolumeMapOutput { + return i.ToVolumeMapOutputWithContext(context.Background()) +} + +func (i VolumeMap) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(VolumeMapOutput) +} + +func (i VolumeMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Volume] { + return pulumix.Output[map[string]*Volume]{ + OutputState: i.ToVolumeMapOutputWithContext(ctx).OutputState, + } +} + +type VolumeOutput struct{ *pulumi.OutputState } + +func (VolumeOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Volume)(nil)).Elem() +} + +func (o VolumeOutput) ToVolumeOutput() VolumeOutput { + return o +} + +func (o VolumeOutput) ToVolumeOutputWithContext(ctx context.Context) VolumeOutput { + return o +} + +func (o VolumeOutput) ToOutput(ctx context.Context) pulumix.Output[*Volume] { + return pulumix.Output[*Volume]{ + OutputState: o.OutputState, + } +} + +// Driver type for the volume. Defaults to `local`. +func (o VolumeOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v *Volume) pulumi.StringOutput { return v.Driver }).(pulumi.StringOutput) +} + +// Options specific to the driver. +func (o VolumeOutput) DriverOpts() pulumi.MapOutput { + return o.ApplyT(func(v *Volume) pulumi.MapOutput { return v.DriverOpts }).(pulumi.MapOutput) +} + +// User-defined key/value metadata +func (o VolumeOutput) Labels() VolumeLabelArrayOutput { + return o.ApplyT(func(v *Volume) VolumeLabelArrayOutput { return v.Labels }).(VolumeLabelArrayOutput) +} + +// The mountpoint of the volume. +func (o VolumeOutput) Mountpoint() pulumi.StringOutput { + return o.ApplyT(func(v *Volume) pulumi.StringOutput { return v.Mountpoint }).(pulumi.StringOutput) +} + +// The name of the Docker volume (will be generated if not provided). +func (o VolumeOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Volume) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type VolumeArrayOutput struct{ *pulumi.OutputState } + +func (VolumeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Volume)(nil)).Elem() +} + +func (o VolumeArrayOutput) ToVolumeArrayOutput() VolumeArrayOutput { + return o +} + +func (o VolumeArrayOutput) ToVolumeArrayOutputWithContext(ctx context.Context) VolumeArrayOutput { + return o +} + +func (o VolumeArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Volume] { + return pulumix.Output[[]*Volume]{ + OutputState: o.OutputState, + } +} + +func (o VolumeArrayOutput) Index(i pulumi.IntInput) VolumeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Volume { + return vs[0].([]*Volume)[vs[1].(int)] + }).(VolumeOutput) +} + +type VolumeMapOutput struct{ *pulumi.OutputState } + +func (VolumeMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Volume)(nil)).Elem() +} + +func (o VolumeMapOutput) ToVolumeMapOutput() VolumeMapOutput { + return o +} + +func (o VolumeMapOutput) ToVolumeMapOutputWithContext(ctx context.Context) VolumeMapOutput { + return o +} + +func (o VolumeMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Volume] { + return pulumix.Output[map[string]*Volume]{ + OutputState: o.OutputState, + } +} + +func (o VolumeMapOutput) MapIndex(k pulumi.StringInput) VolumeOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Volume { + return vs[0].(map[string]*Volume)[vs[1].(string)] + }).(VolumeOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*VolumeInput)(nil)).Elem(), &Volume{}) + pulumi.RegisterInputType(reflect.TypeOf((*VolumeArrayInput)(nil)).Elem(), VolumeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*VolumeMapInput)(nil)).Elem(), VolumeMap{}) + pulumi.RegisterOutputType(VolumeOutput{}) + pulumi.RegisterOutputType(VolumeArrayOutput{}) + pulumi.RegisterOutputType(VolumeMapOutput{}) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index a66a77d1d..0bb83c2ee 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -425,9 +425,18 @@ github.com/pulumi/esc/schema # github.com/pulumi/pulumi-aws/sdk/v6 v6.9.0 ## explicit; go 1.21 github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling +github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2 +github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs +github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb +github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3 +# github.com/pulumi/pulumi-awsx/sdk/v2 v2.3.0 +## explicit; go 1.21 +github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/awsx +github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/ecs +github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal # github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.18.0 ## explicit; go 1.18 github.com/pulumi/pulumi-azure-native-sdk/compute/v2 @@ -447,6 +456,10 @@ github.com/pulumi/pulumi-azure-native-sdk/v2/utilities ## explicit; go 1.19 github.com/pulumi/pulumi-command/sdk/go/command/internal github.com/pulumi/pulumi-command/sdk/go/command/remote +# github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3 +## explicit; go 1.21 +github.com/pulumi/pulumi-docker/sdk/v4/go/docker +github.com/pulumi/pulumi-docker/sdk/v4/go/docker/internal # github.com/pulumi/pulumi-random/sdk/v4 v4.14.0 ## explicit; go 1.21 github.com/pulumi/pulumi-random/sdk/v4/go/random